1. 程式人生 > >Trinity簡介(1)--用於無參考基因組的轉錄組de novo組裝

Trinity簡介(1)--用於無參考基因組的轉錄組de novo組裝

一、 Trinity簡介


Trinity,是由 the Broad Institute 開發的轉錄組de novo組裝軟體,由三個獨立的軟體模組組成:
Inchworm,Chrysalis和Butterfly。三個軟體依次來處理大規模的RNA-seq的reads資料。
Trinity的簡要工作流程為:
Inchworm: 將RNA-seq的原始reads資料組裝成Unique序列;
Chrysalis: 將上一步生成的contigs聚類,然後對每個類構建Bruijn圖;
Butterfly: 處理這些Bruijn圖,依據圖中reads和成對的reads來尋找路徑,從而得到具有可變剪接的全長轉錄子,同時將旁系同源基因的轉錄子分開。
Trinity發表在 Nature Biotechnology。
二、 Trinity的安裝


1. 下載Trinity。
2. 安裝Trinity。
1
$ tar zxvf trinityrnaseq_r2013-02-25.tgz
2
$ cd trinityrnaseq_r2013-02-25
3
$ make
僅需要在安裝目錄下進行make即可。該命令編譯了由C++編寫的Inchworm和Chrysalis,而 使用Java編寫的Butterfly則不需要編譯,可以直接使用。


######
$ ls
Analysis/   docs/           Inchworm/    notes     README         Trinity*          util/
Butterfly/  galaxy-plugin/  LICENSE.txt  
[email protected]
    Release.Notes  Trinity.pl*
Chrysalis/  htc_conf/       Makefile     PerlLib/  sample_data/   trinity-plugins/
######3


三、Trinity的使用


1. 直接執行安裝目錄下的程式Trinity.pl來使用該軟體,不帶引數則給出使用幫助。其典型用法為:
1
Trinity.pl --seqType fq --JM 50G --left reads_1.fq  --right reads_2.fq --CPU 8


2. Trinity引數
必須的引數:
 
--seqType reads的型別:(cfa, cfq, fa, or fq) 
--JM jellyfish使用多少G記憶體用來進行k-mer的計算,包含‘G’這個字元 
--left 左邊的reads的檔名 
--rigth 右邊的reads的檔名 
--single 不成對的reads的檔名
#######################################
,呼叫bowtie, samtools
 ./Trinity --seqType fq --JM 10G --left ACGATC_forward_paired.fq --right ACGATC_reverse_paired.fq --CPU 8 --output trinity_out_dir1
Current settings:
time(seconds)        unlimited
file(blocks)         unlimited
data(kbytes)         unlimited
stack(kbytes)        8192
coredump(blocks)     0
memory(kbytes)       unlimited
locked memory(kbytes) 64
process              unlimited
nofiles              8192
vmemory(kbytes)      unlimited
locks                unlimited




Paired mode requires bowtie. Found bowtie /home/..


 and bowtie-build at /home/..




Found samtools at: /usr/local/bin/samtools


-since butterfly will eventually be run, lets test for proper execution of java
#######################################
Running Java Tests
Friday, October 28, 2016: 14:47:47      CMD: java -Xmx64m -jar tools/de_novo_tools/trinityrnaseq_r20140717/util/support_scripts/ExitTester.jar 0
CMD finished (2 seconds)
Friday, October 28, 2016: 14:47:49      CMD: java -Xmx64m -jar tools/de_novo_tools/trinityrnaseq_r20140717/util/support_scripts/ExitTester.jar 1
-we properly captured the java failure status, as needed.  Looking good.
Java tests succeeded.
###################################


Friday, October 28, 2016: 14:47:49      CMD: mkdir -p /home/trinity_out_dir1
CMD finished (0 seconds)
Friday, October 28, 2016: 14:47:49      CMD: mkdir -p /home/trinity_out_dir1/chrysalis
CMD finished (0 seconds)
Converting input files. (in parallel)Friday, October 28, 2016: 14:47:50 CMD: /hometoools/de_novo_tools/trinityrnaseq_r20140717/trinity-plugins/fastool/fastool --illumina-trinity --to-fasta /home/ionadmin/lix_test_home/gmx/yunjiankang_data/CHG014690/oldmethod/ACGATC_forward_paired.fq >> left.fa 2> /home/ionadmin/lix_test_home/gmx/yunjiankang_data/CHG014690/oldmethod/ACGATC_forward_paired.fq.readcount
Friday, October 28, 2016: 14:47:50      CMD: /home/toools/de_novo_tools/trinityrnaseq_r20140717/trinity-plugins/fastool/fastool --illumina-trinity --to-fasta /home/ACGATC_reverse_paired.fq.readcount


***********************************************************************************************************8
........


##########################################3
可選引數:
Misc:
--SS_lib_type reads的方向。成對的reads: RF or FR; 不成對的reads : F or R。在資料具有鏈特異性的時候,設定此引數,則正義和反義轉錄子能得到區分。預設 情況下,不設定此引數,reads被當作非鏈特異性處理。FR: 匹配時,read1在5'端上游, 和前導鏈一致, read2在3'下游, 和前導鏈反向互補. 或者read2在上游, read1在下游反 向互補; RF: read1在5'端上游, 和前導鏈反向互補, read2在3'端下游, 和前導鏈一致; 
--output 輸出結果資料夾。預設情況下生成trinity_out_dir資料夾並 將輸出結果儲存到此資料夾中。 
--CPU 使用的CPU執行緒數,預設為2
--min_contig_length 報告出的最短的contig長度。預設為200 
--jaccard_clip 如果兩個轉錄子之間有UTR區重疊,則這兩個轉錄子很有可能在 de novo組裝的時候被拼接成一條序列,稱為融合轉錄子(Fusion Transcript)。如果有 fastq格式的paired reads,並儘可能減少此類組裝錯誤,則選用此引數。值得說明的是: 1. 適合於基因在基因組比較稠密,轉錄子經常在UTR區域重疊的物種,比如真菌基因組。而對 於脊椎動物和植物,則不推薦使用此引數; 2. 要求fastq格式的paired reads檔案(檔案 中reads名分別以/1和/2結尾,以利於軟體識別),同時還需要安裝bowtie軟體用於reads 的比對; 
3. 單獨使用具有鏈特異性的RNA-seq資料的時候,能極大地減少UTR重疊區很小的 融合轉錄子; 4. 此選項耗費運算,若沒必要,則不用此引數。 
--prep 僅僅準備一些檔案(利於I/O)並在kmer計算前停止程式執行 
--no_cleanup 保留所有的中間輸入檔案 
--full_cleanup 僅保留Trinity fasta檔案,並重命名成${output_dir}. Trinity.fasta 
--cite 顯示Trinity文獻引證和一些參與的軟體工具 
--version 報告Trinity版本並推出 Inchworm 和 K-mer 計算相關選項: 
--min_kmer_cov 使用Inchworm來計算K-mer數量時候,設定的Kmer的最小值。 預設為1
--inchworm_cpu Inchworm使用的CPU執行緒數,預設為6和--CPU設定的值中的 小值。 Chrysalis相關選項: 
--max_reads_per_graph 在一個Bruijn圖中錨定的最大的reads數目,預設為200 000 
--no_run_chrysalis 執行Inchworm完畢,在執行chrysalis之前停止執行 Trinity 
--no_run_quantifygraph 在平行化運算quantifygrahp前停止執行Trinity Butterfly相關選項:
--bfly_opts Butterfly額外的引數 
--max_number_of_paths_per_node 從node A -> B,最多允許多少條路徑。預設 為10 
--group_pairs_distance 最大插入片讀長度,預設為500 
--path_reinforcement_distance 延長轉錄子路徑時候,reads間最小的重疊鹼基 數。預設PE:75; SE:25 
--no_triplet_lock 不鎖定triplet-supported nodes 
--bflyHeapSpaceMax 執行Butterfly時java最大的堆積空間,預設 為20G 
--bflyHeapSpaceInit java初始的堆積空間,預設為1G 
--bflyGCThreads java進行無用資訊的整理時使用的執行緒數,默 認由java來決定 
--bflyCPU 執行Butterfly時使用的CPU執行緒數,預設為2 
--bflyCalculateCPU 計算Butterfly所執行的CPU執行緒數,由公式  80% * max_memory / maxbflyHeapSpaceMax 得到 
--no_run_butterfly 在Chrysalis執行完畢後,停止執行Butterfly Grid-computing選項: 
--grid_computing_module 選定Perl模組,在/Users/bhaas/SVN/trinityr naseq/trunk/PerlLibAdaptors/。




3. 適合於illumina測序資料的真菌物種轉錄組組裝的Trinity命令為:
Trinity.pl --seqType fq --JM 50G --left reads_1.fq --right reads_2.fq --SS_lib_type FR  --output transcriptome_tissue --CPU 24 --jaccard_clip --inchworm_cpu 24 --group_pairs_distance 500 --bflyCPU 24
4. Trinity生成的結果檔案
執行程式結束後,轉錄組結果為trinity_out_dir/Trinity.fasta。可以使用軟體所帶的一支程式分析轉錄組統計資訊。
$ $TRINITY_HOME/util/TrinityStats.pl trinity_out_dir/Trinity.fasta Total trinity transcripts: 30706 Total trinity components: 26628 Contig N50: 554
三. Trinity執行原理與過程
1. 檢測java的可執行性,因為buttfly會用到
2. 執行jellyfish,使用其dump命令得到jellyfish.kmers.fa檔案
3. Inchworm(Linear contig construction from k-mers)
assembles the RNA-seq data into the unique sequences of transcripts, often generating full-length transcripts for a dominant isoform, but then reports just the unique portions of alternatively spliced transcripts.
4. Chrysalis
clusters the Inchworm contigs into clusters and constructs complete de Bruijn graphs for each cluster. Each cluster represents the full transcriptonal complexity for a given gene (or sets of genes that share sequences in common). Chrysalis then partitions the full read set among these disjoint graphs.
5. Butterfly
then processes the individual graphs in parallel, tracing the paths that reads and pairs of reads take within the graph, ultimately reporting full-length transcripts for alternatively spliced isoforms, and teasing apart transcripts that corresponds to paralogous genes.
四. 注意事項
1 Trinity分步執行
當資料量比較大的時候,trinity執行的時間會很長,同時,記憶體不夠等情況出現的時候有可能程式執行崩潰。最好是分步執行。下一步會接著前一步進行下去。
Stage 1: generate the kmer-catalog and run Inchworm: –no_run_chrysalis
Stage 2: Chrysalis clustering of inchworm contigs and mapping reads: –no_run_quantifygraph
Stage 3: Chrysalis deBruijn graph construction: –no_run_butterfly
Stage 4: Run butterfly, generate final Trinity.fasta file. (exclude –no_ options)
2 計算資源
Ideally, you will have access to a large-memory server, ideally having ~1G of RAM per 1M reads to be assembled (but often, much less memory may be required).
The assembly from start to finish can take anywhere from ~1/2 hour to 1 hour per million reads (your mileage may vary). 個人記錄了一次,使用dell伺服器,64GB RAM,24 threads : 53M 的reads,運行了16.5h(平均3.2M/h),記憶體使用峰值為43G.

相關推薦

Trinity簡介1--用於參考基因組de novo組裝

一、 Trinity簡介 Trinity,是由 the Broad Institute 開發的轉錄組de novo組裝軟體,由三個獨立的軟體模組組成: Inchworm,Chrysalis和Butterfly。三個軟體依次來處理大規模的RNA-seq的reads資料。 Tr

CMOS 影象感測器簡介1:畫素結構

  隨著工藝的發展,CMOS影象感測器的效能已經趕上或超越CCD,再加上CMOS影象感測器在工藝上能很大程度與傳統CMOS晶片相容,它已經成為相機的主流感測器型別。由於只能硬體的迅猛發展,很多應用場景都將碰到CMOS感測器,因此本文從基礎出發,介紹CMOS影象感

C++引用計數reference counting技術簡介1

1.引用計數的作用 C++引用計數是C++為彌補沒有垃圾回收機制而提出的記憶體管理的一個方法和技巧,它允許多個擁有共同值的物件共享同一個物件實體。 C++的引用計數作為記憶體管理的方法和技術手段主要有一下兩個作用。 (1)簡化了堆物件(Heap Objec

gstreamer外掛簡介1--gstreamer框架

應用程式可以透明的利用解碼和過濾技術。開發者可以使用簡潔通用的介面來編寫一個簡單的外掛來新增新的解碼器或濾鏡。目前,gstreamer已經可以應用在Linux、windows、macos、android、unix等多個平臺上了,而且有全世界的開源工程師們在使用和維護。基於gstreamer的易用性,gstre

(1)順序表的操作 ① 輸入一整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指

(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指定元素。 ⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的

leetcode之O1空間複雜度合併倆個數

這個題做得有點懷疑智商了,看了題,感覺題目的意思就是讓用O(1)的空間複雜度來做, 但是隻想到O(m*n)的時間複雜度的做法,感覺應該不是最優,就直接看答案了,果然不是最優,竟讓忘記 倒著把值放入陣列

鎖資料結構1簡介

希望本文能成為無鎖(lock free)資料結構系列文章一個好的開端。我很樂意與社群分享我的經歷,這個系列就什麼是無鎖資料結構、如何實現以及 STL 容器概念是否適用於無鎖容器,何種情形下適合應用無鎖資料結構做一些分享。 談論無鎖資料結構,必然要談論諸如原子操作、程

ArcGIS Pro 簡明教程1Pro簡介

配置 動畫 name app 產品 版本 鼠標拖動 nal mage ArcGIS Pro 簡明教程(1)Pro簡介 轉載地址:http://www.cnblogs.com/lazygis/p/5870545.html ArcGIS Pro 簡明教程(1)Pro簡

springCloud1:微服務簡介

spring cloud 微服務 一、什麽是微服務微服務架構風格是一種將一個單一應用程序開發為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信采用輕量級通信機制(通常用HTTP資源API)。二、微服務架構特性1、每個微服務可獨立運行在自己的進程裏2、一系列獨立運行的微服務共同構建起整個系

源射頻混頻器的基本特性1

tar media 留下 時域 過程 inter local logs 運算 混頻器的一個重要作用就是頻率搬運,即將中頻信號搬運到射頻段,或者將射頻信號搬運到中頻段,前者稱為上變頻,後者稱為下變頻。 以上變頻為例,在實際使用中f0稱為IF(Intermediate Fre

Appium1簡介

允許 color node.js uml sdk pos ati tro 技術 appium介紹 官方網站 1、特點 appium 是一個自動化測試開源工具,支持 iOS 平臺和 Android 平臺上的原生應用,web應用和混合應用。 “移動原生應用”是指那些用

1MFC簡介及MFC Object與Windows Object之間的比較

libraries 並且 bsp 應用 ets 銷毀 靈活 eight 公司 MFC(微軟基礎類庫)   微軟基礎類庫(Microsoft Foundation Classes,簡稱MFC)是微軟公司提供的一個類庫(class libraries),以C++類的形式封裝了W

Spring框架學習1Spring簡介

校驗和 遵從 直接 特定 cto 適合 配置 有意 允許 內容源自:Spring 框架簡介 Spring 是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框

十、事勿擾,有事通知1——NSNotification

over ring pass tro 管理中心 代碼 aps pre 發生 概述 很久很久以前,有一只菜鳥正在美滋滋的擼著他的嵌入式C代碼。然而有一天,老板對菜鳥說:“別擼C了,從現在開始你就寫swift開發ios了。”菜鳥一臉懵逼,但還是照做了。 又有一天,菜蛋諂媚的對菜

大資料基礎之Quartz1簡介、原始碼解析

一簡介 官網 http://www.quartz-scheduler.org/ What is the Quartz Job Scheduling Library? Quartz is a richly featured, open source job scheduling libra

大資料基礎之Kafka1簡介、安裝及使用

http://kafka.apache.org   一 簡介 Kafka® is used for building real-time data pipelines and streaming apps. It is horizontally scalable,&nb

Intel VT-d1- 簡介

Intel VT-d的全稱是Intel Virtualization Technology for Direct I/O,它是Intel虛擬化技術的一部分,主要針對的是I/O子系統,它的實現主要是通過在硬體上引入重定向單元,該硬體重定向單元用於對I/O子系統的DMA操作和中斷傳遞進行重定向,從而輔助

大數據基礎之ORC1簡介

ups fields with including seve cor val posit record https://orc.apache.org Optimized Row Columnar (ORC) file 層次結構: file -> stripes

RocketMQ學習筆記1----RocketMQ的簡介

1. 什麼是RecketMQ?         是一個佇列模型的訊息中介軟體,具有高效能、高可靠、高實時、分散式特點。  Producer、Consumer、佇列都可以分散式。   Producer 吐一些佇列輪流収送訊息,佇列集合稱為Topic,Consumer 如果做廣播消費,則一個con

HIT機器學習期末複習1——機器學習簡介及決策樹

劉楊的機器學習終於上完了惹,下週就要考試了,趕緊複習ing...... 趁機做個總結,就當是複習了惹...... 機器學習簡介 1、什麼是機器學習 簡單來說,就是一個三元組<P, T, E> P——performance效能(對應著效能的評估函式,也就是常說的loss或者likeli