RNA-seq汇总(分析+工具+GATK流程)

RNA-seq分析流程

不得不提的一篇文献
Sahraeian, Sayed Mohammad Ebrahim, et al. "Gaining comprehensive biological insight into the transcriptome by performing a broad-spectrum RNA-seq analysis." Nature communications 8.1 (2017): 59.
文献地址:https://www.nature.com/articles/s41467-017-00050-4

简单描述:

15个样品(具有各种种系,癌症和干细胞数据集),39个分析工具,约120种组合,约490次分析。
针对各个工具,作者都描述了其性能表现,做出了庞大的比较分析。并在此基础上,作者构建了一个综合性的RNA-seq analysis protocol,即RNACocktail(https://bioinform.github.io/rnacocktail/),囊括了这些工具,免费提供给他人下载使用,以帮助研究人员更好地进行生物学分析。

文献流程:

1.比对
2.有参转录本组装
3.无参转录本组装
4.三代长reads获取转录本
5.转录本定量
6.差异表达
7.突变分析
8.RNA编辑
9.融合基因检测

再详细的内容可以看文献,这里就不在赘述了。

文献工具总结:

注:其中包含了一些软件或工具的重要参数设定

1.比对工具

1.TopHat2: –no-coverage-search <u>http://ccb.jhu.edu/software/tophat/index.shtml</u>

2.STAR: -twopassMode Basic –outFilterType BySJout <u>https://github.com/alexdobin/STAR/releases</u>

3.HISAT2 2.0.1-beta –dta (or –dta-cufflinks) <u>http://www.ccb.jhu.edu/software/hisat/index.shtml</u>

4.RASER 0.52 -b 0.03 <u>https://www.ibp.ucla.edu/research/xiao/RASER.html</u>

2.有参考转录本组装工具

1.Cufflinks 2.2.1 –frag-bias-correct <u>http://cole-trapnell-lab.github.io/cufflinks/</u>

2.StringTie 1.2.1 -v -B <u>http://www.ccb.jhu.edu/software/stringtie/</u>

3.无参考转录本组装工具

1.SOAPdenovoTrans 1.04 -K 25 <u>https://github.com/aquaskyline/SOAPdenovo-Trans/</u>

2.Oases 0.2.09(velveth haslength: 25) <u>http://www.ebi.ac.uk/~zerbino/oases/</u>

(需依赖软件Velvetv1.2.10) (velvetg options: -read trkg yes)

  1. Trinity 2.1.1 –normalize reads <u>https://github.com/trinityrnaseq/trinityrnaseq/wiki</u>

  2. Trimmomatic 0.35 <u>http://www.usadellab.org/cms/index.php?page=trimmomatic</u>

4.三代长read分析工具

1.LoRDEC 0.6 -k 23 -s 3 <u>http://atgc.lirmm.fr/lordec/</u>

2.GMAP 12/31/15 -f 1 <u>http://research-pub.gene.com/gmap/</u>

3. STARlong 2.5.1b <u>https://github.com/alexdobin/STAR/releases</u>

Followed the recommended options :

–outSAMattributes NH HI NM MD –readNameSeparator space

–outFilterMultimapScoreRange 1 –outFilterMismatchNmax 2000 –scoreGapNoncan -20

–scoreGapGCAG -4 –scoreGapATAC -8 –scoreDelOpen -1 –scoreDelBase -1

–scoreInsOpen -1 –scoreInsBase -1 –alignEndsType Local –seedSearchStartLmax 50

–seedPerReadNmax 100000 –seedPerWindowNmax 1000

–alignTranscriptsPerReadNmax 100000 –alignTranscriptsPerWindowNmax 10000

–outSAMstrandField intronMotif –outSAMunmapped Within

4. IDP 0.1.9 <u>https://www.healthcare.uiowa.edu/labs/au/IDP/</u>

5.定量工具

1. eXpress 1.5.1 (bowtie2 v2.2.7) <u>https://pachterlab.github.io/eXpress/index.html</u>

(bowtie2 options: -a -X 600 –rdg 6,5 –rfg 6,5 –score-min L,-.6,-.4 –no-discordant –no-mixed)

2. kallisto 0.42.4 <u>http://pachterlab.github.io/kallisto/about.html</u>

3. Sailfish 0.9.0 <u>http://www.cs.cmu.edu/~ckingsf/software/sailfish/</u>

4. Salmon-Aln 0.6.1 <u>https://github.com/COMBINE-lab/salmon</u>

5. Salmon-SMEM 0.6.1 index: –type fmd quant: -k,19 <u>https://github.com/COMBINE-lab/salmon</u>

6. Salmon-Quasi 0.6.1 index: –type quasi -k 31 <u>https://github.com/COMBINE-lab/salmon</u>

7. featureCounts 1.5.0-p1 -p -B -C <u>http://subread.sourceforge.net/</u>

6.差异表达分析工具

1. DESeq2 1.14.1 <u>http://bioconductor.org/packages/release/bioc/html/DESeq2.html</u>

2. edgeR 3.16.5 <u>http://www.bioconductor.org/packages/release/bioc/html/edgeR.html</u>

3. limma 3.30.7 <u>http://bioconductor.org/packages/release/bioc/html/limma.html</u>

4. Cuffdiff 2.2.1 –frag-bias-correct –emit-count-tables <u>http://cole-trapnell-lab.github.io/cufflinks/</u>

  1. Ballgown 2.6.0 <u>https://github.com/alyssafrazee/ballgown</u>

6. sleuth 0.28.1 <u>https://github.com/pachterlab/sleuth</u>

7. 变异分析工具

1. SAMtools 1.2 samtools mpileup -C50 -d 100000 <u>https://github.com/samtools/samtools</u>

(bcftools v1.2) bcftools filter -s LowQual -e ’%QUAL<20 -DP>10000’ <u>https://github.com/samtools/bcftools</u>

2.GATK v3.5-0-g36282e4 (picard 1.129) <u>https://software.broadinstitute.org/gatk/download/</u>

Picard AddOrReplaceReadGroups: SO=coordinate

Picard MarkDuplicates: CREATE INDEX=true VALIDATION STRINGENCY=SILENTGATK

SplitNCigarReads: -rf ReassignOneMappingQuality -RMQF 255 -RMQT 60 -U ALLOW N CIGAR READSGATK

HaplotypeCaller: -stand call conf 20.0 -stand emit conf 20.0 -A StrandBiasBySample -A StrandAlleleCountsBySampleGATK

VariantFiltration: -window 35 -cluster 3 -filterName FS -filter“FS >30.0” -filterName QD -filter “QD <2.0”

8.RNA编辑

1. GIREMI 0.2.1 <u>https://github.com/zhqingit/giremi</u>

2. Varsim 0.5.1 <u>https://github.com/bioinform/varsim</u> <u>http://bioinform.github.io/varsim/</u>

9.基因融合

1.FusionCatcher 0.99.5a beta <u>https://github.com/ndaniel/fusioncatcher</u>

2.JAFFA 1.0.6 <u>https://github.com/Oshlack/JAFFA</u>

3.SOAPfuse 1.27 <u>http://soap.genomics.org.cn/soapfuse.html</u>

4.STAR-Fusion 0.7.0 <u>https://github.com/STAR-Fusion/STAR-Fusion</u>

5.TopHat-Fusion 2.0.14 <u>http://ccb.jhu.edu/software/tophat/fusion_index.shtml</u>

RNA-seq GATK Workflow

1. Mapping to the reference

评估了所有专门用于RNAseq比对的主要软件包,发现使用STAR能够对SNP和重要的indels实现最高的灵敏度.同时使用STAR 2-pass方法

下面是STAR 2-pass 比对步骤:

  1. STAR uses genome index files that must be saved in unique directories. The human genome index was built from the FASTA file hg19.fa as follows:

genomeDir=/path/to/hg19\ mkdir $genomeDir
**STAR** --runMode genomeGenerate --genomeDir $genomeDir --genomeFastaFiles hg19.fa --runThreadN <n>

  1. Alignment jobs were executed as follows:

runDir=/path/to/1pass\ mkdir $runDir \cd ​$runDir
**STAR** --genomeDir $genomeDir --readFilesIn mate1.fq mate2.fq --runThreadN <n>

  1. For the 2-pass STAR, a new index is then created using splice junction information contained in the file SJ.out.tab from the first pass:

genomeDir=/path/to/hg19_2pass\ mkdir $genomeDir
**STAR** --runMode genomeGenerate --genomeDir $genomeDir --genomeFastaFiles hg19.fa --sjdbFileChrStartEnd /path/to/1pass/SJ.out.tab --sjdbOverhang 75 --runThreadN <n>
注:sjdbOverhang 100
int>0: length of the donor/acceptor sequence on each side of the junctions, ideally = (mate_length - 1)

  1. The resulting index is then used to produce the final alignments as follows:

runDir=/path/to/2pass\ mkdir $runDir\ cd $runDir
**STAR** --genomeDir $genomeDir --readFilesIn mate1.fq mate2.fq --runThreadN <n>

2. Add read groups, sort, mark duplicates, and create index

上面的步骤生成一个SAM文件,然后我们通过常规的Picard处理步骤:添加read组信息,排序,标记重复和索引.

java -jar picard.jar **AddOrReplaceReadGroups**I=star_output.sam O=rg_added_sorted.bam SO=coordinate RGID=id RGLB=library RGPL=platform RGPU=machine RGSM=sample
java -jar picard.jar **MarkDuplicates** I=rg_added_sorted.bam O=dedupped.bam CREATE_INDEX=true VALIDATION_STRINGENCY=SILENT M=output.metrics

3. Split'N'Trim and reassign mapping qualities

接下来,我们使用专为RNAseq开发的名为SplitNCigarReads的新GATK工具,该工具将read分成外显子片段(除去Ns但保持分组信息)并硬切割任何突出到内含子区域的序列。

在这一步,我们还添加了一个重要的调整:我们需要重新分配映射质量,因为STAR指定了良好的对齐,MAPQ为255(技术上意味着“未知”,因此对GATK毫无意义)。 所以我们使用GATK的ReassignOneMappingQuality读取过滤器将所有良好的比对重新分配到默认值60.这不是理想的,我们希望将来RNAseq的映射器会发出有意义的质量分数,但同时这是我们能做的最好的。 实际上,我们通过将ReassignOneMappingQuality读取过滤器添加到splitter命令来实现此目的。

最后,请务必指定允许使用ALLOW_N_CIGAR_READS。目前这仍然被归类为“不安全”选项,但这种分类将改变以反映这一事实,现在这是RNAseq处理的支持选项.

java -jar GenomeAnalysisTK.jar -T **SplitNCigarReads** -R ref.fasta -I dedupped.bam -o split.bam -rf ReassignOneMappingQuality -RMQF 255 -RMQT 60 -U ALLOW_N_CIGAR_READS
注:-U,--unsafe <unsafe>
Enable unsafe operations: nothing will be checked at runtime (ALLOW_N_CIGAR_READS|ALLOW_UNINDEXED_BAM|ALLOW_UNSET_BAM_SORT_ORDER|NO_READ_ORDER_VERIFICATION|ALLOW_SEQ_DICT_INCOMPATIBILITY|LENIENT_VCF_PROCESSING|ALL)

4. Indel Realignment (optional)

可选项.
java -jar GenomeAnalysisTK.jar -T **RealignerTargetCreator** -I split.bam -Rref.fasta-o split.intervals
java -jar GenomeAnalysisTK.jar -T **IndelRealigner** -I split.bam-R ref.fasta-targetIntervals split.intervals -o split.intervals.bam

5. Base Recalibration

可选项,建议运行BQSR.
java -jar GenomeAnalysisTK.jar -T **BaseRecalibrator** -R ref.fasta-I split.intervals.bam -knownSites dbsnp_138.hg19.vcf -mte -nct 4 -o split.recal.table
java -jar GenomeAnalysisTK.jar -T **PrintReads -**R ref.fasta-BQSR split.recal.table -I split.intervals.bam -o split.intervals.real.bam

6. Variant calling

我们为变体调用代码添加了一些功能,它将智能地考虑由SplitNCigarReads嵌入在BAM文件中的内含子 - 外显子分裂区域的信息。简而言之,新代码将执行“悬空头合并”操作,并避免使用软剪辑基础(这是一个临时解决方案),以尽量减少假阳和假阴。要调用此新功能,只需将-dontUseSoftClippedBases添加到常规HC命令行即可。此外,我们发现如果我们设置最小phred-scaled置信度阈值20去Call突变,我们会得到更好的结果,但如果需要,可以降低此值以提高灵敏度。.

java -jar GenomeAnalysisTK.jar -T **HaplotypeCaller** -R ref.fasta -I input.bam -dontUseSoftClippedBases -stand_call_conf 20.0 -o output.vcf

7. Variant filtering

用hard filters过滤生成的突变,因为还没有RNAseq运行VQSR所需的training/truth资源.

java -jar GenomeAnalysisTK.jar -T **VariantFiltration** -R hg_19.fasta -V input.vcf -window 35 -cluster 3 -filterName FS -filter "FS > 30.0" -filterName QD -filter "QD < 2.0" -o output.vcf

如果更关心灵敏度并且愿意容忍更多假阳,可以选择不进行过滤(或使用限制较少的阈值).

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

推荐阅读更多精彩内容