PSMC使用过程中的一些坑

作者: 杨康chin | 来源:发表于2021-01-10 22:25 被阅读0次

    首先肯定是要call SNPs的,最好用bcftools pileup,避免后面报错

    可以用一个管道一次性搞定:

    bcftools mpileup -Ou -I -f reference.fasta NL.marked.bam| \
    bcftools call -c -Ov| vcfutils.pl vcf2fq -d 10 -D 100| gzip > diploid.fq.gz
    
    ## -Ou : 输出未压缩的bcf文件
    ## -I : skip indels
    ## -f reference fasta
    ## -c 使用原始版本的的calling算法(对应于新的-m)
    ## -Ov :输出未压缩vcf文件
    ## -d -D :depth的上下限
    

    也可以先call出VCF文件:

    bcftools mpileup -Ou -I -f reference.fasta \
    NL.marked.bam|bcftools call -c -Ov -o vcf_bcftools.vcf
    
    • 一定把这类管道的代码放在脚本里跑,不要nohup,否则很有可能报错。
    • 建议用bcftools mpileup,而不是samtools,因为两者有细微差别。
    • 用 bcftools call的时候选择参数 -c 不要用-m,两者call variance的方法不同得到的文件格式似乎也有差别。避免pl脚本和psmc识别不了
    • 在高版本(我的是1.11)的bcftools中,call和view为两个命令。PSMC软件github上给出的命令为用bcftools view得到vcf,实际在高版本中要用call。
    • bcftools call的时候不要使用-v选项,不要只输出variance。因为PSMC的原理是要考虑全基因组片段的,只看SNPs肯定有问题。
    • psmc_plot.pl -u -g 参数:-u 的说明是 absolute mutation rate per nucleotide [2.5e-08]
      注意,这里填的是per generation per site的mutation,不是per year per site 的mutation,否则会导致PSMC曲线平移一个数量级。

    相关文章

      网友评论

        本文标题:PSMC使用过程中的一些坑

        本文链接:https://www.haomeiwen.com/subject/avkcaktx.html