1,Fastq数据质控

2,Fastq转化成bam,包含头文件

bwa aln ref.fa test_1.fq > test_1.sai
bwa aln ref.fa test_2.fq > test_2.sai
bwa sampe ref.fa -r "@RG\tID:<ID>\tLB:<LIBRARY_NAME>\tSM:<SAMPLE_NAME>\tPL:ILLUMINA" test_1.sai test_2.sai test_1.fq test_2.fq > test.sam

3,sam 转化成bam,如果SAM文件中有header @SQ lines。

samtools view -b -S test.sam > test.bam
##如果没有header时: samtools faidx ref.fa
## samtools view -bt ref.fa.fai test.sam > test.bam

4,sort bam

samtools sort test.bam > test.sorted.bam

或者:

java -jar picard.jar SortSam I=test.bam O=test.sorted.bam SORT_ORDER=coordinate

5, 标记重复

java -jar picard.jar MarkDuplicate ....

6, index 一下

samtools index test.sorted.repeatmark.bam 

7,Base Quality Score Recalibration

....

8, 使用GATK检测SNP

java -jar GenomeAnalysisTK.jar glm SNP -R ref.fa -T UnifiedGenotyper -I test.sorted.repeatmark.bam -o test.raw.vcf

使用samtools和bcftools检测SNP

samtools faidx ref.fa
samtools mpileup -d 1000 -DSugf test.sorted.repeatmark.bam > test.raw.vcf ##(samtools mpileup -vf 。。。) bcftools view -Nvcg -d 1000 test.raw.vcf > test.snp.vcf ##(我的软件运行这步会出错,用下面两行代码代替)
bcftools call -mv test.raw.vcf > test.raw_varient.vcf
bcftools filter -s LowQual -e '%QUAL<20 || DP>100' test.raw_varient.vcf > test.filt_varient.vcf

##也有直接用perl 脚本实现。在使用bcftools 得到variant calling变异后的结果后。需要对结果再次进行过滤,主要依据对比结果中的第8列消息,其中的DP4最为重要,对应的提供了四列:1, 比对结果和正链一致的reads数;2, 比对结果和负链一致的reads数;3, 比对结果在正链的variant 上的reads数;4, 比对结果在负链的variant上的reads数。当设定(value3+value4)大于某一阈值,才算是variant。

bcftools检测生成的vcf格式有10列。1,参考序列名。2,variant所在的left-most位置。3,variant的ID,(默认未设置,用“.”表示)。4,参考序列的allele。5,variant的allele(有多个alleles,则用“,”分隔)。6,variant/reference Quality。7,FILTers applied。8,varient的信息,使用分号隔开。9,Format of the genotype fields, seperated by colon (optional)。10,Sample genotypes and per-sample information(optional)。

bcftools 的第8列中显示了对variants的信息描述,其中Tag的描述如下:

Tad  Format  Description

AF1  double  Max-likelihood estimate of the site allele Frequency (AF)of the first ALT allele

DP   int    Raw read depth (without quality filtering)

DP4  int[4]    high-quality reference forward base, ref reverse, alternate for and alt rev bases

FQ  int     consensus quality. Positive: sample genotypes different; negative: otherwise

MQ	int	Root-Mean-Square mapping quality of covering reads
PC2 int[2] Phred probability of AF in group1 samples being larger (,smaller) than in group2
PCHI2 double Posterior weighted chi^2 P-value between group1 and group2 samples
PV4 double[4] P-value for strand bias, baseQ bias, mapQ bias and tail distance bias
QCHI2 int Phred-scaled PCHI2
RP int # permutations yielding a smaller PCHI2
CLR int Phred log ratio of genotype likelihoods with and without the trio/pair constraint
UGT string Most probable genotype configuration without the trio constraint
CGT string Most probable configuration with the trio constraint

使用bcftools过滤掉不可靠的位点:

bcftools filter的参数:

-e -exclude 主要用于表达式方式去除匹配上的位点,这个参数很关键,过滤需要此表达式

-g -SnpGap 过滤INDEL附近的snp位点,比如-SnpGap 5 则过滤INDEL附近5个碱基距离内的SNP

-G -IndelGap 过滤INDEL附近的INDEL位点

-o -output 输出文件的名称

-O -output-type 输出的格式,一般z和v都行

-s -soft-filter 将过滤掉的位点用字符串注释

-S -set-GTs setgenotypes of failed samples to missing value (.) or reference allele (0) (将不符合要求的个体基因改为".")

eg:过滤QUAL小于10,DP值小于5,INDEL附近的位点

bcftools filter -O v  -o test.filter_variant.vcf -s LOWQUAL -e 'QUAL<10 || FMT/DP < 5' --SnpGap 5 --set-GTs .  test.vcf.gz

提取过滤后的SNP位点

bcftools view -v snps test.filter_variance.vcf > test.snp_filter.vcf

或者在vcf文件中的INFO列里,如果是INDEL的话,会标注出INDEL,因此提取SNP也可以:

grep -v 'INDEL'  test.filter_variance.vcf > test.snp_filter.vcf

注意:

|| 与 | 区别:都表示“或”运算, 但是 || 运算符第一个表达式成立的话,后面的表达式不运算,直接返回。而 |  对所有表达式都判断。 && 与 & 的区别同理

参考:https://www.cnblogs.com/xiaofeiIDO/p/6857745.html

   http://www.bioinfo-scrounger.com/archives/248

NGS检测SNP的更多相关文章

  1. NGS检测ALK融合大起底--转载

    导读: ALK融合是非小细胞肺癌的关键驱动机制之一,在NSCLC患者中发生的频率约为3-7%.针对ALK融合的抑制剂克唑替尼.色瑞替尼以及Alectinib在治疗ALK融合阳性的NSCLC患者中都取得 ...

  2. 【7】基于NGS检测体系变异解读和数据库介绍

    目录 解读相关专业术语 体系变异解读规则 体系变异和用药解读流程 主要数据库介绍 解读相关专业术语 2个概念:胚系.体系突变 4种变异类型:SNV.Indel.融合/SV(大的易位/倒位/缺失).CN ...

  3. SNP命名

    SNP命名 [2016-11-24]       奶茶妹妹是谁,京东老板娘,咦?章泽天!没错! 国民老公是谁?万达少东家,王健林儿子,王思聪!恭喜你又答对了! 函数是谁?这不是数学上的名词吗?不对,是 ...

  4. SNP/单核苷酸多态性分析

    SNP/单核苷酸多态性分析 SNP(Single Nucleotide Polymorphism),即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态.一般来说,一个SNP位点只有两种等位基因 ...

  5. 通过FISH和下一代测序检测肺腺癌ALK基因融合比较

    ALK FISH探针是FDA批准的用于检测肺癌患者中ALK重排的方法,这些患者可能受益于ALK激酶抑制剂.FISH测定在技术上可能具有挑战性并且难以解释.已经有研究者提出以ALK免疫组织化学和下一代测 ...

  6. 【转】GATK使用方法详解(包含bwa使用)

    一.使用GATK前须知事项: (1)对GATK的测试主要使用的是人类全基因组和外显子组的测序数据,而且全部是基于illumina数据格式,目前还没有提供其他格式文件(如Ion Torrent)或者实验 ...

  7. Google云平台使用方法 | Hail | GWAS | 分布式回归 | LASSO

    参考: Hail Hail - Tutorial  windows也可以安装:Spark在Windows下的环境搭建 spark-2.2.0-bin-hadoop2.7 - Hail依赖的平台,并行处 ...

  8. 【5】肿瘤DNA甲基化数据分析原理及流程

    目录 导论 DNA甲基化基本概论 检测DNA甲基化的方法 DNA甲基化数据分析流程及方法 DNA甲基化在肿瘤研究中的应用 导论 表观遗传:非DNA决定的基因表达,或表型改变中可遗传因素的研究 DNA水 ...

  9. NGS概念大科普(转)

    NGS又称为下一代测序技术,高通量测序技术 以高输出量和高解析度为主要特色,能一次并行对几十万到几百万条DNA分子进行序列读取,在提供丰富的遗传学信息的同时,还可大大降低测序费用.缩短测序时间的测序技 ...

随机推荐

  1. 【Python】Java程序员学习Python(五)— 函数的定义和使用

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  2. 将远程UI分支克隆到本地UI分支

    git checkout -b UI git remote add origin <url> git fetch origin git branch --track UI origin/U ...

  3. clean-css

    What is clean-css? Clean-css is a fast and efficient Node.js library for minifying CSS files. Accord ...

  4. 6.HTML速查模块

    1.HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </hea ...

  5. selenium&PhantomJS笔记

    配置pip文件 Windows下pip 配置文件的位置%HOME%/pip/pip.ini linux下安装pip,以Debian Linux为例su -apt-get install python- ...

  6. [UI] 精美UI界面欣赏[7]

    精美UI界面欣赏[7] 视频地址: http://v.youku.com/v_show/id_XOTM0MDUzNTg0.html UI介绍地址: http://www.zhihu.com/quest ...

  7. 构造个人轻量级XSS平台获取管理员cookie并登录

    一.前言 本平台是个人轻量级XSS测试平台,仅作为练习参考. 二.实验环境 服务器操作系统:Centos 7 Web容器:Apache 三.平台搭建过程 安装Apache 安装PHP 安装Git工具 ...

  8. September 27th 2017 Week 39th Wednesday

    We both look up at the same stars, yet we see such different things. 我们仰望同一片星空,却看见了不同的事物. Looking up ...

  9. Scala编程之访问修饰符

    private ,protected,public,在不加前两者声明时为public为公共式访问: private为私有式访问:protected为家族式访问,与Java一致. object Oute ...

  10. ZT eoe android4.2 Bluetooth记录01-结构和代码分布

    android4.2 Bluetooth记录01-结构和代码分布 作者:cnhua5更新于 08月21日访问(697)评论(2) 在android4.2中,Google更换了android的蓝牙协议栈 ...