關(guān)于流程:
?Nature Communications 文章
文章從流行的39個工具中組合了120種RNA-seq分析方法,并對分析結(jié)果的精確度、效率和一致性三個層次進(jìn)行了評估。
在文章的最后作者給出了ballgown自己推薦的RNAseq 分析方法? 分析流程如圖所示,回帖用HISAT2,組裝和定量用StingTie,差異計算選擇DESeq2。
軟件:
安裝miniconda
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh
source?~/.bashrc
hisat2 和 stringtie 都可以在anaconda上直接安裝,deseq2可以使用新的Bioconductor的安裝方式:
conda activate
conda create -n hisat2
conda activate hisat2
conda install hisat2
conda activate
conda create -n? stringtie
conda activate stringtie
conda install stringtie
if(!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("DESeq2", version="3.8")
下載wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
#解壓unzip Trimmomatic-0.39.zip
conda安裝
condainstalltrimmomatic
預(yù)處理:
和其他數(shù)據(jù)處理一樣,先把sra文件轉(zhuǎn)為fastq,可以使用seqtk對fastq進(jìn)行自動的trim,但還是要先用FASTQC先看一下質(zhì)量,太差的數(shù)據(jù)最好還是不要用。
fastqc -o outdir -t 8 input.fastq
#-o 輸出文件目錄
#-t 進(jìn)程數(shù)
1建索引
/share/home/caas_zhangZP/miniconda3/envs/hisat2/bin/extract_splice_sites.py rice.gtf > rice.ss
/share/home/caas_zhangZP/miniconda3/envs/hisat2/bin/extract_exons.py rice.gtf >rice.exon
/share/home/caas_zhangZP/miniconda3/envs/hisat2/bin/hisat2-build -p 50 --exon rice.exon --ss rice.ss rice.fa rice
2比對
hisat2 --dta --p 8 -x rice.fa -1 1C.R1.fastq.gz -2 1C.R2.fastq.gz -S 1C.sam
循環(huán)比對
for i in {1..18};
do
hisat2? --dta? --p 8 -x rice.fa -1 R${i}_1.out.fq -2 R${i}_2.out.fq -S? R${i}.sam
done
批量比對
vi hisat2.sh
for i in *1.clean.fastq.gz;
do
i=${i%_1.clean.fastq.gz*};
echo ${i};
nohup hisat2 -p 4 --dta -x rice.fa -1
${i}_1.clean.fastq.gz -2 ${i}_1.clean.fastq.gz -S ${i}.sam &
done
3sam轉(zhuǎn)bam并且排序
samtools sort -@ 12 -o SRR${i}.sort.bam SRR${i}.sam
或者分兩步
#將sam文件轉(zhuǎn)化為二進(jìn)制的bam文件,節(jié)約空間和處理時間
samtools view --threads 6 -m 2G -bS 1C.sam > 1C.bam
#將bam文件排序(必須進(jìn)行這一步):
samtools sort --threads 5 -m 2G 1C.bam -o 1C.sorted.bam
批量處理
vi view.sh
for i in *.sam;
do
i=${i%.sam*};
echo ${i};
nohup samtools view -bhS? -t ~/Rna-seq-SRP200940/GRCh37/genome.fa.fai -@ 2 -o ${i}.bam ${i}.sam &
done
vi sort.sh
for i in *.bam;
do
i=${i%.bam*};
echo ${i};
nohup samtools sort -@ 4 -o ${i}.sort.bam ${i}.bam &
done
6定量
對樣本進(jìn)行組裝
比對上的reads將會被呈遞給StringTie進(jìn)行轉(zhuǎn)錄本組裝,StringTie單獨的對每個樣本進(jìn)行組裝,在組裝的過程中順帶估算每個基因及isoform的表達(dá)水平
stringtie -p 8 -G rice.gtf -o file.gtf file.bam
使用腳本批量組裝
vi stringtie1.sh
for i in *sort.bam;
do
i=${i%.sort.bam*};
echo ${i};
nohup stringtie -p 4 -G? ~/Rna-seq-SRP200940/GRCh37/genome.gtf
-o ${i}.gtf -l? ${i} ${i}.sort.bam &
done
7.將所有轉(zhuǎn)錄本合并
所有的轉(zhuǎn)錄本都被呈遞給StringTie的merge函數(shù)進(jìn)行merge,這一步是必須的,因為有些樣本的轉(zhuǎn)錄本可能僅僅被部分reads覆蓋,無法被StringTie組裝出來。merge步驟可以創(chuàng)建出所有樣本里面都有的轉(zhuǎn)錄本
創(chuàng)建mergelist
ls /.gtf >mergelist.txt
轉(zhuǎn)錄本合并
stringtie --merge -p 8 -G rice.gtf? -o stringtie_merged.gtf? mergelist.txt
檢測相對于注釋基因組,轉(zhuǎn)錄本的組裝情況
gffcompare -r rice.gtf -G -o merged stringtie_merged.gtf
重新組裝轉(zhuǎn)錄本并估算基因表達(dá)豐度
stringtie –e –B -p 4 -G stringtie_merged.gtf -o ballgown/SRR9228751/SRR9228751.gtf SRR9228751.sort.bam
批量處理
vi chongzuzhuang.sh
for i in *.sort.bam;
do
i=${i%.sort.bam*};
echo ${i};
nohup stringtie -e -B -p 8 -G stringtie_merged.gtf -o ballgown/${i}/${i}.gtf? ${i}.sort.bam &
done
stringtie -p 8 -G genome.gtf -o file.gtf file.bam
#單個樣本轉(zhuǎn)錄本計算,生成含有初始表達(dá)量的gtf文件
ls /.gtf >mergelist.txt
#將所有樣本gft文件位置生成一個list
stringtie --merge -p 8 -G genome.gtf -o stringtie_merged.gtf mergelist.txt
#合并所有樣本的轉(zhuǎn)錄本,生成完整的的轉(zhuǎn)錄本拼接結(jié)果gtf文件
stringtie -e -B -p 8 -G stringtie_merged.gtf -o ballgown/file1/file1.gtf file1.bam
#重新組裝轉(zhuǎn)錄本并估算基因表達(dá)豐度,并為ballgown創(chuàng)建讀入文件
使用tringtie拼接序列
for i in {1..18};
do
? ? #samtools sort -@ 8 -o R${i}.bam R${i}.sam
? ? stringtie? -p 8? --rf -G /8Tdata/liuhailong/genome/Sus_scrofa.Sscrofa11.1.97.gtf? -o /8Tdata/liuhailong/final_data/ballgown/R${i}/R${i}.gtf -B -e? R${i}.bam
done
參考資料:
http://www.itdecent.cn/p/216ce84a6220
http://www.itdecent.cn/p/cf4c5776fc79
https://cloud.tencent.com/developer/article/2032035
https://cloud.tencent.com/developer/article/2056795
http://www.itdecent.cn/p/2cbc739669d5
https://blog.csdn.net/flashan_shensanceng/article/details/125548474
https://blog.csdn.net/weixin_39628160/article/details/110667978
https://www.cnblogs.com/triple-y/p/14246809.html
http://www.itdecent.cn/p/b86e5598468b
featureCounts和StringTie是兩種廣泛使用的生物信息學(xué)工具,主要用于RNA-seq數(shù)據(jù)的分析,但它們的功能和重點有所不同。下面是兩者的主要區(qū)別:
featureCounts
featureCounts是一個由Aaron Lun等人開發(fā)的程序,主要功能是基于比對后的reads(如BAM文件)計數(shù)到基因組特征上,如基因、外顯子、啟動子或基因組的固定bin。它通常用于以下目的:
讀段計數(shù):featureCounts?將reads分配給基因組中的已知特征,如基因或轉(zhuǎn)錄本,并輸出每種特征的讀段計數(shù),這對于后續(xù)的差異表達(dá)分析至關(guān)重要。
兼容多種比對器:它可以處理由多種比對器生成的輸出,包括STAR、Bowtie、TopHat等。
靈活性:用戶可以指定多種參數(shù),如是否考慮多映射reads、是否計數(shù)到外顯子或基因等。
并行化:featureCounts?支持多線程,可以在多個CPU核心上同時運行,加快處理速度。
StringTie
StringTie是一個用于從RNA-seq數(shù)據(jù)中組裝轉(zhuǎn)錄本的工具,其主要功能包括:
轉(zhuǎn)錄本組裝:StringTie?可以從比對后的reads中重新構(gòu)建轉(zhuǎn)錄本,包括已知的和新發(fā)現(xiàn)的轉(zhuǎn)錄本。這意味著它可以識別出新的剪接變體或未知轉(zhuǎn)錄本。
定量表達(dá):除了組裝之外,StringTie?還可以估計每個轉(zhuǎn)錄本的表達(dá)量,通常使用FPKM(fragments per kilobase of transcript per million mapped reads)作為單位。
更新注釋:StringTie?可以利用RNA-seq數(shù)據(jù)更新現(xiàn)有的基因注釋,這對于那些基因注釋可能不完整或過時的物種尤為重要。
與其他工具的整合:StringTie?的輸出可以被其他工具如Ballgown或Cuffdiff2用于進(jìn)一步的分析,如差異表達(dá)分析。
總結(jié)
featureCounts?主要關(guān)注的是基于已有注釋的特征計數(shù),而?StringTie?更側(cè)重于從頭組裝轉(zhuǎn)錄本和更新基因注釋。
如果你的目標(biāo)是進(jìn)行差異表達(dá)分析且已有高質(zhì)量的注釋集,featureCounts?可能是一個直接的選擇。
如果你對發(fā)現(xiàn)新的轉(zhuǎn)錄本或更新基因注釋感興趣,那么?StringTie?或許更適合你。
兩者經(jīng)常在RNA-seq管道中組合使用,其中StringTie可用于組裝和更新注釋,而featureCounts則用于基于更新后的注釋進(jìn)行讀段計數(shù)。
featureCounts 和 StringTie 都可以用于RNA-seq數(shù)據(jù)分析,但在得到FPKM(Fragments Per Kilobase of transcript per Million mapped reads)方面,它們的處理方式有本質(zhì)的不同。
featureCounts
featureCounts 主要是用來對RNA-seq數(shù)據(jù)進(jìn)行基因或轉(zhuǎn)錄本級別的計數(shù),它并不直接計算FPKM或類似標(biāo)準(zhǔn)化表達(dá)量。featureCounts 輸出的是原始的計數(shù)(counts),即有多少reads被映射到了特定的基因或轉(zhuǎn)錄本上。然而,這些原始計數(shù)可以被進(jìn)一步處理來計算FPKM或其他標(biāo)準(zhǔn)化表達(dá)量指標(biāo),例如通過使用額外的軟件包如DESeq2或edgeR。這是因為featureCounts只關(guān)注于計數(shù),而不涉及基于長度和測序深度的標(biāo)準(zhǔn)化。
StringTie
相比之下,StringTie 不僅可以組裝轉(zhuǎn)錄本,還可以直接計算每個轉(zhuǎn)錄本的FPKM。StringTie 在組裝轉(zhuǎn)錄本的同時,考慮到轉(zhuǎn)錄本的長度和整個文庫的測序深度,從而計算出FPKM值。這使得StringTie能夠提供標(biāo)準(zhǔn)化后的表達(dá)量,可以直接用于比較不同樣本之間轉(zhuǎn)錄本的表達(dá)水平,無需額外的標(biāo)準(zhǔn)化步驟。
總結(jié)
featureCounts 提供的是未標(biāo)準(zhǔn)化的讀段計數(shù),這些計數(shù)可以被其他工具用來計算FPKM或類似標(biāo)準(zhǔn)化表達(dá)量。
StringTie 在轉(zhuǎn)錄本組裝的過程中直接計算FPKM,提供標(biāo)準(zhǔn)化后的表達(dá)量。
當(dāng)使用featureCounts時,通常會采用額外的分析步驟(如使用DESeq2或edgeR)來進(jìn)行標(biāo)準(zhǔn)化和差異表達(dá)分析。而StringTie則提供了一站式的解決方案,包括轉(zhuǎn)錄本的組裝和表達(dá)量的標(biāo)準(zhǔn)化。
在實際應(yīng)用中,選擇哪種工具取決于你的具體需求:如果你需要高度精確的轉(zhuǎn)錄本組裝和直接的FPKM值,StringTie可能是更好的選擇;而如果你只需要基因級別的計數(shù)并且計劃使用其他工具進(jìn)行標(biāo)準(zhǔn)化和差異表達(dá)分析,那么featureCounts就足夠了。
或者分兩步