macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

NCBI taxdumpをlineageファイルに変換するスクリプト NCBItax2lin

2020 9/9,9/10 コード修正

 

タイトルの通り。

 

インストール

condaでpython3.7の仮想環境を作ってテストした(macos10.14)。

依存

  • ncbitax2lin requires python-3.7

Github

conda create -n ncbitax2lin -y python=3.7
conda activate ncbitax2lin
pip install -U ncbitax2lin

ncbitax2lin

NAME

    ncbitax2lin - Converts NCBI taxomony dump into lineages.

 

SYNOPSIS

    ncbitax2lin NODES_FILE NAMES_FILE <flags>

 

DESCRIPTION

    NCBI taxonomy dump can be downloaded from

    ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz

 

POSITIONAL ARGUMENTS

    NODES_FILE

        path/to/taxdump/nodes.dmp from NCBI taxonomy

    NAMES_FILE

        path/to/taxdump/names.dmp from NCBI taxonomy

 

FLAGS

    --output=OUTPUT

 

NOTES

    You can also use flags syntax for POSITIONAL ARGUMENTS

 

 

データベースの準備

NCBI taxonomyからtaxdumpファイルをダウンロードする。

ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/

f:id:kazumaxneo:20200908172616p:plain

wget -N ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz
mkdir -p taxdump && tar zxf taxdump.tar.gz -C ./taxdump

f:id:kazumaxneo:20200907202057p:plain


  

実行方法

ncbitax2lin taxdump/nodes.dmp taxdump/names.dmp

 元のファイル

> head names.dmp

f:id:kazumaxneo:20200908172000p:plain

f:id:kazumaxneo:20200908172000p:plain

> head nodes.dmp 

f:id:kazumaxneo:20200908172046p:plain

 

出力

f:id:kazumaxneo:20200907203149p:plain

先頭だけexcelで開いた。

f:id:kazumaxneo:20200908172458p:plain

 

補足

localでnucleotide collection(Nr/Nt)データベースに対してblastサーチを行い(実行例)、得られたNCBIGenbank accession numbersからlineageファイルに変換したい場合、まずNCBI FTPサーバにあるnucl_*accession2taxid.gzをルックアップテーブルとして使いaccession IDからtaxIDに変換する(ちなみにGI numberはすでに廃止されている) 。

nucl_*accession2taxid.gzをダウンロードする。

ftp://ftp.ncbi.nih.gov/pub/taxonomy/accession2taxid/

それから統合してデータベースにする。

#accession2taxidを結合、”sort -u”で重複を除きつつソート
cat nucl_gb.accession2taxid nucl_wgs.accession2taxid dead_nucl.accession2taxid dead_wgs.accession2taxid |sort -u > concatenated_accession2taxid 

#1列目とGI numberは不要(2列目はバージョンつき。".1"ならバージョン1)
cut -f 2,3 concatenated_accession2taxid > genbank_AC_db

#高速なripgrepでaccesion IDを検索(*1)(無いならbrew install ripgrep)、taxidを取り出す。"-m 1"で1ヒットのみ取り出す。
#例えばID AAAA02000036を結合したデータベースgenbank_AC_dbから探す
rg -m 1 AAAA02000036 genbank_AC_db |cut -f 2 > taxid_list

それから、NCBItax2linで作成したリストファイルを参照するか、taxonkitなどを使ってlineageファイルに変換する。taxonkit を使うなら

taxonkit lineage taxid_list > output_lineage

#ワンライナー
rg -m 1 <genbank_accesion_ID> genbank_AC_db |cut -f 2 | taxonkit lineage > output_lineage

#複数IDをループ処理.echoで1列目にクエリのID、2列目に見つかったIDを出力
cat genbank_accesion_ID_list | while read line
do
echo -n -e "$line\t" >> taxid_list ;rg -m 1 $line genbank_AC_db |cut -f 2 >> taxid_list
done
#最後にtaxid => lineage
taxonkit lineage taxid_list >> lineage_list

出力

lineage_list 

f:id:kazumaxneo:20200908174957p:plain

(taxid1つを処理)

引用

GitHub - zyxue/ncbitax2lin: 🐞 Convert NCBI taxonomy dump into lineages

Used in

Mahmoudabadi, G., & Phillips, R. (2018). A comprehensive and quantitative exploration of thousands of viral genomes. ELife, 7. https://doi.org/10.7554/eLife.31955 

 

参考

RefSeq と GenBank の違い

Question: Accession number to taxonomy id after blasting

https://www.biostars.org/p/222183/

 ripgrep

 

*1

index検索してないので低速だが、急ぎでないなら問題なし。macだとgrepがとんでもなく遅い場合があるのでlinux 推奨。

 

関連


 

Refseq accession IDからfull taxonomyに変換する PYlogeny

 

ETE3とBioPythonのEutilsを中心に構築されたアクセッション番号からtaxonomy IDとそれに関連する系統情報に変換することができるシンプルなツール。現在はRefseq accession IDに対応している。

 

インストール

Github

conda create -n PYlogeny python=3.6 -y
conda activate PYlogeny
pip install biopython ete3 six

#PYlogeny
git clone https://github.com/jrjhealey/PYlogeny.git
cd PYlogeny/

python PYlogeny.py -h

$ python PYlogeny.py -h

usage: PYlogeny.py [-h] [-i INFILE] [-o OUTFILE] [-d DATABASE] -e EMAIL

                   [--version] [-v] [-s SQL] [-u]

 

Create a taxonomic breakdown for a list of accession numbers.

 

optional arguments:

  -h, --help            show this help message and exit

  -i INFILE, --infile INFILE

                        A one-per-line file of accession numbers.

  -o OUTFILE, --outfile OUTFILE

                        Output tabular file (default STDOUT).

  -d DATABASE, --database DATABASE

                        What database to search for the accessions in (if you know it), 

                        the script will attempt to use their format to guess otherwise.

  -e EMAIL, --email EMAIL

                        Email to use with Eutils/Entrez.

  --version             show program's version number and exit

  -v, --verbose         Increase verbosity/logging. (-v or -vv)

  -s SQL, --sql SQL     Location to store the ETE3 database. Default is in ~/.etetoolkit/ .

                        If you specify a different location to the last instance, a 

                        new copy of the database will have to be downloaded regardless.

  -u, --update          Update the local copy of the TaxID database. 

                        (False by default, but should be done on a frequent basis).

 

Given an input list of accession numbers, create a table describing the taxonomic 

memberships of those accession numbers.

 

The first time you run this program, and any time -u|--update is used, the 

taxon dump will be made and an SQL database created. This takes several minutes.

 

 

データベースの準備

メールアドレスを指定する。NCBI taxdumpをfetchしてパースする(*1)。sqliteのデータベースが構築される。

python PYlogeny.py -u -e <your_mail_address>

NCBI taxdumpは更新が早いので、頻繁に最新のデータベースをダウンロードする必要がある。

 

テストラン

入力ファイル

> cat tests/10accs.txt

$ cat tests/10accs.txt 

WP_041379885.1

WP_058588699.1

WP_105398703.1

WP_112878141.1

WP_110086472.1

WP_036780220.1

WP_065389666.1

WP_036813449.1

WP_110091204.1

WP_113043119.1

実行。メールアドレスは毎回記載する必要がある。ダミーアカウントでもランは可能。

python PYlogeny.py -e <your_mail_address> -i tests/10accs.txt -o out.csv

出力をエクセルで開いた。

f:id:kazumaxneo:20200907131508p:plain

 

NCBIにはbatch entrezという機能もある。

https://www.ncbi.nlm.nih.gov/sites/batchentrez

関連

ローカルでblastを実行する。


ちなみにnew taxdumpというのもできている(NCBI insights)。

 

参考

Convert list of Accession Numbers to Full Taxonomy

 

RefSeq

RefSeq | 詳細な注釈づけられている冗長性のない核酸データベース

Webベースのデータ分析プラットフォーム NASQAR その3 (SHAMAN)

 

 

2回目の続きになります。今回はNASCARで利用可能なメタ16S分析ツールSHAMANを簡単に紹介していきます。

 

SHAMANのPreprintよリ

 定量的メタゲノム技術は、マイクロバイオームと環境や個人の要因(例えば、疾患、地理的起源など)との関連を特定するために広く展開されてきた。微生物群集の組成および/または豊富さの変化を分析することで、有望なバイオマーカーが得られており、特に肝硬変(1)、下痢(2)、大腸がん(3)と関連していたり、宿主に対する様々な病原性(4)またはプロバイオティクス(5)の効果と関連していたりする。

 Metataxonomic研究では、微生物群集の構成を手頃な技術で特徴付けることができるように、rRNAの1つまたは複数の領域を特異的に増幅するために、配列決定の前に選択が行われる(通常、原核生物/古細菌の場合は16Sまたは18SのrRNA、真核生物の場合はITS、23Sまたは28SのrRNA)。

 典型的なワークフローには、以下のようなステップが含まれる。(i) OTU (Operational Taxonomic Unit) ピッキング (dereplication, denoising, chimera filtering and clustering)(6)、(ii) 各サンプルの OTU 定量、(iii) 参照分類学データベースに対する OTU のアノテーションである。このプロセスは、関与するサンプル数とシークエンスの深さの両方に依存して、かなりの計算資源を必要とする場合がある。このような作業を行うために、Mothur(7)、Usearch(8)、DADA2(9)、Vsearch(10)のようないくつかの手法が現在利用可能である。人気の高い Qiime(11) は、pythonと統合された環境を提供することで、これらのタスク(i~iii)と可視化を簡素化する。図式的には、データ処理が終了すると、contingency table(wiki) とtaxonomic table の両方が得られる。これらの表には、それぞれ異なるサンプルにおけるOTUの豊富さとOTUの分類学的注釈が含まれている。データは通常、標準的なBIOMフォーマット(12)で表現されている。

 統計分析は、微生物量の有意な変動をスクリーニングするために実行される。この目的のために、Metastats(13) や Metagenomeseq(14) などのいくつかの R パッケージが開発された。もともとRNA-seq用に設計された他のアプローチ、すなわちDESeq2(15)やEdgeR(16)も、Metataxonomic研究を実施するために一般的に使用されていることに注目すべきである(17, 18)。これらは、OTUの豊富さに対する特定の因子の効果をテストするための統計的モデリングのためのR統合環境を提供します。それにもかかわらず、これらの異なる方法をすべて使用するには、Unix、Rの技術的なスキルとメタゲノミクスデータの処理経験が必要です。この目的のために、特にこの分野で一般的に適用されているバイオインフォマティクスや統計的手法の技術的な知識がないユーザーのため、 そしてMetataxonomicデータの解析を簡単にする方法を提供するためにSHAMANを開発した。

 SHAMANは、生のシーケンシングデータに基づいてOTUの組成と豊富さを推定し、処理されたファイルの統計解析を実行するための包括的なアプローチである。まず、ユーザーは生データをFASTQ形式でサブミットし、バイオインフォマティックワークフローのパラメータを定義することができる。出力は、アノテーションに参照として使用した各データベースのBIOMファイル、Newick形式の系統樹、および同定された全てのOTUのFASTA形式配列で、これらがユーザーに返却される。第二のステップは、統計解析の実行で構成されている。ユーザーは、各サンプルを1つまたは複数の説明変数に関連付ける "ターゲット "ファイルを提供しなければならない。これらの変数は、ターゲットファイルで自動的に検出される。低頻度の特徴を除去するために、OTUの分割行列の自動フィルタリングを有効にすることができる。比較されるコントラストの設定も大幅に簡素化された。これは、関心のあるグループを定義する際にユーザーの選択を方向付けるフォームに記入することで構成されている。プロセスの3つの重要なステップでは、データを可視化するためのいくつかのオプションが利用可能である:品質管理、生物学的分析、コントラスト比較。各ステップでは、データを探索するために、多くの一般的なビジュアルディスプレイがSHAMANに実装されている。また、分類木や変数に応じたカウント分布を可視化するアバンダンスツリーや、2つのコントラストにおける特徴のp値を比較するロジットプロットなど、他のアプリケーションでは利用できないオリジナルの表示も数多く用意されている。図は、特定の統計的結果を強調するために(例えば、与えられたコントラストで有意な特徴を表示する、コントラスト間の交差を実行する)、より特異的にするために(例えば、与えられたモダリティでの特徴の豊富さ)、またはグラフの美学を向上させるために(視覚的なパラメータを変更することによって)調整することができる。図はpublication基準に適合しており、対応するファイルは簡単にダウンロードすることができる。

 Metataxonomic研究のデータを解析するためにいくつかのウェブアプリケーションが開発されており、特にバイオインフォマティクスデータ処理のためのFROGS(19)やQiita(20)、統計解析のためのShiny-phyloseq(21)、データの可視化に特化したMetaviz(22)やVAMPS2(23)などがある。これらのインターフェースは関連する機能を提案しているが、SHAMANの主な特徴は、これらすべてのステップを単一のユーザーフレンドリーなアプリケーションに統合することである。最後に、SHAMANは再現性の問題で特に関心のある完全な分析を登録することができる。

 

 

f:id:kazumaxneo:20200906163258p:plain

SHAMANの解析フロー。チュートリアルより。

 

webサービス

ShamanはNASCARのアプリケーションとして利用できる。Shamanを選択する。

f:id:kazumaxneo:20200906141643p:plain

オーサーらのwebサーバを利用する場合、http://nasqar.abudhabi.nyu.edu にアクセスする。dockerについては1回目の解説を参照。 

 

 

HOMEの下にチュートリアルがある。チュートリアルは解析ステップごとにタブ区切りになっている。

f:id:kazumaxneo:20200906161722p:plain

 

fastqからスタートするRaw dataモードと、OTU pickingのカウントデータからスタートするモード(Upload your data)がある。ここではfastqから実行する。Raw dataを選択。

f:id:kazumaxneo:20200906162431p:plain

 

メタアンプリコンの種類を選択する。ここでは16Sのペアエンドを選択。primer選択無し。

f:id:kazumaxneo:20200906162315p:plain

 

 ホスト配列がある場合は選択する(除去される)。

f:id:kazumaxneo:20200315192859p:plain

 例えばヒトやphixなど。

 

More workflow optionsにチェックを付けると

f:id:kazumaxneo:20200906162636p:plain

 

詳細なパラメータを指定できる。

f:id:kazumaxneo:20200315192914p:plain

 

fastqをアップロードする。

f:id:kazumaxneo:20200906162743p:plain

 

fadtqのペアを認識させるため、ファイル名のsuffix部分を指定する。ここでは ファイル名を見て_R1と_R2と記載してMatchをクリック。 

f:id:kazumaxneo:20200906162848p:plain
間違ってなければペアエンドのR1とR2が左右のウィンドウ内に振り分けられる。


 

check & submitをクリック。以下のウィンドウが表示されればサブミットに成功している。

f:id:kazumaxneo:20200906162923p:plain

 

右上にプログレスが表示される。小さなデータでも場合がかかる場合がある。

f:id:kazumaxneo:20200906163804p:plain



発行されるRun keyで検索することで進捗度合いを確認できるようになっている。

f:id:kazumaxneo:20200906163653p:plain

テスト時は1%から進行しなかった。

 

fastqからランするといつまでたってもジョブが終わらなかった(最新のdocker image使用)。ここではexampleのOTUカウントデータを使う。これはZymoモックコミュニティというmock communityのメタ16Sで、系統的に離れた8つの細菌株(3つがグラム陰性、5つがグラム陽性)のシークエンシングデータである。ゲノムDNAを等モルの割合で混合し、増幅サイクル数(25サイクルおよび30サイクル)とフローセルに装填したDNA量(0.5ngおよび1ng)で変化をつけている。

Upload your dataからexampleを選択。

f:id:kazumaxneo:20200906173141p:plain

 

読み込まれた。1ng.25cycle、1ng.30cycle、0.5ng.25cycle、0.5ng.30cycleの4条件となっている。Replicatesはそれぞれ3つずつある。

f:id:kazumaxneo:20200906173016p:plain

Download .zip fileから結果は入手できる。出力されるのは、アノテーションのための参照として使用された各データベースのBIOMファイル、Newick形式の系統樹、および同定されたすべてのOTUのFASTA形式の配列となる。

 

さらに統計解析が実行できるようになっている。

Run statistical analysis

利用するには、各サンプルについて1つまたは複数の説明変数に関連付ける "ターゲット "ファイルをサブミットする必要がある。これらの説明変数は、ターゲットファイルから自動的に検出される。

f:id:kazumaxneo:20200906200819p:plain

ターゲットファイルから抽出された説明変数と交互作用(interactions、複数の変数による複合効果)を指定後、taxonommic rankを指定、ランする。ランすると正規化された値が取り出される。

複雑な実験でどの交互作用が主要因か調べる場合は、交互作用の組み合わせを変えてランを繰り返すことになる(数秒で変換結果は返ってくる)。

optionを展開すれば統計モデルを変更可能。

f:id:kazumaxneo:20200906202428p:plain

 

対比(Contrasts)に関する項目もある。

f:id:kazumaxneo:20200906200609p:plain

 

次のDiagnotic plotsでは、正規化された結果について、ユーザーが指定した説明変数をプロットに紐づけて、実験内で変動の主要な要因となった因子を視覚化して調べたりできるようになっている。

f:id:kazumaxneo:20200906202922p:plain

 

様々な形式のプロットに対応している。

f:id:kazumaxneo:20200906203324p:plain

 

PCA

関心のある説明変数としてDNA量とサイクル数を指定。色は変数と対応している。

f:id:kazumaxneo:20200906203537p:plain

 

Visualiozatiion (ここではspecies rank)

Bar plot

f:id:kazumaxneo:20200906203736p:plain

Heatmap

f:id:kazumaxneo:20200906204327p:plain

Box plot

f:id:kazumaxneo:20200906203846p:plain

Tree

f:id:kazumaxneo:20200906203907p:plain

Network

f:id:kazumaxneo:20200906203946p:plain

Diversity (alpha、simpson、Invsimpson)

f:id:kazumaxneo:20200906204130p:plain

Rarefraction

f:id:kazumaxneo:20200906204218p:plain

 

一部の視覚化機能は動作しなかった。

引用

SHAMAN: a user-friendly website for metataxonomic analysis from raw reads to statistical analysis

Stevenn Volant , Pierre Lechat , Perrine Woringer, Laurence Motreff, Pascal Campagne, Christophe Malabat , Sean Kennedy, Amine Ghozlane

BMC Bioinformatics. 2020 Aug 10;21(1):345

 

SHAMAN: bin-free randomization, normalization and screening of Hi-C matrices

Netta Mendelson Cohen, Pedro Olivares-Chauvet, Yaniv Lubling, Yael Baran, Aviezer Lifshitz, Michael Hoichman, Amos Tanay

bioRxiv, Posted September 12, 2017

 

Webベースのデータ分析プラットフォーム NASQAR その2

2020 9/6 誤解を招く説明を修正 

 

1回目の続きになります。今回はEnrichment のツールを簡単に紹介していきます。

 

Enrichment

2つのアプリケーションが利用できる。

f:id:kazumaxneo:20200905215733p:plain

 

解析フローはこの手順を踏襲したものになっている。こちらを読めばどんなコマンドを実行しているのかは理解できる。

https://learn.gencore.bio.nyu.edu/rna-seq-analysis/over-representation-analysis/



1、clusterProfiler(GSEA)

Gene Set Enrichment Analysisのためのアプリケーションになる。

f:id:kazumaxneo:20200905212045p:plain

 

exampleデータ。DEseq2の出力そのままになっている。Deseq2Shinyの解析で得られた結果をフィルタリング等せずそのままアップロードすればよい。

f:id:kazumaxneo:20200905212048p:plain

 

log2FCのカラムを使うので、アップロードしたテーブルのどの列がlog2FCなのかを指定する。

f:id:kazumaxneo:20200905212206p:plain

左は遺伝子名の列を指定する。

 

次に生物名とGene IDのタイプなどを指定する。ExampleデータはFly。keytypeはENSEMBL

f:id:kazumaxneo:20200905214632p:plain

 

カテゴリとP-value、pAdjustMethod:も注意する。デフォルトではpAdjustMethod:は無しになっている。

f:id:kazumaxneo:20200905220215p:plain

Create gseGO objectで解析をスタートする。

 

結果

f:id:kazumaxneo:20200905212312p:plain

 

左のメニューから分析項目を選択する。

GO PLots

f:id:kazumaxneo:20200905212504p:plain

f:id:kazumaxneo:20200905212507p:plain

f:id:kazumaxneo:20200905212510p:plain

表示数のみ変更可能。10 => 20

f:id:kazumaxneo:20200905212512p:plain

 

KEGG Plots

f:id:kazumaxneo:20200905212732p:plain

f:id:kazumaxneo:20200905212735p:plain

f:id:kazumaxneo:20200905212737p:plain

 

Pathview Plot

f:id:kazumaxneo:20200905212917p:plain

表示するパスウェイを選択する。

f:id:kazumaxneo:20200905213258p:plain

ボタンを押すとそのパスウェイが描画される。緑が抑制、赤が誘導。

f:id:kazumaxneo:20200905213014p:plain

 

解析に直接は関係ないが、PubmedのGO termトレンドをみる機能もある。

2010 から2020のまでGO term; cell matrix adhensionのPubmed articlesの頻度。

f:id:kazumaxneo:20200905214125p:plain

 


2、clusterProfiler(ORA)

Over-Representation Analysisを行う。

1と同じようにDEseq2の解析で得られた結果をアップロードする。

下はexampleデータを選択したところ。DEseq2の出力そのままだが、padjでフィルタリングする項目がある。ここはpadjのカラムがどの列番号なのかを指定する。

f:id:kazumaxneo:20200905221744p:plain

 

出力

f:id:kazumaxneo:20200905221850p:plain

 

GO plot

f:id:kazumaxneo:20200905221943p:plain

f:id:kazumaxneo:20200905221952p:plain

f:id:kazumaxneo:20200905221954p:plain

 

KEGG plot

f:id:kazumaxneo:20200905222046p:plain

f:id:kazumaxneo:20200905222049p:plain

 

Pathview Plot

f:id:kazumaxneo:20200905222134p:plain

 

引用
NASQAR: a web-based platform for high-throughput sequencing data analysis and visualization

Ayman Yousif, Nizar Drou, Jillian Rowe, Mohammed Khalfan , Kristin C Gunsalus

BMC Bioinformatics. 2020 Jun 29;21(1):267

 

NASQAR: A web-based platform for High-throughput sequencing data analysis and visualization

Ayman Yousif, Nizar Drou, Jillian Rowe, Mohammed Khalfan, Kristin C. Gunsalus

bioRxiv 709980

 

参考

bioinformatics - パスウェイ解析

https://bi.biopapyrus.jp/pathway/

 

Webベースのデータ分析プラットフォーム NASQAR

2020 9/6 追記

 

 次世代シーケンシング(NGS)テクノロジーの急速な進歩により、ゲノムデータは近年大幅に成長している[ref.1、2]。一般的なアプリケーションには、de novoゲノムシーケンス;ゲノム変異、転写因子結合部位、クロマチン修飾、クロマチンアクセシビリティ、および3Dクロマチン立体構造のマッピング。これらのシングルセルバージョン(例[ref.3])および新しいメソッド—空間トランスクリプトミクス(例[ref.4])、CRISPRベースの画面(例[ref.5])、マルチモーダルプロファイリング(タンパク質の同時定量化など)そして、mRNA、例えば[ref.6])、トランスクリプトームプロファイリングが含まれる。 新しい技術革新が現場に来ると急速に利益を上げている(例[ref.7、8])。データ量とアプリケーションの多様性が増大し続けるにつれて、これらのデータセットの分析と視覚化のためのソフトウェアライブラリとツールの数も増大する。ゲノムデータ分析に利用できるツールの多くは、計算経験が必要であり、グラフィカルユーザーインターフェイスGUI)を欠いているため、仕事に依存している多くの研究者がアクセスできない。一般的な課題には次のものがある。

  • さまざまなプログラミング/スクリプト言語(R、Python、シェルなど)の知識と経験
  • データ変更:特定のツールで使用するための前処理と再フォーマット
  • 限られた計算リソース(CPU、メモリ、ディスクストレージ)
  • ソフトウェアパッケージと依存関係のインストール。多くの必要なタスクがある。
  • ソフトウェアまたはハードウェアの要件を満たし、ソフトウェアの依存関係を解決するなどの問題は、時間がかかり退屈である。ある研究[ref.9]では、ランダムに調査された公開済みのオミックスソフトウェアツールのほぼ半分(49%)が「インストールが困難」であることがわかった(*1)。さらに、オペレーティングシステムの更新とハードウェア構成の急速な混乱は、ツールの影響、使いやすさ、および寿命の段階的な低下の一因となる。
  • アカデミアの研究者によって開発されたソフトウェアツールは、開発リソースの不足、またはクロスプラットフォームの互換性やユーザーインターフェイス設計などのソフトウェアエンジニアリングのベストプラクティスの専門知識の不足により、通常「ユーザーフレンドリー」ではない[ref.9]。例として、利用可能なR GUIベースのツールの多くは、非常に便利で多様な機能を備えているが、単純なエラー処理や有益なフィードバックを欠いている。これにより、ユーザーがこのようなエラーの原因を簡単に特定して解決できない場合、アプリケーションを管理不能にする可能性がある。

 NASQAR(Nucleic Acid SeQuence Analysis Resource)は、一般的な高レベルの分析および視覚化ツールを直感的で魅力的なインターフェースでラップするWebベースのプラットフォームである。このプラットフォームは、以下を提供することにより上記の課題に対処する。

  • ソフトウェアとインターフェイス設計のベストプラクティスを活用して、一般的に使用される分析パッケージに基づいた使いやすく直感的なツールを作成する。これは、標準のバイオインフォマティクス分析および可視化ワークフローへの参入障壁を低くし、プログラミング経験がほとんどまたはまったくない研究者に大きな独立性を提供するために重要である。プラットフォームは、QC、探索的分析、またはpublicationの準備の整ったデータファイル(正規化されたカウントデータなど)および図(PCAプロット、ヒートマップ、樹形図、UMAP / t-SNEなど)の作成に使用できる。
  • パーソナルコンピューター、組織のプライベート/パブリックWebサーバー、またはクラウドAWSMicrosoft Azure、Googleクラウドなど)に比較的簡単に展開できるスケーラブルな仮想化アーキテクチャである。仮想化により、ソフトウェアとオペレーティングシステムの依存関係を抽象化できるため、エンドユーザーのインストールの難しさが軽減される。スケーラブルな設計は、公共施設または研究施設内での内部使用のために、複数の同時ユーザーにプラットフォームをオンラインで展開する場合に有利である。
  • オープンソースパッケージを使用する。これは、学術研究機関にとって特に望ましいものである。
  • 分析カテゴリのモジュール設計。データ前処理、RNA-seq分析、および遺伝子エンリッチメントアプリケーションを相互に分離することにより、ユーザーはこれらの機能を独立して活用できるため、完全に統合されたワークフローよりも分析ステップの汎用性が高まる。

(一部省略)

NASQARは仮想マシンクラスター上に展開されており、http://nasqar.abudhabi.nyu.edu/で公開されている。 Docker [ref.17]とSwarmはコンテナ化とクラスタ管理を提供し、Traefikリバースプロキシ/ロードバランサーhttps://traefik.io/)はリクエストを管理し、スティッキーユーザーセッションを維持する。これは同時ユーザーのShinyアプリケーションのホスティングに不可欠である 。スケーラブルな設計により、Docker Swarmクラスターにノードを追加するだけで専用リソースを比較的簡単に増やすことができ、新しいアプリケーションの展開やユーザーベースの拡大に伴う計算需要の増加に柔軟に対応できる。
 NASQARのDockerイメージはDockerHubで公開されており、ローカルコンピューター、公共またはプライベートのインターネットサーバー(研究機関のイントラネットなど)を問わず、あらゆるシステムにシームレスにアプリケーションを展開できる。NASQARで分析するためにオンラインでアップロードされたデータは、ユーザーのセッションが終了するとデフォルトで破棄されるが、これは完全なデータプライバシーを保証するものではない。プライバシーが懸念される場合(患者データなど)、NASQARは制限付きイントラネットまたはパーソナルコンピューターのいずれかに展開できる。さらに、Dockerを使用すると、1回限りのインストールでNASQARツールボックス全体を展開できるため、多数の個々のアプリケーションのさまざまなソフトウェア要件を手動で満たす必要がなくなる。ソースコードGitHubで公開されており、積極的に保守されている。各アプリケーションは、独自のGitHubリポジトリでホストされ、RまたはR Studioを介して個別にアクセスおよび起動できる。すべてのアプリケーションには、ユーザーがすぐに使い始めて順応できるように、明確なユーザーガイドとデータセットが用意されている。これは、使いやすさを改善し、ツールを採用する際の主要な要因である。

 

 

 

 

インストール

dockerイメージをpullし、ローカルマシンやサーバーにホスティグして使うことがで、サーバーの混雑度に左右されずに解析が可能になっている。

GIthub

Dockerhub

#pull all application images
docker pull aymanm/nasqarall:latest
docker run -p 80:80 aymanm/nasqarall:latest

ラウンチ後、http://localhost:80/にアクセスする。

 

 

webサービス

オーサーらがwebサーバを準備しているので、こちらにアクセスして利用することもできる。ただあまり性能は高くないのかよく接続が切れてしまう。ローカル環境でwebサーバを立ち上げて使う方が良さそうに感じた。

 

オーサーらのwebサーバを利用する場合、http://nasqar.abudhabi.nyu.edu にアクセスする。

f:id:kazumaxneo:20200315182436p:plain

 

それからCategoriesに移動する。 現在、RNA seq関係のツールに加え、シングルセル、メタゲノム、そして最近追加されたCovid-19のツールが並ぶ。

f:id:kazumaxneo:20200412122347p:plain

f:id:kazumaxneo:20200412122355p:plain

 

RNA seq

リードカウント以後の下流解析のためのアプリケーションが提供されている。画面のウィンドウ部分にマウスカーソルをホバーするとLanuchの文字が表示される。まずはPre-Processingをクリック。Pre-Processingアプリケーションを立ち上げてみる。

1、Pre-Processing

f:id:kazumaxneo:20200412120531p:plain

 

Pre-Processingは個々の遺伝子カウントファイルをマージするためのシンプルな前処理ツールとなっている。例えばhtseq(紹介)からの出力カウントファイルを入力する。

f:id:kazumaxneo:20200412122621p:plain

 CSVファイルをアップロードする。

f:id:kazumaxneo:20200412150925p:plain

 読み込まれた。

f:id:kazumaxneo:20200412150932p:plain

 

RNA seqの他のアプリケーションには、DESeq2のラッパーとして働き、対話式のGUIを提供するDESeq2 Shinyがある。

2、DESeq2 Shiny

f:id:kazumaxneo:20200828221652p:plain

 

カウントファイルをアップロードする。 1因子の実験か多因子の実験r両方に対応している。多因子のexample dataを選択。

f:id:kazumaxneo:20200905173648p:plain

 

多因子の場合、因子とデータセットの関係を記載する。

f:id:kazumaxneo:20200905175043p:plain

 

まず因子をコンマ区切りで指定してAddボタンを押し、表に因子のカラムを追加する。

f:id:kazumaxneo:20200905175553p:plain

 

表を埋めていく。example dataではすでに記載済みになっているが、クリックして修正も可能。

f:id:kazumaxneo:20200905175244p:plain

ローカルに対応表がある場合、デザインファイルとしてアップすることもできるようになっている。

 

右のInitialize DESeq2 Datasetボタンを押してイニシャライズ。

f:id:kazumaxneo:20200905175949p:plain

 

rlog transformも行うかどうか指定して、DEseq2の解析を実行する。

f:id:kazumaxneo:20200906125057p:plain

rlogはカウント数の少ない行のサンプル間の差を最小化し,ライブラリサイズに対して正規化する。カウントデータをlog2スケールに変換する。 

 

左のメニューをクリックして先に進む。rlogにチェックをつけている場合、VSTの上にRlogも表示される。

f:id:kazumaxneo:20200905180220p:plain

 

VST

この関数は、フィットした分散-平均関係から分散安定化変換(VST)を計算し、カウントデータを変換する。具体的にはサイズ係数または正規化係数で除算して正規化。この変換ではライブラリサイズに関しても正規化される。

f:id:kazumaxneo:20200412151015p:plain

外れ値をチェックする場合に有効。

 

因子のほか、サイズファクターでもクラスタリング可能。

f:id:kazumaxneo:20200905180449p:plain

 

Differential Expression Analysis

f:id:kazumaxneo:20200905202812p:plain

 

Gene Expression Boxplot 

f:id:kazumaxneo:20200905202959p:plain

 

発現変動遺伝子のリストは Differential Expression Analysisから取り出せる。

Genotype_WT_vs_KO、p-value threshould 0.01

f:id:kazumaxneo:20200905203922p:plain

 右下のDownload csvボタンを押すと全遺伝子の結果がダウンロードされる。

 

ダウンロードしたリストをexcelで開いたところ。padjはadjusted p-value参考)。発現変動遺伝子を取り出したければp-valueとpadjについてフィルタリングすればよい。

f:id:kazumaxneo:20200905204609p:plain

 

その2

 

引用
NASQAR: a web-based platform for high-throughput sequencing data analysis and visualization

Ayman Yousif, Nizar Drou, Jillian Rowe, Mohammed Khalfan , Kristin C Gunsalus

BMC Bioinformatics. 2020 Jun 29;21(1):267

 

NASQAR: A web-based platform for High-throughput sequencing data analysis and visualization

Ayman Yousif, Nizar Drou, Jillian Rowe, Mohammed Khalfan, Kristin C. Gunsalus

bioRxiv 709980

 

 

 

 

 

 

 

微生物ゲノムの包括的なアノテーションを行う MicrobeAnnotator

2020 9/5 修正

2020 9/7 誤字修正、出力追記、

2023/07/04 論文引用

 

 ハイスループットシーケンシングにより、利用可能な単離株、シングルセル、メタゲノムからの微生物ゲノムの数が増加している。これらのゲノムを解析・比較するためには、高速で包括的なアノテーションパイプラインが必要である。ゲノムアノテーションのためのアプローチはいくつか存在するが、これらのアプローチは通常、解析パイプラインへの組み込みを容易にするように設計されておらず、複数のアノテーションデータベースからの結果を組み合わせることができず、また、ハイスループットモードで代謝再構成の使いやすいサマリーを提供していないのが現状である。ここでは、微生物ゲノムの包括的なアノテーションを行うための完全自動化パイプラインであるMicrobeAnnotatorを紹介する。MicrobeAnnotatorはPythonで実装されており、オープンソースのArtistic Licence 2.0のもと、https://github.com/cruizperez/MicrobeAnnotator から自由に利用できる。

 

 

インストール

オーサーの指示通り、condaの仮想環境を作ってテストした(OSはubuntu18.04 LTS)。

依存

Programs:

  • Aspera Connect
  • KofamScan
  • HMMER >= 3.1
  • Ruby >= 2.5
  • GNU Parallel
  • One of:
  • Blast >= 2.2
  • Diamond >= 0.9
  • Sword >= 1.0.4

Python Modules:

  • matplotlib
  • seaborn >= 0.10.1
  • pandas
  • argparse
  • pathlib
  • shutil
  • subprocess
  • gzip
  • biopython
  • sqlite3
  • urllib
  • pywget

Github

#依存の導入
mamba create -n microbeannotator -c conda-forge -c bioconda python=3.7 blast hmmer ruby=2.5.1 parallel diamond sword seaborn biopython pywget -y
mamba activate microbeannotator

#kofamscanも導入するなら
mamba install -c bioconda -y kofamscan

Aspera ConnectとKofamScanも必要。

Aspera Connect

#/home/<user>/.aspera/connect/binに導入される
wget https://download.asperasoft.com/download/sw/connect/3.9.8/ibm-aspera-connect-3.9.8.176272-linux-g2.12-64.tar.gz
tar xvfz ibm-aspera-connect-3.9.8.176272-linux-g2.12-64.tar.gz
bash ibm-aspera-connect-3.9.8.176272-linux-g2.12-64.sh
#さらに必要ならパスも通す。例えば/home/kazu/.aspera/connect/binを.bashrcに書き込むなら
#echo 'export PATH=$PATH:/home/kazu/.aspera/connect/bin' >> ~/.bashrc && source ~/.bashrc

 KofamScan(6GB)

mkdir kofamscan 
cd kofamscan
wget ftp://ftp.genome.jp/pub/db/kofam/ko_list.gz
wget ftp://ftp.genome.jp/pub/db/kofam/profiles.tar.gz
wget ftp://ftp.genome.jp/pub/tools/kofam_scan/kofam_scan-1.3.0.tar.gz

#Decompress and untar:
gunzip ko_list.gz
tar xvfz profiles.tar.gz
tar xvfz kofamscan-1.3.0.tar.gz
cd kofamscan-1.3.0
cp config-template.yml config.yml
export PATH=$PWD:$PATH

configファイルconfig.ymlの# profile: /path/to/your/profile/db のパス部分を自分のデータベースパスに修正する。 => /home/<user>/kofamscan/profiles/prokaryote 

さらにko_list: /path/to/your/kolist/file のパス部分を自分のデータベースパスに修正する。 =>ko_list: /home/<user>/kofamscan/ko_list

自分は/home/kazu/Document/に入れたので以下のように修正した。初期はコメントアウトされているので外す。

f:id:kazumaxneo:20200905162529p:plain

上の画像ではhmmsearchとparallelのパスも指定しているが、パスが通っているなら設定不要。

kofamscanをテストする。コマンドはexec_annotationなので

./exec_annotation -h

Usage: exec_annotation [options] <query>

  <query>                    FASTA formatted query sequence file

  -o <file>                  File to output the result  [stdout]

  -p, --profile <path>       Profile HMM database

  -k, --ko-list <file>       KO information file

  --cpu <num>                Number of CPU to use  [1]

  -c, --config <file>        Config file

  --tmp-dir <dir>            Temporary directory  [./tmp]

  -E, --e-value <e_value>    Largest E-value required of the hits

  -T, --threshold-scale <scale>

                             The score thresholds will be multiplied by this value

  -f, --format <format>      Format of the output [detail]

      detail:          Detail for each hits (including hits below threshold)

      detail-tsv:      Tab separeted values for detail format

      mapper:          KEGG Mapper compatible format

      mapper-one-line: Similar to mapper, but all hit KOs are listed in one line

  --[no-]report-unannotated  Sequence name will be shown even if no KOs are assigned

                             Default is true when format=mapper or mapper-all,

                             false when format=detail

  --create-alignment         Create domain annotation files for each sequence

                             They will be located in the tmp directory

                             Incompatible with -r

  -r, --reannotate           Skip hmmsearch

                             Incompatible with --create-alignment

  --keep-tabular             Neither create tabular.txt nor delete K number files

                             By default, all K number files will be combined into

                             a tabular.txt and delete them

  --keep-output              Neither create output.txt nor delete K number files

                             By default, all K number files will be combined into

                             a output.txt and delete them

                             Must be with --create-alignment

  -h, --help                 Show this message and exit

実際にランしてみる。kofamscan-1.3.0/ でkofanscanを実行。profileは/prokaryote.halを指定する。

./exec_annotation -o output --cpu 20 -p ../profiles/prokaryote.hal -k ../ko_list your_genome.fa

config.ymlが設定されているならプロファイル指定は不要。全CPU使用してラン。
exec_annotation -o output your_genome.fa

 

準備ができた。最後に本体を取ってくる。

git clone https://github.com/cruizperez/MicrobeAnnotator.git
cd MicrobeAnnotator/

> ./MicrobeAnnotator_DB_Builder -h

$ ./MicrobeAnnotator_DB_Builder -h

usage: MicrobeAnnotator_DB_Builder [-h] -d DIRECTORY -m METHOD [-t THREADS]

                                   [--bin_path BIN_PATH] [--step STEP]

                                   [--light]

 

This script build the search databases required by MicrobeAnnotator

Usage: ./MicrobeAnnotator_DB_Builder -f [output_file folder]

Global mandatory parameters: -f [output_file folder]

Optional Database Parameters: See ./MicrobeAnnotator_DB_Builder -h

 

optional arguments:

  -h, --help            show this help message and exit

  -d DIRECTORY, --dir DIRECTORY

                        Directory where database will be created.

  -m METHOD, --method METHOD

                        Search (and db creation) method, one of blast, diamond or sword

  -t THREADS, --threads THREADS

                        Threads to use (when possible). By default 1.

  --bin_path BIN_PATH   Path to binary folder for selected method. By defaul assumes the program is in path.

  --step STEP           Step to start with. 1.Download data, 2.Parse annotation data, 3.Building SQLite DB, 4.Build protein DBs. Default 1.

  --light               Use only KOfamscan and swissprot databases. By default also builds refseq and trembl.

./MicrobeAnnotator -h

$ ./MicrobeAnnotator -h

usage: MicrobeAnnotator [-h] [-i INPUT_LIST [INPUT_LIST ...]] [-l FILE_LIST]

                        -o OUTPUT_DIR -d DATABASE_FOLDER -m METHOD

                        [--kofam_bin KOFAM_BIN] [--method_bin METHOD_BIN]

                        [--id_perc ID_PERC] [--bitscore BITSCORE]

                        [--evalue EVALUE] [--aln_percent ALN_PERCENT]

                        [--cluster CLUSTER] [--filename PLOT_FILENAME]

                        [-t THREADS] [-p PROCESSES] [--light] [--full]

 

MicrobeAnnotator parses protein fasta files and annotates them

using several databases in an iterative fashion and summarizes the findings

using KEGG modules based on KO numbers associated with best database matches.

Usage: ./MicrobeAnnotator -i [protein file] -o [output folder] -d [MicrobeAnnotator db folder]

-m [search method]

Global mandatory parameters: -i [protein file] -o [output folder] -d [MicrobeAnnotator db folder]

-m [search method]

Optional Database Parameters: See ./MicrobeAnnotator -h

 

optional arguments:

  -h, --help            show this help message and exit

 

Mandatory i/o options.:

  -i INPUT_LIST [INPUT_LIST ...], --input INPUT_LIST [INPUT_LIST ...]

                        Space-separated list of protein files to parse. Use -i OR -l.

  -l FILE_LIST, --list FILE_LIST

                        File with list of inputs. Use -i OR -l.

  -o OUTPUT_DIR, --outdir OUTPUT_DIR

                        Directory to store results.

  -d DATABASE_FOLDER, --database DATABASE_FOLDER

                        Directory where MicrobeAnnotator databases are located.

 

Options for search process.:

  -m METHOD, --method METHOD

                        Method used to create databases and to perform seaches. One of "blast", "diamond" or "sword".

  --kofam_bin KOFAM_BIN

                        Directory where KOFamscan binaries are located. By default assumes it is in PATH.

  --method_bin METHOD_BIN

                        Directory where KOFamscan binaries are located. By default assumes it is in PATH.

  --id_perc ID_PERC     Minimum identity percentage to retain a hit. By default 40.

  --bitscore BITSCORE   Minimum bitscore to retain a hit. By default 80.

  --evalue EVALUE       Maximum evalue to retain a hit. By default 0.01.

  --aln_percent ALN_PERCENT

                        Minimum percentage of query covered by hit alignment. By default 70.

 

Summary abnd plotting options.:

  --cluster CLUSTER     

                        Cluster genomes and/or modules. Select "cols" for genomes, "rows" for modules, or "both".

                        By default, no clustering

  --filename PLOT_FILENAME

                        Prefix for output summary tables and plots. By default "metabolic_summary"

 

Miscellaneous options.:

  -t THREADS, --threads THREADS

                        Threads to use per processed file, i.e. (per protein file). By default 1.

  -p PROCESSES, --processes PROCESSES

                        

                        Number of processes to launch, i.e. number of protein files to process simultaneously.

                        Note this is different from threads. For more information see the README. By default 1.

  --light               

                        Use only KOfamscan and swissprot databases. By default also uses refseq and

                        trembl (only use if you built both using "MicrobeAnnotator_DB_Builder").

  --full                

                        Do not perform the iterative annotation but search all proteins against all databases

                        (Increases computation time).

 

 

データベースの準備

databaseをビルドする。フルバージョン(230GBほどスペースが必要)と軽量版がある。軽量版は依存するデータベースが少なくなっている(--lightを立てて実行する)。blast、diamond、swordに対応しているが、ここではdiamondデータベースを作る。ここでは40スレッド使用。

MicrobeAnnotator_DB_Builder -d MicrobeAnnotator_DB -m diamond -t 40 --light

f:id:kazumaxneo:20200905140948p:plain

ライトバージョンのデータベース準備完了。フルバージョンも何度か試したが、データベースダウンロード途中で接続が切れた。

 

 実行方法

ゲノムとデータベースを指定する。複数ゲノムある場合はスペースで区切って指定するかワイルドカード指定する。

MicrobeAnnotator -i genome1.fa genome2.fa genome3.fa -d MicrobeAnnotator -o output_dir -m diamond -p 3 -t 10
  • -p    refers to the number of protein files to be processed simultaneously, e.g -p 3 will process three protein files at the same time.
  • -t     refers to the number of processors to use per protein file. For example -t 5 will use five processors per each protein file.
  • -m [blastdiamondsword]    the search method you intend to use.

 

hmmsearchのランでエラーになる。

=> 使用したゲノムがヘッダーとDNA配列の2行構成なのが原因だった。適当な文字数で改行したらランできるようになった。

出力 (--ligtht)

f:id:kazumaxneo:20200907120223p:plainoutput_dir/annotation_results/genome.fasta.annotations

f:id:kazumaxneo:20200907120318p:plain

計算に2日も要した。何か空回りするような計算ステップがあるかもしれない。

引用

MicrobeAnnotator: a user-friendly, comprehensive microbial genome annotation pipeline

Carlos A. Ruiz-Perez, Roth E. Conrad, Konstantinos T. Konstantinidis

bioRxiv, Posted July 21, 2020

 

追記

MicrobeAnnotator: a user-friendly, comprehensive functional annotation pipeline for microbial genomes
Carlos A. Ruiz-Perez, Roth E. Conrad & Konstantinos T. Konstantinidis 
BMC Bioinformatics volume 22, Article number: 11 (2021) 

 

HapSolo

 

 最近のロングリードシークエンシング技術の著しい進歩にもかかわらず、二倍体ゲノムのアセンブルは依然として困難な課題である。主な障害は、高度にヘテロ接合性のある領域を表すオルタナティブなコンティグを区別することである。プライマリなコンティグとセカンダリなコンティグが適切に識別されない場合、一次アセンブリはゲノムの大きさと複雑さの両方を過剰に表し、scaffolds形成などの下流の解析を複雑にしてしまう。
 HapSoloは、セカンダリコンティグを識別し、複数のペアワイズコンティグアライメント指標に基づいて一次アセンブリを定義するものである。HapSoloはBUSCOスコアを用いて候補のプライマリアセンブリを評価し、それからコスト関数を用いて候補のアセンブリを区別する。コスト関数はユーザーが定義することができるが、デフォルトではアセンブリ内の欠失、重複、単一BUSCO遺伝子の数を考慮する。HapSoloは何千もの候補アセンブリのコストを最小化するために最急降下法を行う。シャルドネブドウ(Vitis vinifera)、蚊(Anopheles funestus)、韓国のマッドスキッパー(Periophthalmus magnuspinnatus)の3種のゲノムデータを用いて、HapSoloの性能を示した。
 HapSoloは候補アセンブリを迅速に同定し、ゲノムサイズの縮小やN50スコアの改善などアセンブリの指標を劇的に改善する。N50スコアは、縮小前のプライマリアセンブリと比較して、シャルドネ、蚊、マッドスキッパーでそれぞれ26%、8.5%、21%向上した。HapSoloの利点はダウンストリーム解析によって増幅され、Hi-Cデータを用いたスキャフォールドによって説明された。例えば、HapSolo を適用する前は、染色体の数に相当する最大の 19 のスキャフォールドに、シャルドネのゲノムの 39%しか捕捉されていなかったことがわかった。HapSoloの適用後、この値は77%に増加した。

 

 

インストール

condaで仮想環境を作ってテストした。

依存

  • HapSolo is compatible with Python 2.7 and requires the PANDAS package be installed.
  • BLAT
  • BUSCO
conda create -n hapsolo python=2.7 -y
conda activate hapsolo
pip install pandas
conda install -c bioconda ucsc-fatotwobit
conda install -c bioconda busco

本体 Github

git clone https://github.com/esolares/HapSolo.git
cd HapSolo/
#パスを通す
export PATH=$PWD:$PATH
export PATH=$PWD/scripts:$PATH

preprocessfasta.py -h

$ preprocessfasta.py -h

usage: preprocessfasta.py [-h] -i INPUT [-m MAXCONTIG]

 

Preprocess FASTA file and outputs a clean FASTA and seperates contigs based on

unique headers. Removes special chars

 

optional arguments:

  -h, --help            show this help message and exit

  -i INPUT, --input INPUT

                        Input FASTA file

  -m MAXCONTIG, --maxcontig MAXCONTIG

                        Max size of contig in Mb to output in contigs folder.

hapsolo.py -h

$ hapsolo.py -h

usage: hapsolo.py [-h] -i INPUT -p PSL -b BUSCOS [-m MAXZEROS] [-t THREADS]

                  [-n NITERATIONS] [-B BESTN] [-S THETAS] [-D THETAD]

                  [-F THETAF] [-M THETAM]

 

Process alignments and BUSCO"s for selecting reduced assembly candidates

 

optional arguments:

  -h, --help            show this help message and exit

  -i INPUT, --input INPUT

                        Input Fasta file

  -p PSL, --psl PSL     BLAT PSL alignnment file

  -b BUSCOS, --buscos BUSCOS

                        Location BUSCO output directories. i.e. buscoN/

  -m MAXZEROS, --maxzeros MAXZEROS

                        Max # of times cost function delta can consecutively

                        be 0. Default = 10

  -t THREADS, --threads THREADS

                        # of threads. Multiplies iterations by threads.

                        Default = 1

  -n NITERATIONS, --niterations NITERATIONS

                        # of total iterations to run per gradient descent.

                        Default = 1000

  -B BESTN, --Bestn BESTN

                        # of best candidate assemblies to return using

                        gradient descent. Default = 1

  -S THETAS, --thetaS THETAS

                        Weight for single BUSCOs in linear fxn. Default = 1.0

  -D THETAD, --thetaD THETAD

                        Weight for single BUSCOs in linear fxn. Default = 1.0

  -F THETAF, --thetaF THETAF

                        Weight for single BUSCOs in linear fxn. Default = 0.0

  -M THETAM, --thetaM THETAM

                        Weight for single BUSCOs in linear fxn. Default = 1.0

 

 

実行方法

1、preprocessing

HapSoloのランにはコンティグごとにBlatアライメントファイルとbusco出力を格納したbuscoディレクトリが必要となる。この前処理を行うスクリプトpreprocessfasta.pyを実行する。

preprocessfasta.py -i contig.fasta
  • -i    Input FASTA file
  • -m    Max size of contig to output in contigs folder. By default the maxcontig size is set to 10000000 or 10Mb and is a not a required parameter.

このスクリプトは現在のパスに contigs ディレクトリを作成し()、contigs/に各 contig の個別の FASTA ファイルを保存する(contig配列ごとにファイルに分けて保存する)。また、このスクリプトは、BUSCOまたはMUMmerの結果のチェック時にエラーの原因になるFASTAヘッダの不正な文字を削除する。またBlatアライメントのために配列を2bitに変換する。ジョブが終わると、contigs/以外にカレントにcontig_new.fastaが出力される。

 

2、blat 2bit (randomly accessible) format ファイルの作成

faToTwoBit contig_new.fasta contig_new.2bit

 

3、buscoのラン

 

 

 

4、hapsoloのラン

hapsolo.py -i contig_new.fasta -p contig_new.2bit -b busco_out_dir

 

  

連続性が低い、つまりコンティグ数が多いアセンブリを使う場合、膨大なファイルを作成するためか、I/Oにかなり負担がかかるようです。連続性が低いアセンブリ配列を使用する事はあまりないかもしれませんが、注意して下さい。

引用

HapSolo: An optimization approach for removing secondary haplotigs during diploid genome assembly and scaffolding

Edwin A. Solares, Yuan Tao, Anthony D. Long, Brandon S. Gaut

bioRxiv, Posted June 30, 2020

 

関連