[samtools]mpileup命令简介

       samtools的mpileup命令是一个samtools中一个很重要的命令。它的主要功能主要是生成BCF、VCF文件或者pileup一个或多个bam文件。比对记录以在@RG中的样本名作为区分标识符。如果样本标识符缺失,那么每一个输入文件则视为一个样本。

       在pileup格式中(没有-u或者-g参数),每一行代表基因组的位置,由染色体名、1个碱基坐标、参考碱基、reads覆盖该位点的数量、reads的碱基、碱基质量和比对质量。有关匹配、错配、插入缺失、链、比对质量和一条reads的开始结束位置都被编码到reads碱基列。在此列上,“.”表示与正链上的参考碱基匹配,“,”表示与负链上的参考碱基匹配,“>”和“<”表示跳过参考基因,“ACGTN”表示正链上的错配,“acgtn”表示负链上的错配。此模式“\\+[0-9]+[ACGTNacgtn]+”表示在此位点至下一个位点之间与参考基因组对应位点相比,多了一段插入碱基,插入长度由模式中的整数表示。与此类似,“\\-[0-9]+[ACGTNacgtn]+”表示缺失,缺失的碱基使用“*”表示。同时,“^”表示reads的开始,“$”表示reads的结束。在“^”后的字符的ASCII码值减去33表示比对质量值。

       另外,要注意到在输入文件中,有两种正交方式,通过使用-r和-l参数实现。-r参数需要指定一个索引号去进行随机访问而后者-l参数通过文件中的指定区域进行过滤,无需索引。这两个参数可以同时使用。通常使用bed文件,将待处理的文件进行分割,然后同时进行处理,这样可以加快处理速度。最后,处理完毕后,再合并。

       Mpileup命令中参数比较多,这里只介绍一些常用的参数。

       参数:

                -C --adjust-MQ INT 用于降低比对质量的系数,如果reads中含有过多的错配。不能设置为零。BWA推荐值为50。

                -A --count-orphans 在检测变异中,不忽略异常的reads对。

                -I –positions FILE BED文件或者包含区域位点的位置列表文件。位置文件包含两列,染色体和位置,从1开始计数。BED文件至少包含3列,染色体、开始位置和结束位置,开始端从0开始计数。

                -r –region STR 只在指定区域产生pileup,需要已建立索引的bam文件。通常和-l参数一起使用。

                -o –output FILE 生成pileup格式文件或者VCF、BCF文件而不是默认的标准输出。

                -g –BCF 计算基因型的似然值和输出文件格式为BCF。

                -v –VCF 计算基因型的似然值和输出文件格式为VCF。

                -D 输出每个样本的reads深度。

                -V 输出每个样本未比对到参考基因组的reads数量。

                -t –output-tags LIST设置FORMAT和INFO的列表内容,以逗号分割。

                -u –uncompressed 生成未压缩的VCF和BCF文件。

                -I –skip-indel 不检测INDEL。

                -m –min-ireads INT 候选INDEL的最小间隔的reads。

                -F –gap-frac FLOAT 含有间隔reads的最小片段。

        下面是一个使用-r参数和-l参数生成vcf文件的实例:

#! /bin/bash
#使用mpileup命令生成vcf文件
#这个示例中只对7号染色体进行了处理
echo "SamtoolsMpileupByChr Begin: " `date` && \
samtools mpileup \
-l chr25Region.bed \
-r 7 \
-q 1 \
-C 50 \
-t DP,DV \
-m 2 \
-F 0.002 \
-uvf \
human.fasta \
test_3.bam \
--output test_3.chr7.raw.vcf && \
echo "SamtoolsMpileupByChr End: " `date`

       如有谬误,还请指正。

你可能感兴趣的:(生物信息)