IMPORTANT: Depuis 3ACE4FF, le format du dépotoir binaire K-Mer est incompatible avec les versions précédentes. Vous devez relancer yak count
pour générer un vidage K-Mer dans le nouveau format.
# 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
Le YAK est initialement développé pour deux cas d'utilisation spécifiques: 1) pour estimer robustement la précision de base des lectures de CCS et des contigs d'assemblage, et 2) pour étudier le taux d'erreur systématique des lectures de CCS. Il atteint les objectifs en comparant les séquences au spectre K-Mer des lectures courtes ou en comparant les spectres. Aucune données de référence ou de vérité n'est nécessaire.
Il convient de noter que l'estimation de la précision de base est délicate. Lorsque la précision s'approche de Q50, les K-MER non échantillonnés et erronés en lectures courtes peuvent interférer avec un estimateur naïf. Yak présente un modèle empirique pour résoudre ce problème. Son estimation est moins affectée par la couverture et la qualité des lectures courtes.