首页 > 代码库 > 利用 freebayes call SNP

利用 freebayes call SNP

1,软件介绍

FreeBayes is a Bayesian genetic variant detector designed to find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), indels (insertions and deletions),

MNPs (multi-nucleotide polymorphisms), and complex events (composite insertion and substitution events) smaller than the length of a short-read sequencing alignment.

FreeBayes is haplotype-based, in the sense that it calls variants based on the literal sequences of reads aligned to a particular target, not their precise alignment.

This model is a straightforward generalization of previous ones (e.g. PolyBayes, samtools, GATK) which detect or report variants based on alignments.

This method avoids one of the core problems with alignment-based variant detection--- that identical sequences may have multiple possible alignments.

2,安装与使用

服务器已经安装好软件,下面举例说明用法,

参考序列为:

RAP_cDAN.fasta

bam文件为:

LCS173-1.sorted.rmp.rg.bam

LCS173-2.sorted.rmp.rg.bam

LCS173-3.sorted.rmp.rg.bam

RCS173-1.sorted.rmp.rg.bam

RCS173-2.sorted.rmp.rg.bam

RCS173-3.sorted.rmp.rg.bam

这是样本CS173的六组数据,每组bam数据都经过了sort, remove duplicate, add read group 步骤,这几个前期处理数据步骤是必须的。对bam文件的处理

详见本博客其他文章。除了这几步以为,还要对bam文件进行index,即每个bam文件都要有相应的bai文件。数据处理好后,就可以进行call snp了。

命令:

freebayes -f RAP_cDAN.fasta -L bamfile.list > CS173.vcf

其中,-f 后跟参考序列。-L 后面跟纯文本文件,里面就是bam文件的名字,因为文件较多,所以将名字都放到一个文件中。如果你只有一个文件,那直接将

文件名放于参考序列后面就可以了。 > 是进行重定向,即将结果保存到CS173.vcf文件中。

也可以同时call 不同的样本, 只要将不同的样本数据放到bam.list文件中就可以了,注意,不同样本数据的read group必须唯一,不能重复。

当命令结束后,就会得到结果文件,文件中记录了snp的信息。详细的vcf格式说明另见博客文章。

这是最简单的使用方法,还有一些参数,如果感兴趣的话可以调试,如-C ,默认值为2,即变异位点处至少有两个和参考碱基不同,才会考虑是snp位点。

假如,此某位点的覆盖度为10,但之后一个和参考碱基不同,剩下9个是一样的,那么这个位点不会被call出。

另一个参数-F 默认为0.2 ,即至少有20%的碱基和参考碱基不同才能被call出。假如某位点深度为100,但是只有10个碱基和参考序列不同,是不会被call出的。

这主要是考虑到了测序错误,比对错误等原因,才设置下限,目的是提高call snp的准确性。但是要根据你自己的数据情况,假如你用RNA-seq数据研究等位基因特异性表达,

某些位点也许表达量很多,深度达到了1000,其中有100个碱基和参考序列有差别,如果你用默认设置,此时并不能将snp call 出,但这可能是一个很重要的特异表达位点。

所以要根据自己的使用目的来设置参数。

 3,更多的例子。

examples:

    # call variants assuming a diploid sample    

      freebayes -f ref.fa aln.bam >var.vcf

    # require at least 5 supporting observations to consider a variant    

       freebayes -f ref.fa -C 5 aln.bam >var.vcf

    # use a different ploidy    

       freebayes -f ref.fa -p 4 aln.bam >var.vcf

    # assume a pooled sample with a known number of genome copies    

       freebayes -f ref.fa -p 20 --pooled-discrete aln.bam >var.vcf

    # generate frequency-based calls for all variants passing input thresholds    

       freebayes -f ref.fa -F 0.01 -C 1 --pooled-continuous aln.bam >var.vcf

    # use an input VCF (bgzipped + tabix indexed) to force calls at particular alleles    

       freebayes -f ref.fa -@ in.vcf.gz aln.bam >var.vcf

    # generate long haplotype calls over known variants    

      freebayes -f ref.fa --haplotype-basis-alleles in.vcf.gz \   --haplotype-length 50 aln.bam

    # naive variant calling: simply annotate observation counts of SNPs and indels    

      freebayes -f ref.fa --haplotype-length 0 --min-alternate-count 1 \    --min-alternate-fraction 0 --pooled-continuous --report-monomorphic >var.vcf

 

3,进一步阅读

   https://github.com/ekg/freebayes

   在装有freebayes的服务器中 敲击 freebayes -h

By freemao

FAFU.

free_mao@qq.com