samtools

SAMtools kann Alignments filtern, um nur die alignierten Reads auszugeben, die bestimmten Kriterien entsprechen, einschließlich der Überlappung mit Regionen, die in einer BED-Datei (-L) angegeben sind, Zugehörigkeit zu bestimmten Lesegruppen (-r, -R), Herkunft aus einer bestimmten Bibliothek oder eine bestimmte Mindestanzahl von CIGAR-Basen haben, die die Abfragesequenz verbrauchen.1

Die Option -f gibt nur Alignments aus, bei denen alle Bits in INT im Feld FLAG gesetzt sind (INT kann als Dezimalzahl oder als hexadezimale Zahl angegeben werden, die mit '0x' beginnt). Dies führt eine UND-Verknüpfung mit allen Bits durch, die in INT gesetzt sind, was bedeutet, dass Sequenzen nur angezeigt werden, wenn mindestens die entsprechenden Bit Positionen in FLAG auf 1 gesetzt sind. Die Option -F gibt keine Alignments aus, bei denen Bits, die in INT gesetzt sind, im Feld FLAG. Die Option -F überspringt daher alle Reads, für die FLAG & INT != 0 ist. Um also nur primäre Reads auszugeben, können wir den folgenden Befehl verwenden.

$ samtools view -F 0x900 NIST7035_aln.bam
1

Die M/D/N/=/X-Operatoren "verbrauchen" Referenzbasen (they are said to "consume reference bases.")

Die mit diesem Befehl ausgegebenen Reads enthielten insgesamt 38 verschiedene Werte für das Bitfeld, von denen keiner die Bits 0x100 oder 0x800 enthielt. Mit dem folgenden Befehl werden alle sekundären Alignment-Reads extrahiert.

$ samtools view -f 0x100 NIST7035_aln.bam

Die Funktion flagstat von SAMtools bietet eine Zusammenfassung der Anzahl der Datensätze, die jedem der Bit-Flags von Tabelle 1 entsprechen. Die Auswertung unseres Beispieldatensatzes zeigt beispielsweise Folgendes.

$ samtools flagstat NIST7035_aln37.bam 
35210329 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 duplicates
35210007 + 0 mapped (100.00%:-nan%)
35210329 + 0 paired in sequencing
17605154 + 0 read1
17605175 + 0 read2
34991352 + 0 properly paired (99.38%:-nan%)
35209746 + 0 with itself and mate mapped
261 + 0 singletons (0.00%:-nan%)
19085 + 0 with mate mapped to a different chr
9718 + 0 with mate mapped to a different chr (mapQ>=5)