Dissecting the in vivo assembly of the 30S ribosomal subunit reveals the role of RimM and general features of the assembly process