2018-09-23 WES流程文件解读1

wes定义: 全外显子组测序,是利用目标序列捕获技术, 将全基因组编码基因外显子区域的DNA捕获并富集后,进行高通量测序的基因组分析方法

通过测序可以找到大量的单核苷酸多态性位点(Single Nucleotide Polymorphism, SNP),插入缺失位点(Insertion/Deletion, InDel)、杂合性缺失(Loss of Heterozygosity, LOH)、拷贝数变异(Copy Number Variation, CNV)【拷贝数变异只针对肿瘤】

配合比较基因组学分析、群体遗传学分析、进化分析和计算生物学分析方法既可以用于深入探索疾病基因组的奥秘。

优点:但在同样的测序通量下,外显子组测序针对目标区段的测序深度以及覆盖度都高于全基因组重测序, 因此该技术对于发生在外显子区的常见和罕见的染色体变异具有很高的检测灵敏度。

wes流程首先要建立一个环境变量

然后在这个环境变量下安装会用到得软件,下载比对的参考基因组和数据库

先安装conda,用镜像下载快一些

Miniconda是conda轻量级,我们处理数据就够用了

conda命令详解:https://www.jianshu.com/p/8bb429659b34

Miniconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 下载。

conda create -n wes python=2    #建立wes环境变量

conda  install  bwa   

conda install sra-tools

conda install samtools

conda install   bcftools   vcftools   snpeff

conda install   multiqc   qualimap

conda install  gatk   #这里需要了解gatk只是conda是不够的

提到gatk就不得不说一下java,生物信息很多软件都是用java写的,所以需要在linux上配置java运行环境。平台上的java 是1.7x的版本,但是一些生物信息软件(比如picard)需要更高级版本的java。

安装java

什么是GATK: stands for GenomeAnalysisToolkit

It is a collection of command-line tools for analyzing high-throughput sequencing data with a primary focus on variant discovery. The tools can be used individually or chained together into complete workflows. We provide end-to-end workflows, called GATK Best Practices

gatk4.0包含了picard工具,全部是基于illumina数据格式

下载地址:http://www.broadinstitute.org/gsa/wiki/index.php/Downloading_the_GATK

这个是已经编译好的版本,GATK是一个java程序,解开编译好的压缩包,我们可以看到下面有几个文件:

$ ls

AnalyzeCovariates.jar GenomeAnalysisTK.jar resources

两个后缀名为jar的文件和一个名为resources的文件夹,这两个.jar文件就是后面我们要用到java程序,主要要用的就是GenomeAnalysisTK.jar这个程序,resources文件夹里面有一些example的数据,可以用来测试。

在GATK使用过程中,有些步骤需要用到已知变异信息,对于这些已知变异,GATK只提供了人类的已知变异信息,可以在GATK的FTP站点下载(GATK resource bundle)

https://software.broadinstitute.org/gatk/download/bundle

GATK在进行BQSR和VQSR的过程中会使用到R软件绘制一些图,因此,在运行GATK之前最好先检查一下是否正确安装了R和所需要的包,所需要的包大概包括ggplot2、gplots、bitops、caTools、colorspace、gdata、gsalib、reshape、RColorBrewer等。如果画图时出现错误,会提示需要安装的包的名称。


二、GATK的使用流程

GATK最佳使用方案:共3大步骤。原始数据的处理—变异检测—初步分析。


1.原始数据比对和过滤,就是illumina下机数据为fastq格式,推荐使用bwa进行mapping

BWA,即Burrows-Wheeler-Alignment Tool。

BWA 是一种能够将差异度较小的序列比对到一个较大的参考基因组上的软件包。它由三个不同的算法

1.BWA-backtrack: 是用来比对 Illumina 的序列的,reads 长度最长能到 100bp。

2.BWA-SW: 用于比对 long-read ,支持的长度为 70bp-1Mbp;同时支持剪接性比对。

3.BWA-MEM: 都支持较长的read长度,同时都支持剪接性比对(split alignments),但是BWA-MEM是更新的算法,也更快,更准确,且 BWA-MEM 对于 70bp-100bp 的 Illumina 数据来说,效果也更好些。选择这个算法,该算法先使用 MEM(maximal exact matches) 进行 seeding alignments,再使用 SW(affine-gap Smith-Waterman) 算法进行 seeds 的延伸。

BWA–MEM 算法执行局部比对和剪接性。可能会出现 query 序列的多个不同的部位出现各自的最优匹配,导致 reads 有多个最佳匹配位点。这对 long reads 的比对时比较重要的结果。但是却会和 Picard 的 markDuplicates 程序部兼容。

特别说明:

如果 mates.fq 缺省,且参数 –p 未设定,那么 reads.fq 被认为是 single-end;如果 mates.fq 存在,且参数 –p 未设定,那么 mem 命令会认为 read.fq 和 mates.fq 中的 i-th reads 组成一个read对 (a read pair),这个模式是常用的 paired-end mode。

如果参数 –p 被设定,那么, mem 命令会认为 read.fq 中的 第 2i-th 和 第 (2i + 1)-th 的 reads 组成一个 read 对 (a read pair),这种方式也被成为交错式的(interleaved paired-end)。 在这种情况下,即使有 mates.fq,也会被忽略。

bwa下载有2种方式,一种是我们前边介绍的conda,另一种可以直接下载二进制文件然后进行编译

$wget http://superb-sea2.dl.sourceforge.net/project/bio-bwa/bwa-0.7.12.tar.bz2

$tar jxf bwa-0.7.12.tar.bz2

$cd bwa-0.7.12

$make

$echo'PATH=$PATH:/your/bwa/path'>> ~/.bashrc

$source ~/.bashrc

应用bwa算法之前,需要利用 BWA 的 index 命令,构建出参考基因组的 FM-index

bwa index -a  bwtsw  hg38.fa   #构建参考基因组索引

构建索引时需要注意的问题:bwa构建索引有两种算法,两种算法都是基于BWT的,这两种算法通过参数-a is 和-a bwtsw进行选择。 其中-a bwtsw对于短的参考序列是不工作的,必须要大于等于10Mb;-a is是默认参数,这个参数不适用于大的参考序列,必须要小于等于2G。

最后生成文件:hg19.fa.amb、hg19.fa.ann、hg19.fa.bwt、hg19.fa.pac和hg19.fa.sa。


bwa常用参数:

-t   INT  线程数,默认是1。

-M        将 shorter split hits 标记为次优,以兼容 Picard’s markDuplicates 软件。

-p        若无此参数:输入文件只有1个,则进行单端比对;若输入文件有2个,则作为paired 

           reads进行比对。若加入此参数:则仅以第1个文件作为输入(输入的文件若有2个,则忽

          略之),该文件必须是read1.fq和read2.fa进行reads交叉的数据。

-R      STR  完整的read group的头部,可以用'\t'作为分隔符, 在输出的SAM文件中被解释为制

         表符TAB. read group 的ID,会被添加到输出文件的每一个read的头部。

-T  INT  当比对的分值比 INT 小时,不输出该比对结果,这个参数只影响输出的结果,不影响比

          对的过程。

-a      将所有的比对结果都输出,包括 single-end和 unpaired paired-end的 reads,但是这些比

          对的结果会被标记为次优。

比对命令如下:

$ bwa mem ref.fareads.fq> mem-se.sam

$ bwa mem ref.faread1.fqread2.fq> mem-pe.sam

$ bwa mem -t4-M -R"\@RG\tID:{library}\tLB:{library}\tPL:Illumina\tPU:{sample}\tSM:{sample}\"  ref.fa read1.fastq read2.fastq > mem-pe.sam 2> ./mem-pe.log

2.寻找SA coordinates,确定reads在参考基因组上的坐标。

使用软件:BWA

使用命令: bwa aln

bwa aln -n 0.04 -o 1 -k 2 -t 20 reference.fa leftRead.fastq > leftRead.sai

bwa aln -n 0.04 -o 1 -k 2 -t 20 reference.fa  rightRead.fastq > rightRead.sai 

参数说明: -n :NUM Maximum edit distance if the value is INT, or the fraction of missing alignments given 2% uniform base error rate if FLOAT. In the latter case, the maximum edit distance is automatically chosen for different read lengths. [0.04]

-o:Maximum number of gap opens

-k:Maximum edit distance in the seed

-t:Number of threads (multi-threading mode)

将SA coordinates输出文件转换为sam格式

使用软件:BWA

使用命令:bwa sample

bwa sample -a 1000 -n 3 -N 10 reference.fa leftRead.sai leftRead.fastq > leftRead.sam

bwa sample -a 1000 -n 3 -N 10 reference.fa  rightRead.sai  rightread.fastq > rightRead.sam

参数说明: -a:Maximum insert size for a read pair to be considered being mapped properly. Since 0.4.5, this option is only used when there are not enough good alignment to infer the distribution of insert sizes.

-n:Maximum number of alignments to output in the XA tag for reads paired properly. If a read has more than INT hits, the XA tag will not be written.

-N:Maximum number of alignments to output in the XA tag for disconcordant read pairs (excluding singletons). If a read has more than INT hits, the XA tag will not be written.

将sam文件转换为bam文件

使用软件:samtools

使用命令:samtools view

samtools view -Sb leftRead.sam > leftRead.bam

samtools view -Sb rightRead.sam > rightRead.bam

参数说明: -S: input is SAM

默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错。

-b: output BAM

默认下输出是 SAM 格式文件,该参数设置输出 BAM 格式

但是为什么要把SAM文件转化成BAM文件,两者都存储了什么,是什么样的?

bwa、Bowtie2是现下最流行的短序列比对软件,SAM(Sequence Alignment/Map)格式是一种通用的比对格式,用来存储reads到参考序列的比对信息。SAM是一种序列比对格式标准,由sanger制定,是以TAB为分割符的文本格式。主要应用于测序序列mapping到基因组上的结果表示。

SAM文件官网:https://en.wikipedia.org/wiki/SAM_%28file_format%29

SAM做的事情:

1. 非常多序列(read),mapping到多个参考基因组(reference)上;

2. 同一条序列,分多段(segment)比对到参考基因组上;

3. 无限量的,结构化信息表示,包括错配、删除、插入等比对信息;

行:除注释外,每一行是一个read。

@HD,说明符合标准的版本、对比序列的排列顺序;2@SQ,参考序列说明;3@RG,比对上的序列(read)说明;4@PG,使用的程序说明;5@CO,任意的说明信息。

比对结果部分(alignment section),每一行表示一个片段(segment)的比对信息,包括11个必须的字段(mandatory fields)和一个可选的字段,字段之间用tab分割。必须的字段有11个,顺序固定,不可用时,根据字段定义,可以为’0’或者’*’,这是11个字段包括:

比对结果详解:

SRR035022.2621862 163 16 59999 37 22S54M = 60102 179 CCAACCCAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCGACCCTCACCCTCACCC >AAA=>?AA>@@B@B?AABAB?AABAB?AAC@B?@AB@A?A>A@A?AAAAB??ABAB?79A?AAB;B?@?@<=8:8 XT:A:M XN:i:2 SM:i:37 AM:i:37 XM:i:0 XO:i:0 XG:i:0 RG:Z:SRR035022 NM:i:2 MD:Z:0N0N52 OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCCCCCCBBCC@CCCCCCCCCCACCCCC;CCCBBC?CCCACCACA@

QNAME     SRR035022.2621862

FLAG     163

RNAME     16

POS     59999

MAQ     37

CIGAR     22S54M

MRNM =

MPOS     60102

ISIZE     179

SEQ CCAACCCAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCGACCCTCACCCTCACCC

QUAL     >AAA=>?AA>@@B@B?AABAB?AABAB?AAC@B?@AB@A?A>A@A?AAAAB??ABAB?79A?AAB;B?@?@<=8:8TAG XT:A:M

TAG     XN:i:2

TAG     SM:i:37

TAG     AM:i:37

TAG     XM:i:0

TAG     XO:i:0

TAG     XG:i:0

TAG     RG:Z:SRR035022

TAG     NM:i:2

TAG     MD:Z:0N0N52

TAG OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCCCCCCBBCC@CCCCCCCCCCACCCCC;CCCBBC?CCCACCACA

必须的字段有11个,顺序固定,不可自行改动,根据字段定义,可以为’0‘或者’*‘,这是11个字段包括:

QNAME,比对片段的(template)的编号;

FLAG,位标识,template mapping情况的数字表示,每一个数字代表一种比对情况,这里的值是符合情况的数字相加总和;

(picard专门有一个工具解读sam的flag:http://broadinstitute.github.io/picard/explain-flags.html

1The read is one of a pair read是pair中的一条(read表示本条read,mate表示pair中的另一条read)

2The alignment is one end of a proper paired-end alignment pair一正一负完美的比对上

4The read has no reported alignments 这条read没有比对上

8The read is one of a pair and has no reported alignments mate没有比对上

16The alignment is to the reverse reference strand 这条read反向比对

32The other mate in the paired-end alignment is aligned to the reverse reference strand mate反向比对

64The read is the first (#1) mate in a pair 这条read是read1

128The read is the second (#2) mate in a pair 这条read是read2

RNAME,参考序列的编号,如果注释中对SQ-SN进行了定义,这里必须和其保持一致,另外对于没有mapping上的序列,这里是’*‘;

POS,比对上的位置,注意是从1开始计数,没有比对上,此处为0;

MAPQ,mappint的质量;

CIGAR,简要比对信息表达式(Compact Idiosyncratic Gapped Alignment Report),其以参考序列为基础,使用数字加字母表示比对结果,比如3S6M1P1I4M,前三个碱基被剪切去除了,然后6个比对上了,然后打开了一个缺口,有一个碱基插入,最后是4个比对上了,是按照顺序的;

“M”表示 match或 mismatch;

“I”表示 insert;

“D”表示 deletion;

“N”表示 skipped(跳过这段区域);

“S”表示 soft clipping(被剪切的序列存在于序列中);

“H”表示 hard clipping(被剪切的序列不存在于序列中);

“P”表示 padding;

“=”表示 match;

“X”表示 mismatch(错配,位置是一一对应的);

RNEXT,下一个片段比对上的参考序列的编号,没有另外的片段,这里是’*‘,同一个片段,用’=‘;

PNEXT,下一个片段比对上的位置,如果不可用,此处为0;

TLEN,Template的长度,最左边得为正,最右边的为负,中间的不用定义正负,不分区段(single-segment)的比对上,或者不可用时,此处为0;

SEQ,序列片段的序列信息,如果不存储此类信息,此处为’*‘,注意CIGAR中M/I/S/=/X对应数字的和要等于序列长度;

QUAL,序列的质量信息,格式同FASTQ一样。read质量的ASCII编码。

可选字段(optional fields),格式如:TAG:TYPE:VALUE,其中TAG有两个大写字母组成,每个TAG代表一类信息,每一行一个TAG只能出现一次,TYPE表示TAG对应值的类型,可以是字符串、整数、字节、数组等。

2.bam和sam的区别与一致

sam是带有比对信息的序列文件(即告诉你这个reads在染色体上的位置等),用于储存序列数据(SAM  format is a generic format for storing large nucleotide sequence alignments. )。

BAM is the compressed binary version of the Sequence Alignment/Map (SAM) format. 生物信息中的二进制文件主要是为了节约空间,计算机机可读。可以用samtools工具实现sam和bam文件之间的转化。

二者都是fastq文件经过序列比对或者mapping后输出的格式(其储存的信息都是一致的)

在UCSC种对bam文件有详细介绍

BAM is the compressed binary version of the Sequence Alignment/Map (SAM) format, a compact and index-able representation of nucleotide sequence alignments. Many next-generation sequencing and analysis tools work with SAM/BAM. For custom track display, the main advantage of indexed BAM over PSL and other human-readable alignment formats is that only the portions of the files needed to display a particular region are transferred to UCSC. This makes it possible to display alignments from files that are so large that the connection to UCSC would time out when attempting to upload the whole file to UCSC. Both the BAM file and its associated index file remain on your web-accessible server (http, https, or ftp), not on the UCSC server

Convert SAM to BAM using the samtools program:

```samtools view -S -b -o my.bam my.sam```

Sort and create an index for the BAM:

     samtools sort my.bam my.sorted

    samtools index my.sorted.bam

The sort command appends .bam to my.sorted, creating a BAM file of alignments ordered by leftmost position on the reference assembly. The index command generates a new file, my.sorted.bam.bai, with which genomic coordinates can quickly be translated into file offsets in my.sorted.bam

在UCSC浏览器中显示:

Move both the BAM file and index file (my.sorted.bam and my.sorted.bam.bai) to an http, https, or ftp location.

If the file URL ends with .bam, you can paste the URL directly into the custom track management page, click submit and view in the Genome Browser. The track name will then be the name of the file. If you want to configure the track name and descriptions, you will need to create a track line, as shown below in next step .

Construct a custom track using a single track line. The most basic version of the "track" line will look something like this:

track type=bam name="My BAM" bigDataUrl=http://myorg.edu/mylab/my.sorted.bam

Again, in addition to http://myorg.edu/mylab/my.sorted.bam, the associated index file http://myorg.edu/mylab/my.sorted.bam.bai must also be available at the same location.

Paste the custom track line into the text box in the custom track management page, click submit and view in the Genome Browser

其他信息可查看UCSC官网:http://genome.ucsc.edu/goldenPath/help/bam.html

通过bwa软件对fastqc文件比对结束,前边要做质控(fasqc和multiqc软件)过滤(trim_galore软件),下一步找变异,下一篇我们梳理一下GATK找变异的流程

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容