通過
isoseq collapse
和pigeon
,我們最終能得到帶有基因注釋的表達矩陣,后續基因的差異分析,差異基因的KEGG注釋等都和二代RNA-seq類似了。
Isoseq 數據分析第一部分我們最后使用了isoseq cluster
獲得了聚類后高質量的轉錄本,但是我們仍然不知道這些經過聚類的轉錄本在基因組的位置以及屬于哪些基因?這些轉錄本是已經注釋的還是新的isoform?每個聚類是否能夠進一步合并?每個isoform的表達量情況?下面我們通過使用isoseq collapse
和 pigeon
對轉錄本(isoforms)進行在參考基因組指導下的進一步合并(collapse),注釋,分類和定量。
一、Iso-Seq Collapse
在isoseq cluster
完成以后,我們首先需要將高質量全長isoforms回貼到參考基因組上,然后進行isoseq collapse
。
加上--do-not-allow-extra-5exons
和默認條件下Isoforms合并原則 (圖2)。
下面三種參數下的合并(collapse)原則(圖3):
--max-fuzzy-junction
INT Ignore mismatches or indels shorter than or equal to N. [5]
--max-5p-diff
INT Maximum allowed 5' difference if on same exon. [50]
--max-3p-diff
INT Maximum allowed 3' difference if on same exon. [100]
-
下載參考基因組
這里我們使用gencode版的人類參考基因組作為示例,任何版本的參考基因組原理類似。按照圖4所示下載相應的人類參考基因組以及注釋文件,并重新命名為GRCh38.fa
和GRCh38.gtf
。
單個樣本數據示例
- pbmm2回貼轉錄本,map reads using pbmm2
# 建立參考基因組文件夾,并將參考基因組和注釋文件放入其中
$ mkdir human_ref
#參考序列建立索引
$ pbmm2 index GRCh38.fa GRCh38.mmi
# 單個樣本數據示例
$ pbmm2 align --preset ISOSEQ --sort <input.bam> <ref.fa> <mapped.bam> #使用說明
$ pbmm2 align --preset ISOSEQ --sort human_80K.transcripts.bam human_ref/GRCh38.fa human_80K.mapped.bam
- 對回貼轉錄本進行collapse, collapse mapped reads into unique isoforms
# 單個樣本數據示例
$ isoseq collapse --do-not-collapse-extra-5exons <mapped.bam> <flnc.bam> <collapsed.gff> #使用說明
$ isoseq collapse --do-not-collapse-extra-5exons human_80K.mapped.bam human_80K.flnc.bam human_80K.collapsed.gff
多樣本或者混樣數據示例
一個樣本不同組織間的混樣用以注釋物種Isoforms時,可以合并成一個樣本,按照單個樣本數據來注釋分析。
如果是多樣本,后期需要做定量或差異表達分析的話,如果沒有樣本名稱的話(bam文件中 SM tag為樣本名稱),需要在lima
拆分或者去除primers的時候將每個樣本重新命名,這樣*collapsed.flnc_count.txt
才會將每個樣本的每個轉錄本數量給統計出來。*collapsed.flnc_count.txt
文件里的矩陣,可以用于差異表達分析,如DeSeq2,的輸入文件(轉錄本還未注釋)。下面代碼展示了樣本重新命名的步驟:
# lima拆barcode和樣本重命名
$ lima --isoseq m64307e_230628_025302.hifi_reads.bam IsoSeq_v2_primers_12.fasta UHRR.fl.bam --biosample-csv samplenames.csv --overwrite-biosample-names
# --biosample-csv samplenames.csv --overwrite-biosample-names 要一起使用才能修改樣本名稱。
#samtools view -H x.bam 檢查SM tag
# Combine inputs
$ ls UHRR.fl.IsoSeqX*bam > all.fofn
# Remove poly(A) tails and concatemer
$ isoseq refine all.fofn IsoSeq_v2_primers_12.fasta UHRR.flnc.bam --require-polya
#cluster,轉錄本聚類
$ isoseq cluster2 UHRR.flnc.bam UHRR.transcripts.bam
#pbmm2回貼轉錄本,map reads using pbmm2
$ pbmm2 align --preset ISOSEQ --sort UHRR.transcripts.bam human_ref/GRCh38.fa UHRR.mapped.bam
#對回貼轉錄本進行collapse, collapse mapped reads into unique isoforms
$ isoseq collapse --do-not-collapse-extra-5exons UHRR.mapped.bam UHRR.flnc.bam UHRR.collapsed.gff
二、Pigeon使用方法
Pigeon是一個PacBio轉錄工具包,包含了用于將全長轉錄本isoforms按照參考基因組注釋進行分類和過濾的工具。Pigeon基于SQANTI3開發,其輸出與單細胞Seurat軟件下游分析兼容。
官方網站:https://isoseq.how/classification/pigeon.html
- 軟件安裝:
$ conda install -c bioconda pbpigeon
- 準備參考基因組文件:
#使用說明
$ pigeon prepare <gencode.annotation.gtf> <reference.fa> <cage.bed> <intropolis.tsv>
#實際運行
$ pigeon prepare human_ref/GRCh38.gtf human_ref/GRCh38.fa
- 準備轉錄本注釋(transcript GFF)文件 ,
isoseq collapse
輸出文件:
#使用說明
$ pigeon prepare <collapsed.gff>
#實際運行
$ pigeon prepare UHRR.collapsed.gff
Isoforms 歸類 (Classify Isoforms)
- 轉錄本分類(Transcript classification)
#使用說明
$ pigeon classify <collapsed.sorted.gff> <annotations.gtf> <reference.fa> --cage-peak refTSS.bed --poly-a polyA.list
#實際運行
$ pigeon classify UHRR.collapsed.sorted.gff human_ref/GRCh38.sorted.gtf human_ref/GRCh38.fa
測序聚類所得的轉錄本根據參考基因組注釋文件進行以下分類(圖5),分類標準參照SQANTI3:
- FSM (Full Splice Match)
- ISM (Incomplete Splice Match)
- NIC (Novel In Catalog)
- NNC (Novel Not in Catalog)
- Antisense
- Genic Intron
- Genic Genomic
- Intergenic
- 將FLNC定量結果加入到分類文件中(Adding FLNC counts to classification output)
#使用說明
$ pigeon classify <collapsed.sorted.gff> <annotations.gtf> <reference.fa> --fl abundance.txt
#實際運行
$ pigeon classify UHRR.collapsed.sorted.gff human_ref/GRCh38.sorted.gtf human_ref/GRCh38.fa --fl UHRR.collapsed.flnc_count.txt
有了基因注釋的表達矩陣(
*_classification.txt
)就可以愉快的去做差異表達分析了!
Isoforms 過濾 (Filter isoforms)
#使用說明
$ pigeon filter <classification.txt>
#實際運行
$ pigeon filter UHRR_classification.txt
如果想生成過濾后的.gff
文件,需要輸入 collapsed.sorted.gff
。
#使用說明
$ pigeon filter <classification.txt> --isoforms <collapsed.sorted.gff>
#實際運行
$ pigeon filter UHRR_classification.txt --isoforms UHRR.collapsed.sorted.gff