smoove
vereinfacht und beschleunigt das Aufrufen und Genotypisieren von SVs für kurze Lesevorgänge. Es verbessert auch die Spezifität, indem viele falsche Ausrichtungssignale entfernt werden, die auf geringes Rauschen hinweisen und oft zu falschen Anrufen beitragen.
Es gibt hier einen Blog-Beitrag, der smoove
ausführlicher beschreibt
Es unterstützt sowohl kleine Kohorten in einem einzigen Befehl als auch Aufrufe auf Bevölkerungsebene mit insgesamt 4 Schritten, von denen 2 pro Stichprobe parallel sind.
Eine Tabelle zur Präzision und zum Rückruf von Smoove und Duphold (die von Smoove verwendet werden) finden Sie hier
Es erfordert:
Und optional (aber alles sehr zu empfehlen):
Wenn Sie smoove
ohne Argumente ausführen, wird angezeigt, welche davon gefunden werden, sodass sie bei Bedarf zum PATH hinzugefügt werden können.
smoove
wird:
lumpy_filter
um geteilte und nicht übereinstimmende Lesevorgänge zu extrahieren, die für Lumpy erforderlich sindlumpy_filter
, um unerwünschte Regionen mit hoher Abdeckung und benutzerdefinierte Chroms wie „hs37d5“ zu entfernen; Es werden auch Lesevorgänge entfernt, bei denen wir festgestellt haben, dass es sich wahrscheinlich um falsche Signale handelt. Danach werden Singleton-Lesevorgänge (bei denen das Mate durch einen der vorherigen Filter entfernt wurde) aus den nicht übereinstimmenden Bams entfernt. Dadurch wird lumpy
viel schneller und weniger speicherhungrig. Sie können smoove
und alle Abhängigkeiten über ein (großes) Docker-Image erhalten:
docker pull brentp/smoove
docker run -it brentp/smoove smoove -h
Oder Sie können eine smoove
Binärdatei hier herunterladen: https://github.com/brentp/smoove/releases Wenn smoove
ohne Argumente ausgeführt wird, zeigt es Ihnen, welche seiner Abhängigkeiten es finden kann, sodass Sie Ihren $PATH anpassen und installieren können entsprechend.
Für kleine Kohorten ist es möglich, mit einem einzigen Befehl einen gemeinsam aufgerufenen, genotypisierten VCF zu erhalten.
smoove call -x --name my-cohort --exclude $bed --fasta $reference_fasta -p $threads --genotype /path/to/*.bam
Die Ausgabe erfolgt an ./my-cohort-smoove.genotyped.vcf.gz
Das --exclude $bed
wird dringend empfohlen, da es verwendet werden kann, um Lesevorgänge zu ignorieren, die problematische Regionen überlappen.
Eine gute Auswahl an Regionen für GRCh37 finden Sie hier.
Und für hg38 hier
Für Anrufe auf Bevölkerungsebene (große Kohorten) sind die Schritte wie folgt:
smoove call --outdir results-smoove/ --exclude $bed --name $sample --fasta $reference_fasta -p 1 --genotype /path/to/$sample.bam
Bei großen Kohorten ist es besser, stichprobenübergreifend zu parallelisieren, statt große $threads pro Stichprobe zu verwenden. smoove
kann nur bis zu 2 oder 3 Threads in einem einzigen Sample parallelisieren und es ist am effizientesten, 1 Thread zu verwenden.
Die Ausgabe erfolgt an „results-smoove/$sample-smoove.genotyped.vcf.gz“.
# this will create ./merged.sites.vcf.gz
smoove merge --name merged -f $reference_fasta --outdir ./ results-smoove/*.genotyped.vcf.gz
smoove genotype -d -x -p 1 --name $sample-joint --outdir results-genotped/ --fasta $reference_fasta --vcf merged.sites.vcf.gz /path/to/$sample.$bam
smoove paste --name $cohort results-genotyped/*.vcf.gz
smoove annotate --gff Homo_sapiens.GRCh37.82.gff3.gz $cohort.smoove.square.vcf.gz | bgzip -c > $cohort.smoove.square.anno.vcf.gz
Dadurch wird jedem Beispielformat ein SHQ
Tag (Smoove Het Quality) hinzugefügt. Ein Wert von 4 bedeutet einen Anruf mit hoher Qualität und der Wert 1 bedeutet eine niedrige Qualität. -1 ist nicht het. Außerdem wird dem INFO-Feld ein MSHQ
für „Mean SHQ“ hinzugefügt, das den mittleren SHQ-Score über alle heterozygoten Proben für diese Variante angibt.
Als ersten Durchgang können Benutzer nach Varianten mit MSHQ > 3 suchen. Wenn Sie Duphold-Annotationen hinzugefügt haben, ist es auch nützlich, Löschungen mit DHFFC < 0.7
und Duplikationen mit DHFFC > 1.25
zu überprüfen.
Eine Panik mit einer Meldung wie Segmentation fault (core dumped) | bcftools view -O z -c 1 -o
bedeutet wahrscheinlich, dass Sie eine alte Version von bcftools haben. siehe #10
smoove
schreibt in das TMPDIR des Systems. Stellen Sie bei großen Kohorten sicher, dass Sie hier etwas mit viel Platz einstellen. zB export TMPDIR=/path/to/big
smoove
erfordert die aktuelle Version von lumpy
und lumpy_filter
Erstellen Sie diese also aus dem Quellcode oder holen Sie sich die neueste Bioconda-Version.
svtools