前言
近期分析了一部分小麦的全长转录组数据,参考了网上许多流程,收获良多,在此记录一下
全长转录组测序基于PacBio单分子实时测序技术(SMRT cell),凭借超长读长的优势,建库过程中无需打断RNA分子,直接对反转录的全长cDNA测序,得到从5’末端到3’PolyA尾的高质量全长转录本序列,可用来进行转录本鉴定、融合基因、可变剪切、精确地分析转录本的结构等分析。详见
SMRT cell测序下机后经 smrtlink server初级处理,会将polymerase reads去除接头低质量序列等,转为subreads序列,一般公司交付的数据为subreads.bam,每个样本主要包括三个文件:
movie.subreads.bam
movie.subreads.bam.pbi
movie.subreadset.xml
创建conda环境
conda create -n fulllength
conda activate fulllength
conda install isoseq3
1,拆分reads
使用pbccs软件拆分reads,直接使用conda安装,conda install pbccs
ccs -j 10 movie.subreads.bam movie.ccs.bam --report-file movie.ccs.report --min-rq 0.9 #j为线程数,根据集群情况,适当调整
2,去除文库构建中的测序引物
primers.fasta 公司会提供,也可用samtools查看,基本每条reads都会带有同样的引物序列,samtools view -h movie.ccs.bam|less
使用lima软件去除,conda install lima
lima movie.ccs.bam primers.fasta movieX.fl.bam --isoseq --peek-guess
如果有不同lane下机的数据,可以在生成ccs.bam这一步进行合并
samtools merge movie.merged.bam 01.movieX.fl.primer_5p--test1_3p.bam 02.movieX.fl.primer_5p--test1_3p.bam
3,嵌合体去除(refine)
转录组文库在构建过程中可能会产生嵌合体,即同一个ZMW中两个转录本嵌合到一起,这一步需要做的就是对拆分完且去除完引物的CCS序列,进一步过滤,去除嵌合体序列。
isoseq3 refine movie.merged.bam movieX.flnc.bam --require-polya --num-threads 10
#--require-polya 需要有polyA的isoform,并将其去除
4,聚类和纠错(cluster & Polish)
测序过程中一个ZMW孔会产生一个转录本序列,即一个CCS,不同的CCS可能会是相同的转录本序列,因此需要再通过聚类(cluster)的方式,得到一致性的转录本序列。
isoseq3 cluster movieX.flnc.bam clustered.bam --verbose --num-threads 10 --use-qvs
Polish纠错是为了进一步提升转录本中碱基的质量,这一步属于可选操作,目前smrtlink v8版本及以上可以不必进行Polish,即可获得准确度大于0.99的高质量转录本(high-quality isoforms,hq),和低质量转录本(low-quality isoforms,lq)
这一步在分析小麦的时候没有加进去,代码如下:
isoseq3 polish clustered.bam subreads.bam polished.bam(optional)
最终polished.hq.fasta.gz
为后续分析的主要文件
5,参考基因组比对
使用minimap
软件将高质量全长转录本与参考基因组进行比对
minimap2 -t 24 -d wheat.mmi wheat.genome.fa
minimap2 -t 24 -ax splice -uf --MD --secondary=no -C5 -O6,24 -B4 wheat.mmi movie.unpolished.hq.fasta >movie.maped.hq.sam 2>run.log
6,全长转录本去冗余
由于全长转录本在聚类过程中参数设置较严格,为得到质量较高的一致转录本序列,同一转录本的多拷贝序列可能分到不同Cluster,会产生一些冗余的序列。同时,全长转录本测序过程中,由于3'端存在Poly-A结构,可以确定3'端比较完整,而5'端序列容易降解,导致同一转录本的不同拷贝分到不同的Cluster,导致冗余序列的产生。冗余转录本示意图如下:
采用
TOFU
(Collapse_isoforms_by_sam.py
)软件对转录本序列进行去冗余,过滤Identity小于0.9
,Coverage小于0.85
的序列。
#sort -k 3,3 -k 4,4n movie.maped.hq.sam > movie.maped.hq.sorted.sam
#collapse_isoforms_by_sam.py --input movie.unpolished.hq.fasta -s movie.maped.hq.sorted.sam -c 0.9 -i 0.85 --dun-merge-5-shorter -o hq_isoforms.fasta.no5merge
########更新版##############
#minimap2生成的sam文件是没有header的,那使用samtools转bam并排序的时候会报错,这一部分可以自己手动加上
samtools faidx genome.fa
python ~/hychao/script/get_minimap_header_from_fai.py genome.fa.fai > header
cat header movie.maped.hq.sam > new_header.sam
samtools view -bS new_header.sam|samtools sort -o new_header.sorted.bam
samtools index -c new_header.sorted.bam #可以放到IGV里查看
nohup ~/hychao/biosoft/cDNA_Cupcake/cupcake/tofu/collapse_isoforms_by_sam.py --input movie.unpolished.hq.fasta -b new_header.sorted.bam -c 0.9 -i 0.85 --dun-merge-5-shorter -o tofu_hq_isoforms.fasta.no5merge &
结果文件为
-rw-r--r-- 1 xxx hpc 20M Jul 29 14:13 hq_isoforms.fasta.no5merge.collapsed.gff
-rw-r--r-- 1 xxx hpc 21M Jul 29 14:13 hq_isoforms.fasta.no5merge.collapsed.gff.unfuzzy
-rw-r--r-- 1 xxx hpc 1.1M Jul 29 14:13 hq_isoforms.fasta.no5merge.collapsed.group.txt
-rw-r--r-- 1 xxx hpc 1.1M Jul 29 14:13 hq_isoforms.fasta.no5merge.collapsed.group.txt.unfuzzy
-rw-r--r-- 1 xxx hpc 18M Jul 29 21:50 hq_isoforms.fasta.no5merge.collapsed.gtf
-rw-r--r-- 1 xxx hpc 59M Jul 29 14:13 hq_isoforms.fasta.no5merge.collapsed.rep.fa
-rw-r--r-- 1 xxx hpc 1.4M Jul 29 14:13 hq_isoforms.fasta.no5merge.ignored_ids.txt
hq_isoforms.fasta.no5merge.collapsed.gff
可以放到IGV里查看,还是比较准确的
7,可变剪切分析
可变剪切(Alternative Splicing,AS)是指从一个mRNA前体中通过不同的剪接方式(选择不同的剪接位点组合)产生不同的mRNA剪接异构体的过程,是大多数真核生物细胞中普遍的一种基因表达方式。真核细胞的基因序列中,包含了内含子(Intron)与外显子(Exon),两者交互穿插。一条未经剪切的RNA,可以具有多种外显子剪切形式,因此使得一个基因在不同时间、不同环境中可以翻译出不同的蛋白质,进而增加其生理状况下系统的复杂性或适应性。可变剪接是调节基因表达和产生蛋白质组多样性的重要机制,是导致真核生物基因和蛋白质数量较大差异的重要原因。
通过Astalavista
软件获取样品存在的可变剪接类型
astalavista -t asta --threads 24 -i hq_isoforms.fasta.no5merge.collapsed.gtf -o AS.gtf.gz
AS.gtf.gz
文件包含了可变剪切的具体信息,我只需要可变剪切类型及位置
ls *gz|while read file;do less $file|cut -f1,4,5 > $file.info;done
ls *gz|while read file;do less $file|cut -f9|cut -d ";" -f4|sed 's/structure\ //g' > $file.str;done
ls *gz|while read file;do paste $file.info $file.str > $file.result;done
ls *result|while read file;do cat $file|awk 'BEGIN{OFS="\t"}{$1=$1;print}' > $file.format;done
mkdir mid_file
find . -name "*" -type f -exec mv {} ./mid_file \;
cd mid_file
mv ./*format ../
最终会得到*.AS.gtf.gz.result.format
文件
1D 173335 173649 "1-,2-"
1D 174573 174796 "0,1^2-"
1D 4246295 4246638 "0,1^2-"
1D 4248784 4249679 "0,1^2-"
1D 6833566 6833999 "0,1^2-"
Astalavista
软件产生的结果是用各种符号组合来表示的,不同符号类型表示不同的可变剪切类型
For simple AS events, AStalavista software defined AS code
“0, 1–2ˆ”
for exon skipping (ES),“1ˆ, 2ˆ”
for alternative donor (A5SS),“1-, 2-”
for alternative acceptor (A3SS),“'0, 1ˆ2-”
for intron retention (IR), and“'1–2ˆ, 3–4ˆ”
for mutual exon skipping (MXE*).
8,CDS分析
CDS(Coding sequence)是编码蛋白产物的序列,与蛋白质的密码子对应。在全长转录组的测序结果中,预测蛋白质编码区有助于基因的结构分析,同时也是进行后续蛋白结构分析的基础。
采用TransDecoder
软件对去冗余后的高质量全长转录本进行CDS预测
TransDecoder寻找转录本中的编码区
DIAMOND: 超快的蛋白序列比对软件
TransDecoder.LongOrfs -t hq_isoforms.fasta.no5merge.collapsed.rep.fa
blast
或者pfam
搜索已知蛋白的同源序列来识别ORF
blastp -query hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder_dir/longest_orfs.pep -db swissprot.fa -max_target_seqs 1 -outfmt 6 -evalue 1e-5 -num_threads 28 > hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder_dir/longest_orfs.pep.format6.blast
TransDecoder.Predict -t hq_isoforms.fasta.no5merge.collapsed.rep.fa --retain_blastp_hits hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder_dir/longest_orfs.pep.format6.blast
最终得到文件
-rw-r--r-- 1 xxx hpc 2.9M Aug 6 10:45 hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder.bed
-rw-r--r-- 1 xxx hpc 11M Aug 6 10:45 hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder.cds
-rw-r--r-- 1 xxx hpc 13M Aug 6 10:45 hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder.gff3
-rw-r--r-- 1 xxx hpc 5.4M Aug 6 10:45 hq_isoforms.fasta.no5merge.collapsed.rep.fa.transdecoder.pep
CDS文件
>PB.1.1|1D:146392-147506(+)|transcript/33657.p2 GENE.PB.1.1|1D:146392-147506(+)|transcript/33657~~PB.1.1|1D:146392-147506(+)|transcript/33657.p2 ORF type:complete
ATGGCGTCCATGCTCTGCTCCTACTCCGTCTCCATGCCCGCCGCCGCCAGGGCTCCGCTC
CTCCGGTCCAGCGCTAGCTCCTACGCCACCTCGGTCGGGTTCGCCACCTCGCAGCTCGCC
GGCCTCAGCCTCAGCCTCGGCCTCACCTCCACGGCCGCGGTCTCCCTCCCCGCCAAGAAC
ACCATCGTCGCGCGCCGGATCTGCCCCTTCTTGGAGAAGAAGACGAACCGGGCCAACAAG
GTGTCCTTCTCCAACCACAAGACCAAGAAGCAGCAGTTTGTGAACCTGCAGTACAAGAAG
CTGTGGTGGGAGGCCGGCAAGCGCTACGTCAAGCTCAGGCTCTCCACCAAGGCCCTCAAG
ACCATCGAGAAGCACGGCCTCGACGCCGTCGCCAAGAAGGCGGGGATCGACCTCAACAAG
AAATGA
以上为全长转录组分析学习的主要内容,后续会持续更新学习