Frage:
Wie kann ich eine BAM-Datei herunterrechnen, während beide Lesevorgänge paarweise bleiben?
medbe
2017-06-03 04:44:45 UTC
view on stackexchange narkive permalink

Ich weiß, wie man eine BAM-Datei heruntertastet, um die Abdeckung zu verringern. Ich weiß, dass ich Zeilen in SAM zufällig auswählen kann, aber dieses Verfahren kann nicht garantieren, dass zwei Lesevorgänge in einem Paar immer gleichzeitig abgetastet werden. Gibt es eine Möglichkeit, die BAM herunterzusampeln, während die Pairing-Informationen intakt bleiben?

Könnten Sie bitte etwas näher erläutern, * warum * es sinnvoll wäre, Lesevorgänge herunterzusampeln? Es gibt verschiedene Möglichkeiten, und die Antworten hängen von Ihrem Ziel ab. Sie können beispielsweise eine digitale Normalisierung durchführen, um die Anzahl der eingegebenen Lesevorgänge für die Genomassemblierung zu verringern. Diese Methode wäre jedoch für eine quantitative Analyse der Lesevorgänge (z. B. für RNASeq) nicht geeignet.
Drei antworten:
#1
+14
rightskewed
2017-06-03 06:08:48 UTC
view on stackexchange narkive permalink

samtools verfügt über eine Unterabtastungsoption:

-s FLOAT: Der Integer-Teil wird verwendet, um den Zufallszahlengenerator [0] zu setzen. Teil nach dem Dezimalpunkt setzt den Bruchteil der Vorlagen / Paare auf Unterabtastung [keine Unterabtastung]

  samtools view -bs 42,1 in.bam > subsampled.bam  

wird 10 Prozent der zugeordneten Lesevorgänge mit 42 als Startwert für den Zufallszahlengenerator unterabtasten.

Um mögliche Verwirrung in der Zukunft zu vermeiden, sollte beachtet werden, dass dies durch Hashing des gelesenen Namens funktioniert. Wenn die Partner aus irgendeinem schrecklichen Grund nicht genau den gleichen Namen haben (z. B. "/ 1" und "/ 2" wurden nicht entfernt), wird dies unterbrochen.
Und auch aufgrund der Funktionsweise ist nicht garantiert, dass die Anzahl der unterabgetasteten Einträge genau dem erforderlichen Prozentsatz entspricht: Eine gewisse Transformation des im Intervall [0,1] befindlichen Hash wird mit dem Stichprobenanteil verglichen. Abhängig von den in der Datei enthaltenen gelesenen Namen variiert die Anzahl der effektiv abgetasteten Sam-Einträge.
#2
+4
ATpoint
2018-12-12 05:12:02 UTC
view on stackexchange narkive permalink

Mit dieser Funktion können Sie eine bestimmte BAM-Datei mit SamBamba auf eine benutzerdefinierte Anzahl von Lesevorgängen unterabtasten. Die Funktion berechnet automatisch den Skalierungsfaktor. Ideen teilweise aus hier

  -Funktion SubSample {## Berechnen Sie den Stichprobenfaktor basierend auf der beabsichtigten Anzahl von Lesevorgängen: FACTOR =  $ (samtools idxstats $  span> 1 | cut -f3 | awk -v COUNT =  $ 2 'BEGIN {total = 0} {total + = $  span> 1 } END {print COUNT / total} ') Wenn [[ $ FACTOR > 1]] dann echo' [ERROR]: Die angeforderte Anzahl von Lesevorgängen überschreitet die Gesamtzahl der Lesevorgänge in '$  span > 1 '- Beenden von' && exit 1fisambamba view -s  $ FACTOR -f bam -l 5 $  span> 1} ## Verwendungsbeispiel, Auswahl von 100.000 Lesevorgängen: SubSample in. bam 100000 > subsampled.bam  

Beachten Sie, dass $ 2 die Anzahl der Lesevorgänge ist. Angenommen, Sie wählen 10000 Lesevorgänge, haben aber Paired-End-Daten. Am Ende erhalten Sie 5000 Fragmente.

#3
+1
swbarnes2
2018-12-13 00:31:35 UTC
view on stackexchange narkive permalink

Eine völlig andere Taktik ... es hilft, wenn Sie nicht sehr wählerisch sind, wie viele Lesevorgänge Sie am Ende haben.

Illumina-Lesennamen enthalten die Spur-, Kachel- und xy-Koordinaten der Lesen Sie in ihnen. Wenn Sie nach diesen filtern, erhalten Sie garantiert entweder beide Mitglieder eines Paares oder keines. Ich würde empfehlen, die Kanten der Durchflusszelle zu meiden.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...