MetaPhase:使用 Hi-C 進行宏基因體解卷積的軟體工具。
由美國華盛頓州西雅圖華盛頓大學基因組科學系的 Josh Burton ( jnburton at uw.edu
) 創建
發表於G3:基因 |基因組 |遺傳學(請引用)在這裡:http://dx.doi.org/10.1534/g3.114.011825
什麼是 MetaPhase,我為什麼關心?
為了使用 MetaPhase,我需要具備什麼?
系統需求
下載 MetaPhase 包
編譯 MetaPhase 包
演練:在範例資料集上嘗試 MetaPhase
輸入檔案列表
建立宏基因組草稿
將 Hi-C 讀取與宏基因組組裝草案對齊
提供參考基因組
建立 TSV 文件
必需的命令列參數
可選的命令列參數
輸出命令列參數(所有可選切換)
圖表
圖片
輸出目錄中的文件
運行LACHESIS
MetaPhase 無法運作!
MetaPhase 崩壞了!
MetaPhase 產生了一個奇怪的結果!
MetaPhase 是一種執行宏基因組反捲積的軟體工具。 也就是說,它輸入一個宏基因組組裝體(由混合基因組樣本創建的組裝體,通常是許多不同微生物物種的組裝體),並確定該組裝體中的哪些重疊群屬於同一基因組。 宏基因組組裝不包含混合樣本中任何一種物種的完整基因組,但解卷積組裝可以包含許多單一物種的幾乎完整基因組。 MetaPhase 依賴 Hi-C 產生的數據,Hi-C 是一種研究染色質構象的成熟分子技術(論文)。
如果您正在研究微生物群落並且想要了解單一微生物物種的基因組,則需要使用 MetaPhase。 MetaPhase 在相當複雜的群落中效果很好,它可以同樣地很好地研究真核生物和原核生物。 MetaPhase 無法對同一物種的密切相關菌株進行解卷積;它將把所有這些菌株放入一個簇中。 MetaPhase 尚未在包含數千個物種的群落(例如人類腸道微生物組)上進行測試,也無法可靠地檢測豐度遠低於 1% 的物種。 (請注意,此處的限制在於標準從頭宏基因組組裝軟體無法產生包含稀有物種重疊群的宏基因組組裝草案,而不是 MetaPhase 無法對這些重疊群進行解卷積。)
如果您正在研究單一物種內的菌株變異,則不需要使用 MetaPhase。 或者,如果您正在研究人類癌症基因組中的基因組重排。 您也不想使用 MetaPhase,除非您擁有宏基因組 Hi-C 資料集或願意建立一個; Hi-C 並不是一項簡單的學習技術。 純粹計算(而非分子)宏基因組反捲積很困難,但並非不可能:請參閱 MetaPhase 論文簡介中引用的論文。
從較高層次來說,運行 MetaPhase 只需要做兩件事:
從頭開始的宏基因組組裝草稿。 這可以透過任意數量的組裝工具(例如 Velvet、IDBA-UD、ABySS 或 SPAdes)從鳥槍法宏基因組定序文庫創建。
從宏基因組樣本創建的 Hi-C 定序文庫- 最好是用於創建從頭宏基因組組裝的相同樣本,或非常相似的樣本。
在較低級別,MetaPhase 需要多個不同的輸入檔案以及一些可選輸入。 有關輸入文件的更多詳細信息,請參閱 C1 節“輸入文件列表”。
要設定和運行 MetaPhase,您需要一台在 UNIX 環境中運行且至少有 16GB 內存的計算機,並安裝以下軟體:
gcc,C++ 編譯器 (http://gcc.gnu.org/)
zlib 壓縮函式庫 (http://www.zlib.net/)
您可能還需要以下軟體:
短讀長對齊器 BWA (http://bio-bwa.sourceforge.net/) 或其他此類對齊器
命令列形式的 BLAST 對齊器 (http://www.ncbi.nlm.nih.gov/books/NBK1763/),包括指令blastn
、 tblastx
和makeblastdb
bmtagger 軟體用於從宏基因組資料集中刪除人類讀取 (http://biowulf.nih.gov/apps/bmtagger.html)
MetaPhase 也需要 boost C++ 函式庫 (http://www.boost.org/) 和 SAMtools 工具包 (http://samtools.sourceforge.net/),但這些都包含在 MetaPhase 安裝包中。
從 https://github.com/shendurelab/MetaPhase/archive/master.zip 將 MetaPhase 套件下載到 UNIX 檔案系統中。 如果您下載 tarball ( MetaPhase.tar.gz
),請使用以下 UNIX 指令將其解壓縮:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
從這裡開始,我將主 MetaPhase 目錄稱為<MetaPhase>
。
要編譯 MetaPhase,只需在<MetaPhase>
目錄中鍵入make
即可。 為了執行 MetaPhase,您可能還需要將<MetaPhase>/include/boost_1_47_0/stage/lib
新增至$LD_LIBRARY_PATH
(以避免問題: cannot open shared object file...
)最後,請確保執行來自<MetaPhase>
目錄的MetaPhase 或將該目錄加入您的$PATH
。 這很重要,因為某些 MetaPhase 模組需要存取可執行腳本FastaSize
、 CountMotifsInFasta.pl
、 Fig2a.R
和MakeClusteringResultHeatmap.R
,這些腳本包含在 MetaPhase 套件中。
MetaPhase 套件包含一個小測試用例,您可以執行該測試用例來了解 MetaPhase 的工作原理。 它包含在目錄test_case
中,該目錄具有以下子目錄:
<MetaPhase>/test_case/assembly/
:包含從頭開始的宏基因組組裝草稿, assembly.fasta
。 該組合由 20 個重疊群組成,這些重疊群取自更大的細菌性陰道炎樣本組合。 它在這裡作為宏基因組組裝的玩具範例。
<MetaPhase>/test_case/HiC/
:包含 2 個 fastq 文件,BV.H3.head.bmt.1.fq 和 BV.H3.head.bmt.2.fq。 這些讀數是從細菌性陰道炎樣本中測序的更大 Hi-C 數據集的子集。 它們已使用 bmtagger 進行過濾以刪除人工讀取。
<MetaPhase>/test_case/refs/
:包含惰性乳桿菌的一個公開可用的參考基因組LI.fasta
。 這是一個可選輸入,MetaPhase 將使用它來查看其簇是否與L. iners基因組相符。
<MetaPhase>/test_case/tsvs/
:包含兩個 TSV 文件,描述其他輸入文件的位置並由 MetaPhase 使用。
<MetaPhase>/test_case/out/
:目錄最初不存在。 當 MetaPhase 在測試案例上運行時,它將建立此目錄並將其輸出放在這裡。
test_case 中缺少的一個(可選)輸入是核苷酸序列的 BLAST 資料庫。 此資料庫可讓您根據所有已知序列查詢宏基因組組裝的重疊群,對於測試包來說太大了,但可以從 BLAST 網站下載。 要使用此資料庫,您需要設定--blast_dir
命令列參數。
若要將 MetaPhase 應用於 test_case,請執行以下命令:
準備從頭宏基因組組裝草案,以便與 BWA 對齊。 請注意, bwa
必須位於您的$PATH
中。 cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
將 Hi-C 讀數與組裝草案對齊。 這使用了align.sh
,這是一個已經提供的腳本,它運行bwa aln
和bwa sampe
,並創建MetaPhase將使用的BAM檔案。請注意,您必須使用bwa aln
和bwa sampe
,而不是bwa mem
。 cd align.sh
cd <MetaPhase>/test_case/HiC
檢查 TSV 檔案以確保您了解它們的用途。 cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
現在,使用一組基本的命令列參數來執行 MetaPhase 測試案例。 所有這些命令列參數的用途將在下面的 D 節「運行 MetaPhase」中進行解釋。 cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
MetaPhase 要做的第一件事是將組裝草圖的重疊群與參考基因組 LI.fasta 進行比對。 這可能需要幾分鐘,但這是一次性的等待:結果將緩存在一個特殊文件中。 接下來,MetaPhase 將透過 Hi-C 連接對草稿組裝中的 20 個重疊群進行聚類,創建 3 個簇(因為-N 3
)。
現在嘗試再次執行 MetaPhase,新增以下一個或多個命令列參數: --report_unclustered
、 --output_cluster_fastas
、 --output_heatmaps
、 output_network_image
。 每個選項都會導致更多資訊以各種形式輸出:要么到螢幕,要么到文件,要么到圖像。 有關詳細信息,請參閱 D2 節“可選命令行參數”。
現在查看test_case/out/test_case
。 這是 MetaPhase 運行創建的輸出目錄。 它包含幾個輸出檔。 文件cluster.*.fasta
是您的叢集 fastas(僅當您使用--output_cluster_fastas
運行時它們才存在。)子目錄cached_data
包含快取資料文件,其中包括 BLAST 運行和 MetaPhase 叢集的結果。
請注意,test_case 是一個非常小的資料集,其結果在生物學上不有用或不典型。 例如,Hi-C 讀取對非常少,以至於20 個重疊群中有10 個完全未鏈接,而鏈接的重疊群位於三個獨立的簇中(因此不可能產生少於3 個簇。)這使我們無法說明另一個有用的範例MetaPhase的特點,就是我們可以用它來預測簇的數量。 在您的樣本上(可惜不是在 test_case 上),您可以使用-N 1
運行 MetaPhase,它將產生一條E(N)富集曲線,就像 MetaPhase 論文圖 S4 中的曲線一樣。 這將使您確定宏基因組組裝中物種的粗略數量,從而確定最佳簇數。
MetaPhase 直接使用以下輸入檔。 有關所有這些文件的範例,請參閱 test_case。
所需文件:
宏基因組組裝草案,fasta 格式
一個或多個 SAM/BAM 檔案描述 Hi-C 讀取與宏基因組組裝草案的比對。 請注意,這些 SAM/BAM 檔案的每個讀取項只能列出一次,這表示它們必須使用 bwa aln 和 bwa sampe 生成,而不是 bwa mem。
兩個 TSV 檔案<scenario>.HiC_libs.tsv
和<scenario>.refs.tsv
分別描述 BAM 輸入檔集和參考基因組集。可選文件:
描述所有已知核苷酸 ( nt
) 和/或蛋白質 ( nr
) 序列的 BLAST 資料庫。 可以從 BLAST 網站下載資料庫的更新版本,該網站還包含有關如何安裝您需要的blastn
和tblastx
命令列實用程式的說明。 請注意,這些資料庫很大(截至 2015 年, nt
約為 25 Gb, nr
約為 50 Gb。)
一組 fasta 格式的參考基因組,描述您認為存在於樣本中或與樣本中的事物相關的物種。 如果您不知道樣本中的所有內容(而且您可能不知道),那麼您可以等到您已經透過 BLAST 搜尋將巨集基因組組裝對齊,然後從這些搜尋結果中獲取建議。 若要尋找某個物種的參考基因組組裝,請搜尋 NCBI 組裝資料庫。
SAM/BAM 文件,描述鳥槍讀取與草圖宏基因組組裝的比對。 霰彈槍讀取與用於創建裝配的讀取相同。 MetaPhase 可以使用此檔案來估計樣本中每個重疊群的豐度,從而估計每個簇的豐度。 目前如果不破解 MetaPhase.cc 就無法使用(抱歉。)
MetaPhase 最重要的輸入之一是從頭宏基因組組裝草案。 您必須使用來自範例的霰彈槍讀取自行建立此組件。 有許多公開可用的從頭宏基因組組裝工具效果很好,包括 Velvet、IDBA-UD、ABySS 和 SPAdes。 我在開發 MetaPhase 時使用了 IDBA-UD。
重要的是要認識到 MetaPhase 不會產生任何新序列;它僅對程序集中已有的序列進行聚類。 如果樣品中的某些序列沒有進入組裝草案 - 因為它太罕見、GC 太不平衡、太重複或任何其他原因 - 那麼 MetaPhase 不可能將其聚類到基因組中。 為了獲得具有最大序列量和最長重疊群 N50 的組裝,可能值得在宏基因組組裝程序或許多不同的宏基因組組裝工具中嘗試許多不同的選項。
當 MetaPhase 的輸入重疊群較長時,其性能會更好,因為它可以使用更清晰的 Hi-C 連接訊號。 特別是, MetaPhase 無法對不包含任何限制性酶位點的重疊群進行聚類,因為 Hi-C 讀取無法可靠地與其對齊。 在選擇用於 Hi-C 實驗的限制性內切酶時,請記住這一事實。 如果您的宏基因組組裝體具有較小的 N50,您可能需要使用 4 切割酶而不是 6 切割酶。 (例如,如果您的宏基因組裝配體的 N50 僅 4 Kb,那麼使用 6 切割器(大約每 4 Kb 切割一次)製作的 Hi-C 文庫將完全無法對組裝體序列的 50% 進行聚類。)
除了宏基因組組裝本身之外,MetaPhase 還將 Hi-C 讀取的比對輸入到宏基因組組裝中。 該檔案必須採用 SAM 或 BAM 格式,且必須包含每個 Hi-C 唯讀一次。 您可以使用任何產生 SAM/BAM 檔案的對準器;我在開發 MetaPhas 時使用了 bwa;如果您使用 bwa,請確保使用 bwa aln 和 bwa sampe,而不是 bwa mem,它會多次輸出每個讀取內容!
Hi-C 讀數是獨特的:它們是故意嵌合的,具有嵌合連接位點,其序列從限制性酶中已知(例如,HindIII 在AAGCTT 處切割並在重新連接時產生AAGCTAGCTT。)因此,直接的比對方法將錯過了許多有用的 Hi-C 配對。 您可能想要設計一個自訂對齊管道以最大限度地提高產量;如果是這樣,請查看腳本align.iter.interactive.sh
,我在自己的開發中使用了該腳本,它可能會為您提供有關自訂管道的想法。
向 MetaPhase 提供參考基因組完全是可選的,但非常有用。 MetaPhase 可以對齊草圖組裝的重疊群,以便了解它們可能來自哪個物種。 有兩種方法可以做到這一點:比對到包含所有已知序列的 BLAST 資料庫;並比對到包含單一參考基因組組裝的本地 fasta 檔案。 前一種方法對於探索樣本中包含哪些類群的問題很有用;後者方法對於鎖定您已知的樣本中的單一物種(或與樣本中的事物相關)以及建立熱圖和聚類網路圖像(請參閱 E2 部分「圖像」)非常有用。 您可以僅從 BLAST 比對開始,然後使用其中的命中來確定您可能遇到的物種,然後下載這些參考文獻並將其輸入 MetaPhase。 參考基因組組裝清單在檔案<scenario>.refs.tsv
中提供給 MetaPhase。
MetaPhase 將執行與 BLAST 資料庫和參考基因組的所有比對。 MetaPhase 可以呼叫 BLAST 指令blastn
、 tblastx
和makeblastdb
,所有這些指令都是 BLAST 命令列程式碼包的一部分;確保這些命令位於您的$PATH
中。 請注意,BLAST 可能會使用大量運行時,特別是如果您設定了--use-tblastx
。 但是,MetaPhase 將 BLAST 運行的結果緩存在<out_dir>/cached_data
中,以便稍後節省運行時間。
MetaPhase 需要兩個輸入 TSV(製表符分隔值)檔案:一個提供 SAM/BAM 比對檔集,另一個提供參考基因組組裝集。 這些文件很小,您需要手動製作它們,特別是因為它們稍後可能需要手動修改。 最簡單的方法是遵循test_case/tsvs
中的 TSV 檔案範例。
若要取得所有 MetaPhase 命令列參數的快速摘要,請執行MetaPhase -help
。 更詳細的解釋在這裡。
-s
<string>
:場景名稱。 MetaPhase 使用它來命名您的運行。 它用作 tsv 檔案名稱的開頭(請參閱下面的-i
),也用作輸出目錄的名稱(請參閱下面的-o
)。 最後,您可以忽略這一點,但有些場景名稱具有我在開發中使用的硬連線命令列選項(例如,這就是為什麼-a
沒有在MetaPhase -help
命令。)
-a
<string>
:從頭宏基因組組裝 fasta 檔案草稿的位置。 這必須是絕對路徑,而不是相對路徑 -即,它必須以/
開頭。
-N
<integer>
:要建立的群集數。 如果設定為 1,MetaPhase 會將所有內容聚集到一個集群中,併計算 E(N)(集群內連結豐富度),然後編寫一個檔案enrichment_curve.jpg
,該檔案可以為您提供估計的數量樣本中的物種。 不要設定為 0 或大於重疊群數量的數字。
其中一些參數的預設值包含$HOME
。 這是指您的 UNIX 主目錄(當您鍵入cd ~
或cd $HOME
時進入的位置。)
-i
<string>
:輸入目錄。 這是包含 tsv 檔案<scenario>.HiC_libs.tsv
和<scenario>.refs.tsv
的目錄。預設值: ./input
input。
-o
<string>
:輸出根目錄。 此運行的輸出檔將放入<out_dir>/<scenario>
。預設值: $HOME/MP/out
。
--blast_dir
<string>
:包含 MetaPhase 用於比對的 BLAST 資料庫( nt.*
和nr.*
)的目錄。 您可以從 BLAST 網站下載這些檔案。預設值: $HOME/extern/blast
。
--refs_dir
<string>
:包含refs.tsv
檔案中列出的參考基因組組件的目錄。 此運行的輸出檔將放入<out_dir>/<scenario>
。預設值: $HOME/MP/refs
。
--use_tblastx
:切換。 如果設置,MetaPhase 將使用tblastx
而不是blastn
執行 BLAST 比對 - 它不是根據核苷酸資料庫比對重疊群的核苷酸序列,而是將核苷酸翻譯為氨基酸並將它們與蛋白質資料庫比對。 因為蛋白質序列比核苷酸序列更保守,所以tblastx
會獲得更遠的系統發育關係 -即在科或屬級別而不是物種級別 - 您可能想要也可能不想要。 tblastx
也比blastn
慢很多。
--force_blast_realign
:切換。 如果設置,MetaPhase 將忽略並覆蓋任何描述 BLAST 比對的快取檔案。
-b
:切換。 對連結矩陣應用統計引導。 換句話說,一旦創建了 Hi-C 連結矩陣(並且在其歸一化之前),請透過替換對矩陣進行重新取樣,創建一個具有相同連結總數但連結的確切位置隨機變化的新矩陣。 如果您想測試聚類結果的穩健性,請使用-b
運行 MetaPhase 幾次並比較結果,結果應該是隨機不同的。
--isolated_component_size <integer>
:從連結矩陣建立重疊群連結圖後,丟棄圖中重疊群數量少於此數量的任何元件。 在大多數資料集中,此類組件由無法可靠地放入任何物種中的雜訊組成,並且由於這些組件永遠無法與其他組件組合,因此它們可能會丟失明顯的簇數。 但是,如果您的 Hi-C 連結資料稀疏,您可能需要減少此資料以避免垃圾真正的叢集。預設值: 100
。
--jarvis_patrick_K <integer>
:Jarvis-Patrick 預聚類步驟中使用的 K 值。 較高的值會增加運行時間,但可能會提高準確性。 要詳細了解此數字,請參閱 Jarvis 和 Patrick,“使用基於共享近鄰的相似性度量進行聚類100
,1973 年。
--min_cluster_norm <integer>
:允許的簇的最小範數。 重疊群的「範數」是其包含的限制性酵素 (RE) 位點的數量,簇的範數是其重疊群的範數總和。 此參數會對輸出產生很大影響:增加min_cluster_norm
將增加簇的最小可能大小,可能會破壞代表小物種的簇;但它也可以防止形成僅包含少量重疊群 (2-3) 的惱人的小簇,這些簇通常是由數據中的雜訊和/或重複重疊群引起的。 如果您得到一個包含大部分重疊群的巨大簇,而所有其他簇都很小,則需要增加此值。 請記住,簇的範數大致等於其長度(以 bp 為單位)除以 RE 站點頻率,因此對於不同類型的 RE,最佳數量可能不同。預設值: 25
。
-merge
:切換。 應用一些實驗性聚類演算法來合併來自不同 Hi-C 庫的多個獨立聚類。 不推薦。
--load_cached_clusters
:切換。 如果設置,MetaPhase 將在<out_dir>/<scenario>.cached_data
中尋找包含先前計算的聚類結果的快取文件,而不是執行聚類。 如果 MetaPhase 之前已在此場景中運行過且具有與現在相同的-N
值且沒有標誌--dont_output_cache
則該檔案將存在。 如果您想分析聚類結果而不重新運行聚類,這是一種節省時間的方法。
--dont_output_cache
:切換。 不要建立(或覆蓋)稍後可以使用--load_cached_clusters
載入的叢集快取檔案。 此選項被--load_cached_clusters
覆寫。
--report_unclustered
:切換。 如果設置,MetaPhase 會產生有關未聚類的重疊群的最終報告:它們與哪些物種對齊,其中有多少因為完全不相關而未聚類,等等。
--output_cluster_fastas
:切換。 如果設置,則將檔案cluster.*.fasta
和unclustered.fasta
寫入<out_dir>/<scenario>/
中。 這些是 fasta 文件,指示 MetaPhase 如何對重疊群進行聚類。
--output_network_image
:切換。 如果設置,則執行腳本Fig2a.R
並建立叢集網路影像,如 MetaPhase 論文圖 2A 所示。
--output_heatmaps
:切換。 如果設置,則執行腳本MakeClusteringResultHeatmap.R
並建立熱圖影像,如 MetaPhase 論文的圖 2B 和圖 S5 所示。
--reorder_clusters_by_refs
:切換。 如果設置,則對簇重新排序,以便最大化使用--output_heatmaps
創建的熱圖對角線上的訊號。 請注意,這取決於refs.tsv
檔案中的參考基因組以及它們在文件中出現的順序。 如果你想擁有一致的簇號,就不要設定這個。
MetaPhase 最基本的輸出是到螢幕上。 MetaPhase 將在執行預處理、BLAST 比對、聚類和聚類後分析時提供詳細的進度報告。 假設它沒有崩潰,MetaPhase 會產生一個漂亮且方便的聚類結果圖表。 此圖表中的欄位是:
簇數
該簇中的重疊群數量
該簇中所有重疊群的總長度
豐度:對此簇的 DNA 豐度(而非物種豐度)的估計。 定義為與該簇中的重疊群對齊的鳥槍讀取的百分比。 需要獵槍豐富的 SAM/BAM 文件,目前需要破解。
多個參考:多個序列比對的參考基因組組裝(在refs.tsv
檔案中列出的組裝中)
%eukaryotic、%rDNA、%tRNA、%mtDNA:該簇中序列內容的預測註釋。 基於與 BLAST 資料庫的 BLAST 比對。
多重分類:此簇中序列內容最常見的分類位置。 基於 BLAST 與 BLAST 資料庫的比對。
如果您設定--report_unclustered
,MetaPhase 也會建立一個更小、更簡單的圖表來描述非聚類重疊群。
您可以創建漂亮的圖像,例如 MetaPhase 論文的圖 2A 和 2B 中的圖像。 若要建立網頁映像或熱圖,請分別設定--output_network_image
或--output_heatmap
。 這些檔案分別由腳本Fig2a.R
和MakeClusteringResultHeatmap.R
所建立。 這些是使用 ggplot2 的相當簡單的 R 腳本;如果您想調整影像的外觀,只需調整腳本即可。 預設情況下,這些檔案是在$HOME/public_html
中建立的;您可能需要建立此目錄才能顯示檔案。
MetaPhase 將在<out_dir>/<scenario>
中建立以下檔案:
assembly.blastn_report
:一個人類可讀的文件,方便地總結草稿組件與 nt 資料庫的 BLAST 對齊情況。
result.human_readable.txt
. human_read.txt :一個人類可讀的文件,列出了宏基因組組裝草案中的每個重疊群並指示其如何聚類。
cluster.*.fasta
和unclustered.fasta
:包含每個簇中的重疊群的 Fasta 檔案。 僅當您使用--output_cluster_fastas
運行時建立。
子目錄cached_data
:包含描述與參考基因組的BLAST比對的快取檔案(MapToRefs.txt*);與 nt 資料庫的 BLAST 比對( assembly._blast );和聚類結果(聚類)。 這些文件可能不是特別適合人類閱讀。
子目錄LACHESIS
:除非您在執行 MetaPhase 後執行 Lachesis(請參閱下一節),否則為空。
正如 MetaPhase 論文中所演示的,可以運行 MetaPhase 為每個物種創建單獨的簇,然後運行 LACHESIS 以創建該簇中重疊群的染色體規模支架,從而從無到有生成高質量的單物種組裝但宏基因組數據。 但是,有幾個注意事項:
這可能只適用於真核生物,因為 LACHESIS 的方法並不真正適用於原核生物基因組。
您必須知道物種的染色體編號,因為 LACHESIS 無法像 MetaPhase 預測物種編號那樣精確地預測染色體編號。
您必須將 Hi-C 讀數與您正在研究的簇中的重疊群重新對齊。
在酵母物種中,小心不要將所有含著絲粒的重疊群聚集成單一染色體。 您必須使用 LACHESIS 的CLUSTER_CONTIGS_WITH_CENS
選項。
應該有一個名為MetaPhase
的可執行檔。 在命令列中鍵入MetaPhase
。 如果您收到「找不到命令」之類的錯誤,則表示您不在正確的 MetaPhase 目錄中,或尚未成功完成編譯。 如果 MetaPhase 已準備好運行,則鍵入MetaPhase
將產生PARSE ERROR
,並且 MetaPhase 將向您描述它所需的命令列參數。
如果出現以下錯誤: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
那麼您需要將包含libboost_filesystem.so.1.47.0
的目錄新增至您的環境變數$LD_LIBRARY_PATH
。 鍵入下列指令: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
如果 MetaPhase 崩潰,您應該做的第一件事就是仔細查看其輸出。 它可能會詳細解釋出現的問題,並為您提供解決問題的好主意。 最常見的問題是輸入檔案之一無法找到或包含無意義的資料。
您還可能收到“斷言錯誤”,如下所示: Assertion ... failed.
這意味著在演算法的某個階段,MetaPhase 遇到了它沒有預料到的特定情況。 斷言錯誤將附帶對文件( *.cc
或*.h
)的引用以及發生錯誤的行號。 嘗試查看檔案中的該行,其中應包含函數assert()
。 該行周圍應該有一些註釋來解釋可能導致斷言錯誤的原因。
總的來說,我們付出了巨大的努力,讓 MetaPhase 成為一段設計良好且註釋良好的程式碼。 如果您熟悉 C++,您應該能夠瀏覽原始程式碼並了解發生了什麼。 我們建議從頂級模組MetaPhase.cc
開始,並從那裡開始工作。
讓 MetaPhase 正常運作後,請仔細查看輸出,尤其是報告圖表。 如果您得到奇怪的結果 - 例如,組裝的序列非常少,或者大部分序列聚集成一個簇(常見問題) - 您可能需要調整 MetaPhase 的性能。 仔細閱讀 D2 節「可選命令列參數」。
MetaPhase 軟體包及其包含的所有軟體和文件的版權 © 2013-2014,由 Josh Burton 和華盛頓大學所有。保留所有權利。
該軟體以「原樣」提供,不提供任何保證或支援保證。華盛頓大學對其使用、誤用或功能不承擔任何責任。在任何情況下,作者或版權所有者均不對因本軟體引起、由本軟體引起或與之相關的任何索賠、損害或其他責任承擔責任。
感謝 Ivan Liachko 讓 MetaPhase 專案成為可能,並產生了 MetaPhase 軟體使用的所有 Hi-C 資料。
感謝 Maitreya Dunham 和 Jay Shendure 的領導、管理和想法。
感謝 Kathryn Bushley、David Fredricks、Steve Salipante、Laura Sycuro 和 Andrew Wiser 耐心地幫助我測試 MetaPhase 並排除故障。
感謝 Aaron McKenna 幫助讓 MetaPhase 在 GitHub 上可用。
(來自 Andrew)您正在為用戶提供一個新的、有限的 BOOST 安裝,他們可能不希望透過添加到 LD_LIBRARY_PATH 來與系統的其餘部分進行互動。 我的建議是建議使用者如果可能的話將 include/boost_1_47_0/stage/lib 目錄新增至他們的 LD_LIBRARY_PATH 中,但也提供一個包裝腳本來在執行時間設定環境變數。 檢查使用者 LD_LIBRARY_PATH 中是否有正確的路徑,如果找不到則設定它,然後執行程式的 Python 程式非常容易快速編寫。