Sometimes you might observe very short contigs, some even having high read depth. You might see these for example when
- you choose ‘-a 1′ (or ‘-a 0′) as a setting during the assembly, forcing newbler to output all contigs of whatever length (normally the lower limit is 100 bp)
- you run an assembly using the cDNA option, here the lower limit is set to 1
- you use the 454ContigGraph.txt file, in which all contigs of whatever length are listed
The -minlen option requires by default a minimum length of 50 (20 when paired reads are part of the dataset), and the default minimum overlap between reads is 40 bases, so how are contigs so short possible at all?
There appear to be several reasons for these contigs (the information below was kindly provided by the newbler developers; disclaimer: I might have misunderstood them… ):
- microsatellites are very short repeats that the alignment loops through, causing a very short (2bp, 3bp, 4bp) alignment with ultra-high depth.
- very deep alignments (with lots of reads) can cause shattering, caused by accumulation of enough variation to break the alignment into pieces, some of which may be very short
- at the end of contigs, variations in the (light) signal distributions of homopolymers can also cause small contigs ‘breaking off’
Another very strange type of contig is one that mentions in the fasta header ‘numreads=1′. How can one single read become a contig? It should be labelled a singleton, right? Well, these ‘contigs’ can be explained also…
A multiple read alignment grows when reads added to it. After such an addition, there are checks run on the alignment. Addition of new reads may actually result in an alignment being broken, in some cases a part is taken out and placed in its own alignment. During the detangling phase, reads may be removed from a set of aligned reads and. For these parts taken out of alignments this may mean that onlu a single read is left in the alignment. Newbler then keeps this read as a contig (perhaps they should remove these instead, but who am I to complain…).
A singleton read is a read that did not show any significant overlap (by default, a 40 bp window of at least 90% similarity) with any other reads. These ‘numreads=1′ contigs are not singletons as they (or part of them) actually had sufficient overlap for them to have been part of an alignment.