Wichtig: Seit 3ACE4ff ist das Format eines binären k-Mer-Dumps mit den vorherigen Versionen unvereinbar. Sie müssen yak count
wiedergeben, um K-Mer-Dump im neuen Format zu generieren.
# Download and compile
git clone https://github.com/lh3/yak
cd yak && make
# build k-mer hash table for assembly; count singletons
./yak count -K1.5g -t32 -o asm.yak asm.fa.gz
# build k-mer hash tables for high-coverage reads; discard singletons
./yak count -b37 -t32 -o ccs.yak ccs-reads.fq.gz
# for paired end: to provide two identical streams
./yak count -b37 -t32 -o sr.yak <( zcat sr * .fq.gz ) <( zcat sr * .fq.gz )
# compute assembly or reads QV
./yak qv -t32 -p -K3.2g -l100k sr.yak asm.fa.gz > asm-sr.qv.txt
./yak qv -t32 -p sr.yak ccs-reads.fq.gz > ccs-sr.qv.txt
# compute k-mer QV for reads
./yak inspect ccs.yak sr.yak > ccs-sr.kqv.txt
# evaluate the completeness of assembly
./yak inspect sr.yak asm.yak > sr-asm.kqv.txt
# print k-mer histogram
./yak inspect sr.yak > sr.hist
# partition chrX/Y in human de novo assembly
wget -O- ' https://zenodo.org/record/7882299/files/human-chrXY-yak.tar?download=1 ' | tar tf -
./yak sexchr -K2g -t16 chrY-no-par.yak chrX-no-par.yak par.yak hap1.fa hap2.fa > cnt.txt
./groupxy.pl cnt.txt | awk ' $4==1 ' | cut -f2 | seqtk subseq -l80 <( cat hap1.fa hap2.fa ) - > new-hap1.fa
./groupxy.pl cnt.txt | awk ' $4==2 ' | cut -f2 | seqtk subseq -l80 <( cat hap1.fa hap2.fa ) - > new-hap2.fa
Yak wurde zunächst für zwei spezifische Anwendungsfälle entwickelt: 1), um die Grundgenauigkeit von CCS -Lese- und Montage -Contigs robust zu schätzen, und 2), um die systematische Fehlerrate von CCS -Lesevorgängen zu untersuchen. Es erreicht die Ziele, indem Sequenzen mit dem K-MER-Spektrum von kurzen Lesevorgängen oder durch Vergleich von Spektren verglichen werden. Es sind keine Referenzgenom- oder Wahrheitsdaten erforderlich.
Es ist erwähnenswert, dass die Schätzung der Grundgenauigkeit schwierig ist. Wenn sich die Genauigkeit dem Q50 nähert, können sich sowohl nicht geprüfte als auch fehlerhafte K-Mer in kurzen Lesevorgängen einen naiven Schätzer stören. Yak führt ein empirisches Modell ein, um dieses Problem anzugehen. Die Schätzung wird von der Abdeckung und der Qualität der kurzen Lesevorgänge weniger beeinflusst.