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

作者: 晓佥 | 来源:发表于2019-06-03 10:49 被阅读239次

    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

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

    相关文章

      网友评论

        本文标题:RNA-seq汇总(分析+工具+GATK流程)

        本文链接:https://www.haomeiwen.com/subject/uywqxctx.html