研究步骤
- 构建cDNA文库,采用Hiseq 2000 PE100或Hiseq 2500 PE125测序手段,现已升级为Hiseq 4000 PE150测序手段。
- 利用Trinity软件对clean reads进行混合拼接,得到transcript和其中的unigene。
- 对transcript和unigene进行功能注释,依据Nr、Nt、Swiss-prot、pfam、KOG、GO、KEGG数据库。
- SNP、InDel、SSR分析。
- 采用DESeq(有生物学重复)或DEGseq(无生物学重复)进行差异表达基因分析。
- 对差异基因GO富集分析和KEGG富集分析,寻找差异基因富集最显著的功能描述和通路信息。
- 目前,诺禾致源无参转录组标准分析提供转录因子注释(仅限植物)。
- qPCR验证。
无参转录组分析内容
Trinity原理步骤
拼接出transcript,选取其中最长的作为unigene,以N50、N90评价拼接效果。Unigene作为ref用于后续分析。
Trinity包含三个独立的软件模块:
- Inchworm (虫)(C++)
- 将 reads切为 k-mers (k bp长度的短片段)
- 利用Overlap关系对k-mers进行延伸 (贪婪算法)
- 输出所有的序列 (“contigs”)
- Chrysalis (蛹)(C++)
- 聚类所有相似区域大于k-1bp的 contigs
- 构图 (区分不同的 “components”)
- 将reads比对回 components,进行验证
- Butterfly (蝶)(Java)
- 拆分graph 为线性序列
- 使用reads以及 pairs关系消除错误序列
Trinity组装依据的算法是de Bruijn Graph,即从打断的文库中提取一定长度的K-mer,然后根据k-1错位相似的方法拼接组装的可能路径,最终确定完整的参考组装转录组。
Corset原理步骤
其在Trinity拼接基础上,根据转录本间Shared Reads将转录本聚合为许多cluster,再结合不同样本间的转录本表达水平及H-Cluster算法,将样本间有表达差异的转录本从原cluster分离,建立新的cluster,最终每个cluster被定义为“Gene”。该方法聚合冗余转录本,并提高差异表达基因的检出率。
组装质量评估标准
组装质量评估标准
- Unigene数量
- N50
- 比对率–比对率大于80%
- 注释比率–物种近缘性良好CDS序列相对完整60%以上
- 核心蛋白比对率–真核生物中存在一些高度保守区域所编码的蛋白(2748/80%以上)
组装完整性
- N50长度,可以初步评估,但不是越长越好,对应物种考虑
- 通过统计Unigene对近缘物种基因覆盖度分布
组装准确性
- 组装长度会影响定量的准确性
后续定量准确性
组装冗余度
影响定量准确性的最大因素:冗余 冗余:组装出的Unigene的数量大大超过基因数; 冗余的来源: (1)可变剪切; (2)测序错误引入的“新” 转录本;
冗余的最大影响:导致多重比对,给定量带来困难 减少冗余策略 (1)去除低质量的reads; (2)是否有外援污染; (3)使用Normalization参数,降低高丰度基因的reads数据,同时提高组装效率; (4) 后续序列聚类或过滤 去冗余方法 (1)筛选同一基因的最长转录本作为unigene (2)软件:TGICL、CAP3通过聚类筛选unigene
详细脚本代码
# 测序数据质控--fastqc
## fastqc软件安装
## 下载地址:http://www.bioinformatics.babraham.ac.uk/projects/fastqc/
## fastqc基于java运行,所以服务器一般需要安装对应java程序,java -version查看
## 解压即安装
## -o 指定输出文件夹 -t 指定线程
nohup fastqc -o ./result/QC_result/ -t 4 ./SRR924313_1.fastq.gz ./SRR924313_2.fastq.gz &
# 测序数据过滤--solexaQA
# 先去除低质量碱基,然后删除掉较短序列
for id in *fastq
do
echo $id
nohup SolexaQA++ dynamictrim -b -h 20 -d /home/chenghy/BY2_ref/result/SolexaQA_result --solexa $id &
done
cd /home/chenghy/BY2_ref/result/SolexaQA_result
for id in *trimmed
do
echo $id
nohup SolexaQA++ lengthsort -l 24 -d ./ $id
done
# Trinity组装
Trinity --seqType fq \
--left ./SRR924285_1.fastq,./SRR924313_1.fastq \
--right ./SRR924285_2.fastq,./SRR924313_2.fastq \
--CPU 2 \
--max_memory 20G \
--min_contig_length 300 \
--output /home/chenghy/BY2_ref/result/Trinity_result
# 组装结果统计
/home/chenghy/biosoftware/trinityrnaseq-v2.11.0/util/TrinityStats.pl /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/Trinity.fasta > /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/assembly_report.txt
# 组装结果质量评估
# 1. 提取最长转录本
/home/chenghy/biosoftware/trinityrnaseq-v2.11.0/util/misc/get_longest_isoform_seq_per_trinity_gene.pl /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/Trinity.fasta > /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/unigene1.fasta
# 2. 软件聚类去冗余(TGICL、CAP3)
# cd-hit-est -i ./trinity_out_dir/Trinity.fasta -o output-cdhit -T 1 -M 1000
# 组装结果可视化
# unigene长度分布
perl /home/chenghy/biosoftware/trinityrnaseq-2.2.0/util/misc/fasta_seq_length.pl /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/Trinity.fasta > /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/length.txt
#R画图(R语言绘图)
data <- read.table("length.txt",header=T)
data[,2][which(as.numeric(data[,2])>=2000)] <- 2000
library(ggplot2)
pdf("length_distribution.pdf",height=7,width=10)
ggplot(as.data.frame(data), aes(x = as.numeric(data[,2])))+geom_histogram(binwidth =100)+
xlab("Transcripts Length Interval")+
ylab("Number ofTranscripts")+
labs(title="Transcripts Length Distribution")+
scale_x_continuous(breaks=seq(100,2000,by=100),
labels=c("100","200","300","400","500","600","700","800","900","1000","1100","1200","1
300","1400","1500","1600","1700","1800","1900",">=2000"))
dev.off()
# 定量
# 利用RSEM进行丰度估计
# 比对reads评估表达量(每个样品运行一次)
/home/chenghy/biosoftware/trinityrnaseq-2.2.0/util/align_and_estimate_abundance.pl \
--transcripts /home/chenghy/BY2_ref/result/Trinity_result/trinity_out_dir/unigene1.fasta \ --seqType fq \
--left ./SRR924285_1.fastq --right ./SRR924285_2.fastq \
--est_method RSEM --aln_method bowtie --trinity_mode --prep_reference \
--output_dir /home/chenghy/BY2_ref/result/RSEM_result/rsem_Sp_log_outdir
# 查看比对结果
perl /home/chenghy/biosoftware/trinityrnaseq-2.2.0/util/SAM_nameSorted_to_uniq_count_stats.pl /home/chenghy/BY2_ref/result/RSEM_result/rsem_Sp_log_outdir/bowtie.bam > /home/chenghy/BY2_ref/result/RSEM_result/rsem_Sp_ds_outdir/mapping.out