使用MAKER進行註釋: 訓練SNAP基因模型

準備階段

訓練SNAP模型,需要準備三個文件,分別是參考基因組序列,組裝的轉錄本序列和同源蛋白序列。

對於參考基因組序列,我們要保證N50需要超過預期基因長度的中位數,否則註釋效果不好。不過目前的基因組在三代測序的加持下,基本上都不是問題。

對於同源蛋白, 建議只用UniProt/Sprot的人工檢查過的高質量蛋白序列,而不是盲目參考文獻,使用近源物種的所有蛋白。除非你的近源物種都是模式物種,蛋白序列可靠性高,否則用錯誤的輸入進行訓練,數據越多反而錯的越多。

我們可以在ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/taxonomic_divisions/選擇合適的uniprot_sprot數據, 然後將其輸出爲fasta格式。以植物爲例

wget ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/taxonomic_divisions/uniprot_sprot_plants.dat.gz
zcat uniprot_sprot_plants.dat.gz |\
    awk '{if (/^ /) {gsub(/ /, ""); print} else if (/^AC/) print ">" $2}' |\
    sed 's/;$//'> protein.fa

對於轉錄本,我們通常會測一些轉錄組數據,有三種策略可以得到轉錄本。(這裏暫時不考慮三代全長轉錄本)

  1. Trinity重頭組裝轉錄本
  2. 使用STAR + Trinity 獲取轉錄本
  3. 使用STAR + StringTie + gffread 獲取轉錄本

對於這三種策略,不推薦策略一,因爲在有參考基因組的情況下,策略二不但計算效率高,而且能避免組裝錯誤(多倍體等位基因之間相似度高)。對於策略二和策略三,我會推薦策略三。因爲對於靠的比較近的基因,Trinity很可能會把這兩個基因裝成一個。

Fig1

並且利用該轉錄本作爲輸入訓練SNAP模型,之後以SNAP模型作爲輸入,將轉錄組和同源蛋白作爲證據而不是直接用作模型,我們再檢查maker的結果, 也會發現使用StringTie進行組裝的結果纔是對的。

Fig2

因此使用策略二不但計算量大,而且有些情況下還會導致過近的轉錄本錯誤融合,反而影響了最終效果。儘管你可以通過調整參數,或者使用鏈特異性測序的方式來來優化結果,但STAR + StringTie 的組合同樣也可以這樣子做,因此最終我還是推薦策略三。

當然,這是我定性通過IGV瀏覽結果得出的結論,樣本小,結論未必可靠,僅供參考。

訓練階段

假設我們準備的三個文件分別命名爲, genome.fa, protein.fa 和不同組織來源的stringtie組裝後的轉錄本。

接着使用maker -CTL新建配置文件, 設置如下選項

genome=genome.fa
est=組織1.fa,組織2.fa,組織3.fa
protein=protein.fa
est2genome=1
protein2genome=1

然後使用mpiexec -n 線程數 maker &> run.log運行程序。

處理結果後,我們新建一個snap目錄訓練模型

mkdir snap && cd snap
gff3_merge -d ../genome.maker.output/genome_master_datastore_index.log

使用makerzff構建輸入文件

maker2zff -c 0.8 -e 0.8 -o 0.8 -x 0.2 genome.all.gff

maker2zff會根據AED(-x)和QI值進行過濾,其中QI值一共有9項,每一項的含義如下

  1. Length of the 5' UTR
  2. Fraction of splice sites confirmed by an EST alignment (-c)
  3. Fraction of exons that overlap an EST alignmetn(-e)
  4. Fraction of exons that overlap EST or Protein alignments(-o)
  5. Fraction of splice site confrimed by a ab-initio prediction(-a)
  6. Fraction of exons that overlap a ab-initio prediction(-t)
  7. Number of exons in the mRNA
  8. length of the 3' UTR
  9. Length of the protein sequence produced by the mRNA (-l)

如果QI值第二項爲-1,表示沒有支持該剪切位點的EST證據.

接着構建模型

fathom -categorize 1000 genome.ann genome.dna
fathom -export 1000 -plus uni.ann uni.dna
forge export.ann export.dna
hmm-assembler.pl snap . > ../snap.hmm

修改配置,然後重新運行。MAKER會自動處理衝突的部分,避免重複序列屏蔽等的一些重複計算。

genome=genome.fa
est=Trinity-GG.fasta
protein=protein.fa
snap=snap.hmm
est2genome=0
protein2genome=0

根據輸出結果再一次訓練模型

mkdir snap2 && cd snap2
gff3_merge -d ../genome.maker.output/genome_master_datastore_index.log
fathom -categorize 1000 genome.ann genome.dna
fathom -export 1000 -plus uni.ann uni.dna
forge export.ann export.dna
hmm-assembler.pl snap . > ../snap2.hmm

通常迭代2-3次就夠了,畢竟我們可能還會訓練AUGUSTUS和GeneMark模型,通過比較多個模型來得到最終結果。

關於SNAP軟件細節可以參考使用MAKER進行基因註釋(高級篇之SNAP模型訓練)

推薦閱讀:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章