macでインフォマティクス

macでインフォマティクス

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

de novo transcriptomeのアイソフォームアセンブラ ClusTrAsT

2024/02/27 追記

 

 信頼できるリファレンスゲノムを持たない生物種のRNAシーケンスデータからのトランスクリプトームアセンブリはde novoで行う必要があるが、de novo methodでは転写産物のアイソフォームを再構築する能力が不十分であることが多いことが研究で示されている。本著者らは、転写産物のアイソフォームの包括的なセットを作成することを主目的とするアセンブリパイプラインを構築することにより、この問題に対処する。

このパイプラインは、ショートリードRNA-seqデータを入力とし、一次アセンブルを行い、ガイディングコンティグセットをクラスター化し、ショートリードをガイディングコンティグにアライメントし、クラスター化された各ショートリードセットを個別にアセンブルし、一次アセンブルクラスター単位のアセンブルを最終アセンブルにマージする。真核生物6種の実際のデータセットでテストした結果、ClusTrastは他のde novoアセンブラよりも発現量の多い既知のアイソフォームを、中程度の精度低下で再構築できることが示された。再現性に関しては、すべてのテストされたデータセットで、発現レベルの下限(<15%)において、またほぼすべてのデータセットで全範囲において、ClusTrastはトップであった。参照転写産物は、多くの場合(6つのデータセットで35~69%)、ClusTrastによって少なくとも95%の長さに再構築され、参照転写産物の半分以上(58~81%)は、多型を示すコンティグで再構築された。複数のアセンブリツールからアセンブルされたトランスクリプトのユニオンをプライマリーアセンブリとして使用した場合、ClusTrastのリコールは増加した。ClusTrastは、信頼できるリファレンスゲノムを持たない生物種におけるアイソフォームの研究に有用なツールであり、特に多型バリアントを含む包括的なトランスクリプトームセットを作成することを目的とする場合に有効であることが示唆された。

 

インストール

依存

Linux, (Mac OS is under development)

Github

mamba create -n ClusTrAsT -y
conda activate ClusTrAsT
mamba install -c conda-forge -c bioconda shannon_cpp -y
mamba install -c conda-forge -c bioconda minimap2 -y
mamba install -c conda-forge -c bioconda transabyss -y
mamba install -c conda-forge -c bioconda isONclust -y
mmaba install pysam -y

#本体
git clone https://github.com/karljohanw/clustrast.git
cd clustrast/

> ./clustrast -h

usage: ./clustrast -1 FASTX_LEFT_PAIRED_END_READS -2 FASTX_RIGHT_PAIRED_END_READS -o OUTPUT_DIR [-p THREADS] [-u|--uniqify] [-g FASTX_GUIDING_CONTIGS] [-b FASTX_BASE_ASSEMBLY] [-t TEMPARORY_DIRECTORY] [-c CLUSTER_FILE] [--secondary-alignments N_SECONDARY_ALIGNMENTS] [--old-style-sr-clustering]

       ./clustrast -h  #to show this help

       ./clustrast -d  #to check dependencies and quit

 

 

実行方法

1,ガイドは指定せず、RNA seqのペアエンドショートリードのみ指定

clustrast -1 ~/sr_left.fq.gz -2 ~/sr_right.fq.gz -p 15 -o output_dir

ベースアセンブリにTrans-ABySS、コンティグのクラスタリングにisONclust、SRクラスタリングにminimap2+srClust、クラスタワイズアセンブリにshannon_cppが使用される(マニュアルより)。

 

2,ペアエンドショートリードと、ガイドとしてCCSのロングリードを指定

clustrast -1 ~/sr_left.fq.gz -2 ~/sr_right.fq.gz -p 15 -o ~/output_dir -g ~/ccs.fq

ガイドコンティグが与えられていない場合、ClusTrAsTはベースアセンブリを使用する。

 

3,ペアエンドショートリードと、ガイドとして手持ちのアセンブリ配列を指定

clustrast -1 ~/sr_left.fq.gz -2 ~/sr_right.fq.gz -p 15 -o ~/output_dir -g ~/ccs.fq

Trans-ABySSによるベースアセンブリは行わず、earlier_assembly.faをガイドコンティグとして使用する。

 

1の出力例(小さなfastqを使用)

 

論文より

  • ClusTrastの一次アセンブリステップでは、Trans-ABySSが使用される。他のアセンブラを使用することも可能であるが、性能は劣る。複数のアセンブリツールからアセンブリされたトランスクリプトのユニオンをプライマリーアセンブリーとして使用すると、ClusTrastのリコールが向上するが、より大きな計算資源を必要とする。
  • コンパクトなトランスクリプトームアセンブリは、例えば、再構成されたトランスクリプトームが遺伝子差分発現解析のリファレンスとしてリードのアライメントに使用されることを意図している場合などは望ましい。このような状況では本アプローチは適していない。しかし、可能な限り多くの支持される転写産物のアイソフォームを見つけることが目的である場合、コンパクトであること自体は望ましくない。6つのモデル生物のテストでは、ClusTrastは一貫して最も多くの転写産物アイソフォームを検出した。このことは、包括的であり且つ冗長でないコンティグのリストを提供するという、ClusTrastの意図と一致している。従って、真核生物の転写産物のアイソフォームをより完全に表現することに興味のある研究者は、ClusTrastを使用することが適している。
  • ClusTrastで得られたコンティグリストは、研究課題に応じてさらなる処理や解析が可能である。

コメント

Trans-ABySSとクラスタリングには長い時間がかかります。初めに動作テストしたい場合、1/100~1/1000くらいにリード数を減らした小さいデータを使うと良いかもしれません。動物のRNA seq(gzip圧縮で6GBx2)を使って1のコマンドを試したところ、40時間ほどかかりました(20スレッド指定、TR3990X)。

依存

ClusTrast: a short read de novo transcript isoform assembler guided by clustered contigs
Karl Johan Westrin, Warren W. Kretzschmar & Olof Emanuelsson 
BMC Bioinformatics volume 25, Article number: 54 (2024) 

 

関連

https://kazumaxneo.hatenablog.com/entry/2019/04/12/073000

 

 

既知のプロテオーム空間から類似したタンパク質構造を発見する AlphaFind

2024/02/026 誤字修正

 

 AlphaFindは、AlphaFold DBの全構造セットにおいて、構造に基づいた高速検索を提供するウェブベースの検索エンジンである。他のタンパク質処理ツールとは異なり、AlphaFindは3次構造に完全に焦点を当てており、各タンパク質鎖の主要な3D特徴を自動的に抽出し、機械学習モデルを使って最も類似した構造を見つける。この索引付けアプローチとAlphaFindで使用されている3D特徴抽出法は、大規模なデータセットや大規模なタンパク質構造に対して、共に顕著なスケーラビリティを実証している。ウェブアプリケーション自体は、わかりやすさと使いやすさを重視して設計されている。検索機能は、有効なUniprot ID、PDB ID、遺伝子シンボルを入力として受け付け、AlphaFold DBから類似タンパク質鎖のセットを、クエリと検索結果のそれぞれの間の様々な類似度メトリクスを含めて返す。主な検索機能に加えて、このアプリケーションは、検索結果の構造的類似性を即座に分析できるように、タンパク質構造の重ね合わせの3D可視化を提供する。AlphaFindウェブアプリケーションhttps://alphafind.fi.muni.czにて登録不要で無料で利用できる。

 

Manual
https://github.com/Coda-Research-Group/AlphaFind/wiki/Manual

 

webサービス

https://alphafind.fi.muni.cz/searchにアクセスする。

 

Uniprot ID、PDB ID、またはGene Symbolに対応している。PDB IDまたはGene Symbolは自動的にUniProt IDに変換されて使用される。検索すると、AlphaFold DB内で見つかった最も類似したタンパク質が返される。

(* マニュアルより;UniProtエントリー名(例:A0A159JYF7_9DIPT、AUX1_ARATH、F4HT52_ARATH)またはフラグメントの識別を伴うUniProtアクセッション番号(例:Q8WZ42-F1、Q8WZ42-F2)はサポートされていない)

 

 

 

出力例

試した時は数秒で結果が得られた。

デフォルトではTM-scoreに従ってソートされている。検索結果はソースとなる生物ごとにグループ化されており、左端の列に種名が見える。

種名とUniProt IDのほか、いくつかの類似性指標が表示されている。

 


表の(4) Pan troglodytes(チンパンジー)の4は、その種で見つかった類似したタンパク質の数を表す。左側のをクリックすることで全ての配列に展開できる(下の図)。

表の展開前のUniProt IDと類似度メトリクスは、その生物で見つかった最も類似したタンパク質に対応している。

 

表の情報は左端の列から以下のようになっている(マニュアルより)。

  1. Organism - 由来生物の名前。
  2. UniProt ID - UniProt [UniProt2019] アクセッション番号。
  3. Global similarity - TM-Score - テンプレートモデリングスコア。TM-スコアは、この表の他の類似性メトリックスと同様に、US-align [Zhang2022]を使用して計算される。
  4. local similarity - RMSD (Å) - アラインされたCα原子の3次元座標間の距離の局所的尺度。
  5. local similarity - Aligned Residues - クエリタンパク質の全長に対する、アラインされた残基の部分。
  6. Sequence Identity - クエリタンパク質の長さに対する、2つのアラインメントされた配列内の同一アミノ酸残基の部分。
  7. Superposition - 下記参照

 

7のSuperpositionについて

右端にある2つのボタンは、左側のボタンが構造の確認ボタン右側が再検索ボタンになっている。左側のボタンをクリックすると、クエリタンパク質と選択したタンパク質の構造の重なり(superimpose)を表示するパネルが呼び出される。

クエリタンパク質は黄色で表示され、選択された類似タンパク質は青色で表示される。左のパネルから、表示されるタンパク質の不透明度を調整したり、完全に非表示にしたりできまる。画面全体に表示するには、ウィンドウ左上の破線の□ボタン;toggle fullscreen ボタンをクリックするか、Mol* viewerにジャンプして確認する。

(注;しっかり調べたいなら、Mol*の埋め込みビューではなく多機能なMol*で確認した方が良い(Mol*紹介)。)

 

右端の2つ目のボタンをクリックすると、選択されたタンパク質から検索を開始できる。

ページ下部の右側にある「Export all to CSV」ボタンをクリックすると、表をCSV形式で出力できる。

 

(マニュアルと論文より)

  • 検索時は、AlphaFoldのDB全体が[Slaninakova2021]で紹介されている非常に高速な機械学習モデルを用いて検索され、1000個の類似構造の候補セットが返される。候補セットは[Olha2022]で説明されている近似フィルタリングステップを用いてソートされ、必要な数の上位結果が回答として選択される。答えはデフォルトで50個の構造を含むが、この数はユーザが拡張でき、最初のステップで返された1000個の構造セット全体まで拡張できる。
  • AlphaFindは2億1400万個のタンパク質構造が含まれているAlphaFold DB全体にインデックスを付けている。エンベッディングへの変換により、アプリケーションはデータベースを検索し 最初の50個の結果を平均7秒で返すことができる。バックエンドの負荷はごくわずかで、結果を50、100、200、300の単位で拡張することができ、 それぞれ平均7秒、9秒、11秒、15秒かかる(高負荷時にはキューに入れられる)。
  • 特定の領域における局所的な類似性の高さに重点を置く傾向があるこれまでの検索手法とは異なり AlphaFindはこれらの領域があまり保存されていない生物間の構造的類似性も発見しやすい。

 

論文では、AlphaFindの3つの使用例がそれぞれ1つのパラグラフで簡潔に説明されています。興味のある方は読んでみて下さい。

引用

AlphaFind: Discover structure similarity across the entire known proteome
David Prochazka,  Terezia Slaninakova,  Jaroslav Olha,  Adrian Rosinec,  Katarina Gresova, Miriama Janosova,  Jakub Cillik,  Jana Porubska,  Radka Svobodova,  Vlastislav Dohnal,  Matej Antol

bioRxiv, Posted February 18, 2024.

 

関連

Foldseek server

https://kazumaxneo.hatenablog.com/entry/2022/08/03/034502

Mol* viewer

https://kazumaxneo.hatenablog.com/entry/2024/01/26/125018

UniProtデータベースについて

https://kazumaxneo.hatenablog.com/entry/2022/07/10/162327

 

ロングリードを使って既存の(メタ)ゲノムアセンブリの改良(ハプロイドやphased assembly作成など)を行う HairSplitter

#2024/02/22 インストール手順修正

 

ロングリード・アセンブラは、密接に関連したウイルス株や細菌株を識別する際に問題に直面する。この限界は、多様な菌株が重要な機能的違いを保持している可能性のあるメタゲノム解析の妨げとなっている。本著者らは、菌株を区別しないアセンブリとロングリードから菌株を検索するために設計された新しいソフトウェア、HairSplitterを紹介する。この方法では、誤ったロングリードを処理するためにカスタムバリアントコーリングプロセスを使用し、事前に未知数の菌株を回収するために新しいリードクラスタリングアルゴリズムを導入している。ノイズの多いロングリードにおいて、HairSplitterはウイルスとバクテリアの両方のケースで、最新のツールよりも高速に、より多くの菌株を回収することができる。HairSplitterはGitHubgithub.com/RolandFaure/HairSplitterで自由に利用できる。

 

レポジトリより

Hairsplitterは、アセンブリ(どのような方法で得られたものでもよい)と、このアセンブリを構築するために使われたロングリード(高エラー率のロングリードを含む)を入力として受け取る。各コンティグについて、そのコンティグが異なるハプロタイプ/リージョンからのリードを用いて構築されたかどうかをチェックする。もしそうであれば、Hairsplitterはリードを必要な数だけグループに分け、実際にゲノムに存在するコンティグの異なるバージョン(例えばアレル)を計算する。コンティグの異なるバージョンは1つにまとめられず、別々にアセンブルされた新しいアセンブリが出力される。

インストール

依存

  • minimap2
  • racon and/or medaka
  • raven
  • samtools >= 1.16
  • CMake >= 3.8.12, make, gcc >= 11, g++ >= 11
  • Python3 with numpy and scipy
  • gzip

mamba create -n hairsplitter python=3.11 -y
conda activate hairsplitter
mamba install -c bioconda -c conda-forge -c anaconda scipy numpy minimap2 -y
mamba install -c bioconda -c conda-forge -c anaconda minigraph=0.20 racon raven -y
mamba install -c bioconda -c conda-forge -c anaconda htslib binutils -y
mamba install -c bioconda -c conda-forge samtools=1.19
pip install medaka

#本体
git clone https://github.com/RolandFaure/Hairsplitter.git
cd Hairsplitter/src/
mkdir build && cd build
cmake ..
make -j10

#GenomeTailor
cd ../GenomeTailor/
mkdir build && cd build
cmake ..
make -j20
cd ../../../

python hairsplitter.py -h

usage: hairsplitter.py [-h] -i ASSEMBLY -f FASTQ [-x TECHNOLOGY] [-p POLISHER] [-t THREADS] -o OUTPUT [-s] [-P] [-F] [-l] [--rarest-strain-abundance RAREST_STRAIN_ABUNDANCE] [--skip-minigraph] [--minimap2-params MINIMAP2_PARAMS]

                       [--path_to_minimap2 PATH_TO_MINIMAP2] [--path_to_minigraph PATH_TO_MINIGRAPH] [--path_to_racon PATH_TO_RACON] [--path_to_medaka PATH_TO_MEDAKA] [--path_to_samtools PATH_TO_SAMTOOLS] [--path_to_python PATH_TO_PYTHON] [-d] [-v]

 

optional arguments:

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

  -i ASSEMBLY, --assembly ASSEMBLY

                        Original assembly in GFA or FASTA format (required)

  -f FASTQ, --fastq FASTQ

                        Sequencing reads fastq (required)

  -x TECHNOLOGY, --technology TECHNOLOGY

                        {ont, pacbio, hifi} [ont]

  -p POLISHER, --polisher POLISHER

                        {racon,medaka} medaka is more accurate but much slower [racon]

  -t THREADS, --threads THREADS

                        Number of threads [1]

  -o OUTPUT, --output OUTPUT

                        Output directory

  -s, --dont_simplify   Don't rename the contigs and don't merge them

  -P, --polish-everything

                        Polish every contig with racon, even those where there is only one haplotype

  -F, --force           Force overwrite of output folder if it exists

  -l, --low-memory      Turn on the low-memory mode (at the expense of speed)

  --rarest-strain-abundance RAREST_STRAIN_ABUNDANCE

                        Limit on the relative abundance of the rarest strain to detect (0 might be slow for some datasets) [0.01]

  --skip-minigraph      Skip the assembly correction step. Aligning reads on very complex graphs can be time-consuming

  --minimap2-params MINIMAP2_PARAMS

                        Parameters to pass to minimap2

  --path_to_minimap2 PATH_TO_MINIMAP2

                        Path to the executable minimap2 [minimap2]

  --path_to_minigraph PATH_TO_MINIGRAPH

                        Path to the executable minigraph [minigraph]

  --path_to_racon PATH_TO_RACON

                        Path to the executable racon [racon]

  --path_to_medaka PATH_TO_MEDAKA

                        Path to the executable medaka [medaka]

  --path_to_samtools PATH_TO_SAMTOOLS

                        Path to samtools [samtools]

  --path_to_python PATH_TO_PYTHON

                        Path to python [python]

  -d, --debug           Debug mode

  -v, --version         Print version and exit

 

 

 

GenomeTailorのテストラン

#GenomeTailor(test/は同梱版にはないので注意)#アセンブリ上で全リードがエンドツーエンドで整列するようにする(link)
cd test
../build/GenomeTailor -i assembly.gfa -r mock_reads.fasta -o test.gfa

 

実行方法

アセンブルするのに使ったロングリード、現在のアセンブリを指定する。

python hairsplitter.py -f reads.fastq -i assembly.gfa -x ont -o hairsplitter_out/ -t 20
  • -i      Original assembly in GFA or FASTA format (required)
  • -f      Sequencing reads fastq (required)
  • -x     TECHNOLOGY  {ont, pacbio, hifi} [ont]
  • -p     POLISHER  {racon,medaka} medaka is more accurate but much slower [racon]
  • -t      Number of threads [1]
  • -o     Output directory 

小さめのメタゲノムアセンブリ(30Mb、リード1Gb)を使用したところ、10分以内にジョブは終了した(3990X、20スレッド)。

 

hairsplitter_out/


元のアセンブリ(上)とHairSplitter出力のアセンブリ(下)

 

論文とレポジトリより

  • 細菌株の文脈では、Vicedominiらは、metaFlyeやCanuのような主流のアセンブラでは、近い細菌ハプロタイプを区別できないことを示し、菌株を再構築するStrainberryと呼ばれる新しいツールを提案した。ウイルス株の文脈では、Strainline (X Luo et al., 2022)とHaploDMF (Cai et al., 2022)が、特にウイルスハプロタイプ再構築問題に取り組むために発表されているが、機能するためには非常にディープシークエンシングを必要とする。iGDA (Z Feng et al., 2021)は、高いエラー率を処理しながらマイナーバリアントを相補する一般的なアプローチとして提案され、理論的には細菌とウイルスの両方のハプロタイプを組み立てることができる。これらの方法は、存在量の少ないハプロタイプを回収するのに苦しんでいる。また非常に計算集約的である。

  • Hairsplitterは、アセンブリ補正プログラムとリード分離手順という2つの新機能が含まれている。HiFiリードのアセンブルには、hifiasmのような専門的なソフトウェアの方が適しているように思われるが、HairSplitterはノイズの多いデータ(エラー率1%以上)を扱う場合に有用であることがわかった。
  • Hair-Splitterは細菌とウイルスの両方において、複数の類似株を効果的に分離できることを示している。HairSplitterは、低い計算コストで、多数の菌株と低い相対存在量の配列を扱うことができる。
  • Hairsplitterはメタゲノムアセンブリの改良に使用できる。アセンブラは通常、密接に関連する株を単一ゲノムとしてcollapseさせる。HairSplitterは失われた株を復元することができ、この時、アセンブリのcollapseしていない部分はそのまま残される。
  • HairSplitterは単の一生物アセンブリ、特にphased assemblyを得ようとしている場合にも有用である。
  • 他の手法と比べたHairsplitterの主な利点は、完全にパラメータフリーであることである。ゲノムの倍数性を事前に知る必要がなく、コンティグの倍数性を推測できる。したがって、ハプロイドのアセンブリ(重複アセンブリを改善するため)にも、複雑なアロテトラプロイド(ハプロタイプを別々にアセンブリするため)にも同様に使用できる。

 

コメント

issueで聞いてみましたが、2024年2月現在、数週間の予定でアクティブに開発中とのことです。コメントがあればこの期間にしておくと採用されやすいかもしれません。

引用

HairSplitter: haplotype assembly from long, noisy reads
Roland Faure, Dominique Lavenier, Jean-François Flot

bioRxiv, Posted February 14, 2024.

 

関連

https://kazumaxneo.hatenablog.com/entry/2021/02/08/005407

 

メタゲノムのリードの発生からbinningまで自動でシミュレーションする MAGICIAN

 

 シーケンスリードからメタゲノムアセンブリゲノム(MAGs)を回収することで、微生物群集とその構成員に関するさらなる洞察が可能になり、場合によっては単一分離ゲノム用に設計されたツールでそのような配列を解析することもできる。結果の質は配列の質に依存するため、単一分離ゲノム用のツールの性能をMAG上で事前にテストする必要がある。バイオインフォマティクスレバレッジして、この目的のために、構成が既知の様々な合成テストセットを迅速に作成することができる。

本著者らは、MAGのシミュレーションのための柔軟でユーザーフレンドリーなパイプラインであるMAGICIANを発表する。MAGICIANは、合成メタゲノムシミュレータとメタゲノム解析およびビニングパイプラインを組み合わせ、ユーザーが提供した入力ゲノムに基づいてMAGをシミュレートする。MAGICIANを使用することで、カバレッジの深さがごくわずか(1%)変化するだけでも、ゲノムを回収できるかどうかに大きく影響することが分かった。また、MAGICIANの現在のデフォルトパイプラインで得られたゲノムを抗菌薬耐性遺伝子同定ツールResFinderで解析する際の適合性を評価することで、シミュレートされたMAGの利用を実証した。

MAGICIANを用いることで、一般的に高品質でありながら、実データで発生する問題を反映したMAGをシミュレートすることができ、現実的なベストケースデータを提供することができる。これらのゲノムをResFinderで解析した結果を評価したところ、最も妥当なルッキングのリスクが明らかになった。

 

インストール

Github

https://github.com/KatSteinke/magician

#本体
git clone https://github.com/KatSteinke/magician.git
cd magician/
mamba env create --file requirements.yml
conda activate magician_base

#CAMISIM
#CAMISIMのcustom error profilesが必要。CAMISIMのfolkをクローンしておく
git clone https://github.com/KatSteinke/CAMISIM

default_config.ymlを開いて、クローンしたCAMISIMのパスを指定する

vi default_config.yml

python run_magician.py -h

usage: run_magician.py [-h] [--target TARGET]

                       [--profile_type {mbarc,hi,mi,hi150,own}]

                       [--profile_name PROFILE_NAME]

                       [--profile_readlength PROFILE_READLENGTH]

                       [--insert_size INSERT_SIZE] [--cluster CLUSTER]

                       [--cores CORES] [--config_file CONFIG_FILE]

                       [--snake_flags [SNAKE_FLAGS [SNAKE_FLAGS ...]]]

                       community_file

 

Run MAGICIAN to simulate MAGs for a specified community or set of communities.

Run without arguments for a test run.

 

positional arguments:

  community_file        File with paths to source genomes, sequence type

                        (plasmid/chromosome) and their desired relative copy

                        number in each community to simulate (one column with

                        organisms' copy numbers per community)

 

optional arguments:

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

  --target TARGET       Desired output file or rule (default: MAGs, statistics

                        and summary files for all communities)

  --profile_type {mbarc,hi,mi,hi150,own}

                        Type of ART error profile to use for CAMISIM: mbarc,

                        hi, mi, hi150, own (default: mbarc)

  --profile_name PROFILE_NAME

                        Base name of custom error profile, if given (name of

                        files without '[1/2].txt'); required with 'own' error

                        profile

  --profile_readlength PROFILE_READLENGTH

                        Read length of custom error profile; required with

                        'own' error profile

  --insert_size INSERT_SIZE

                        Mean insert size for read simulation (default: 270)

  --cluster CLUSTER     For use with snakemake's cluster mode; supply command

                        for submitting jobs as you would with snakemake.

  --cores CORES         Amount of cores Snakemake should use (default: 6)

  --config_file CONFIG_FILE

                        Config file for run

  --snake_flags [SNAKE_FLAGS [SNAKE_FLAGS ...]]

                        Flags to be passed to snakemake, enclosed in quotes

 

 

テストラン

オプションなしで実行すると、テストランできる。"y"を選択。

python run_magician.py community.tsv

snakemakeのランのためにcondaを使って仮想環境が作られるが、依存関係が解決できず失敗した。

 

 

実行方法

MAGICIANの実行には、シミュレーションの対象となる生物のゲノム配列(genbankまたはfasta形式)と、タブ区切りのサンプル分布ファイルが必要。タブ区切りファイルの最初の列はゲノムファイルのパス、2番目は配列の種類(chromosomeまたはプラスミド)、それに続く列はコミュニティの構成名とコミュニティ内の配列の相対的な存在量。

https://github.com/KatSteinke/magician/blob/master/test/data/test_genomes/sample_distributions.tsv

 

TSVファイルを指定して実行する。また、--snake_flagsでSnakemakeに渡すフラグを二重引用符で囲んで指定する必要がある。ドライランには"-n "を使用する。

python run_magician.py community.tsv

最後に以下のようなサマリーレポートもできる。

https://github.com/KatSteinke/magician/tree/master/test/data/sample_summaries

 

 

論文より

  • MAGICIANは、ユーザーが定義した合成コミュニティからのメタゲノムリードとMAGをインシリコでシミュレートし、これらのコミュニティの組成を簡単に変化させ、大量の実験をシミュレートすることができる。
  • 機能を実証するために、関連する生物やプラスミドを導入し、シークエンシングパラメーターを変化させた。その結果、プラスミドは一般的に回収できず、近縁の生物の再構築は困難であった。また、ほとんどのケースで近縁な生物の配列を含むビンは非常に断片化された。

引用

MAGICIAN: MAG simulation for investigating criteria for bioinformatic analysis
Kat Steinke, Sünje J. Pamp & Patrick Munk 
BMC Genomics volume 25, Article number: 55 (2024)

 

関連

https://kazumaxneo.hatenablog.com/entry/2018/08/10/123830

 

 

 

微生物の機能をGO termの形で予測する DeepGOMeta

 

 微生物サンプルの解析は、その多様性と複雑性のために、依然として計算上困難である。ロバストなde novoタンパク質機能予測法の欠如は、これらのサンプルから機能的洞察を導き出すことの難しさを悪化させている。相同性や配列の類似性に依存する従来の予測手法では、新規タンパク質やホモログが知られていないタンパク質の機能を予測できないことが多い。さらに、これらの手法のほとんどは、主に真核生物のデータに対して学習されたものであり、微生物のデータセットに対する評価や適用は行われていない。本研究では、微生物に関連するデータセットで学習させた、ジーオントロジー(GO)の語彙としてのタンパク質機能予測用に設計された深層学習モデルDeepGOMetaを紹介する。このモデルは、新しい評価戦略を用いて検証され、多様な微生物データセットに適用されている。データとコードはhttps://github.com/bio-ontology-research-group/deepgometaで利用できる。

 

DeepGOMetaは微生物種(原核生物古細菌、ウイルス)に属するUniProtKB/Swiss-Prot Knowledgebaseタンパク質でトレーニング、テスト、評価されている。DeepGOMetaは、GO termの形で機能予測を提供する。

インストール

推奨されている通り、dockerイメージを使ってテストした。使用前にdockerがGPUを認識できるようにしておく必要がある(*1)(os: ubuntu20)。

  • The code was developed and tested using python 3.10.
  • You'll need around 30Gb storage and a GPU with >16Gb memory (or you can use CPU)

Github

#ここではdockerを使用(dockerhub)
docker pull coolmaksat/deepgometa

> docker run --rm coolmaksat/deepgometa python predict.py --help

Usage: predict.py [OPTIONS]

 

Options:

  -if, --in-file TEXT        Input FASTA file  [required]

  -dr, --data-root TEXT      Prediction model

  -t, --threshold FLOAT      Prediction threshold

  -bs, --batch-size INTEGER  Batch size for prediction model

  -d, --device TEXT          Device

  --help                     Show this message and exit.

 

 

モデルのダウンロード(800MBほど)

wget https://deepgo.cbrc.kaust.edu.sa/data/deepgometa/data.tar.gz
unzip data.tar.gz

 

実行方法

タンパク質のfastaファイルを指定する。解凍したdata/をdockerと共有するため、解凍したdata/の1つ上に移動して実行する。下のコマンドではexample.faを解凍したdata/に配置している。

docker run --rm --gpus all -v $(pwd)/data:/workspace/deepgometa/data coolmaksat/deepgometa python predict.py -if data/example.fa

実行すると、初めにESM-2のモデルがダウンロードされる。細菌株のproteome 4000配列のアノテーションに40分ほどかかった(GPU: RTX3090)。

 

example.faaを指定した場合、example/にGO termの3つのカテゴリに相当する、example_preds_mf.tsv.gz、example_preds_cc.tsv.gz、example_preds_bp.tsv.gzが出力される。

gless example_preds_mf.tsv.gz

タンパク質ごとに複数のGO termが1行に1つずつ記載されている。多くの配列に複数のGO termがついている。出力について、レポジトリには説明が見当たらなかった。

 

  • DeepGOMetaは、Dockerイメージを使用してNextflowワークフローとして実行することもできる。
  • (論文より)MGnifyタンパク質データベースから2,000個のタンパク質をアノテーションする際に、既存のPfamアノテーションを持つタンパク質は567個に過ぎなかったのに対し、DeepGOMetaは2,000個のタンパク質全てのアノテーションに成功した。一方、このサブセットにはPfamのアノテーションがないため、予測の機能的関連性と精度を直接検証する上では課題がある。

引用

DeepGOMeta: Predicting functions for microbes
Rund Tawfiq,  Kexin Niu,  Robert Hoehndorf,  Maxat Kulmanov

bioRxiv, Posted January 31, 2024.

 

*1

こちらを参考にしました。

https://zenn.dev/derbuihan/articles/a1e636d29e1b51

ロングリードトランスクリプトームの高効率なクラスタリングを行う geluster

 

 ロングリードRNAシーケンス技術の進歩は、トランスクリプトーム解析に明るい未来をもたらした。ロングリードをその起源遺伝子ファミリーにしたがってクラスタリングすることは非常に重要である。しかし、既存のde novoクラスタリングアルゴリズムは、膨大な計算資源を必要とする。

ロングRNA-seqリードをクラスタリングする新しいアルゴリズムGeLusterを開発した。1つのシミュレーションデータセットと9つの実データセットでのテストで、GeLusterは優れた性能を示した。テストしたNanoporeデータセットでは、2番目に高速な手法の2.9~17.5倍の速度で動作し、メモリ消費量は7分の1以下でありながら、高いクラスタリング精度を達成した。また、PacBioデータでもGeLusterは同様の性能を示した。GeLusterは将来の大規模トランスクリプトーム研究の舞台に対応する。

 

インストール

minimap2とsamtoolsが必要。下では2つのツールの導入については省略している。

依存

  • g++ with support for C++11 (e.g. 9.4.0)
  • minimap2 (In the GeLuster paper we tested with version 2.24-r1122)
  • samtools (In the GeLuster paper we tested with version 1.10)

Github

https://github.com/yutingsdu/GeLuster

git clone https://github.com/yutingsdu/GeLuster.git
cd GeLuster/src/
make -j8
cd ../

> ../GeLuster  

[Error] : Reads file is not provided!

    

===========================================================================

 

GeLuster usage:

 

** Required **

 

--reads/-r <string>     : path to the read file

 

---------------------------------------------------------------------------

 

** Options **

 

--help/-h          : Output GeLuster Help Information.

 

--version/-v          : Print current version of GeLuster.

 

--iteration/-i <int>      : Number of GeLuster iterations ([3,9], default: 3).

 

--seqType/-s <string>      : 'cDNA' for ONT cDNA data, 'dRNA' for ONT direct RNA data, or 'PacBio' for pacbio data (default:cDNA).

 

--rform/-f <string>      : 'fq' for FASTQ format reads, 'fa' for FASTA format reads (default: fq).

 

--threads/-t <int>       : Number of threads to be used (default: 10).

 

--multi/-M           : To generate a proxy of gene expression matrix for multiple RNA-seq samples. Input files should be separated by commas.

 

--output_dir/-o <string>  : Output path, default: geluster_outdir.

 

---------------------------------------------------------------------------

 

** Typical commands **

 

A typical GeLuster command might be:

 

  GeLuster -r reads.fastq -f fq -s cDNA -o geluster_outdir 

 

===========================================================================

 

 

 

テストラン

cd GeLuster/sample_test/
./run_me.sh

出力

geluster_outdir/



実行方法

ロングリードを指定する。

GeLuster -r Test.fastq -s cDNA -o out
  • -s    'cDNA' for ONT cDNA data, 'dRNA' for ONT direct RNA data, or 'PacBio' for pacbio data (default:cDNA).
  • -f    'fq' for FASTQ format reads, 'fa' for FASTA format reads (default: fq).

 

出力TSVは1リードにつき1行のテキストファイルとなっている。各行には、リードの名前とそのリードが属するクラスタがプリントされる、

 

サブディレクトリfastq_filesにはクラスタ毎にfastqが保存される。

 

複数のサンプル(細胞)から得られたRNA-seqリードを入力とし、入力されたサンプル(細胞)について遺伝子発現行列を生成することもできる。

GeLuster -r reads1.fastq,reads2.fastq,reads3.fastq -f fq -s cDNA --multi -o geluster_outdir
  • --multi/-M    To generate a proxy of gene expression matrix for multiple RNA-seq samples. Input files should be separated by commas.

出力行列の各項目は、与えられたサンプル(細胞)における特定のクラスタ(遺伝子)のリード数(発現レベル)を表す。

 

レポジトリより

  • GeLusterは、参照情報を使わずにde novoで発現行列を生成する。このアプローチは、参照情報がない生物種でも機能すると期待される。

引用

Highly efficient clustering of long-read transcriptomic data with geluster 
Junchi Ma, Xiaoyu Zhao, Enfeng Qi, Renmin Han, Ting Yu, Guojun Li Author Notes
Bioinformatics, Published: 03 February 2024

ロングリードのハイブリッドエラー訂正を行う HERRO

20240419 タイトル修正

 

注;論文のタイトルにはHEROと書かれてますが、レポジトリではHERROとなっています。ここではHERROで統一します。

 

一般的に優れているが、次世代シーケンシング(NGS)リードを用いた第3世代シーケンシング(TGS)リードのエラーを修正するハイブリッドアプローチは、ハプロタイプ特異的バリアントを、倍数体サンプルや混合サンプルのエラーと取り違える。HERROは、NGSリードとTGSリードの特定の強みに最適に対応するために、de Bruijnグラフとオーバーラップグラフの両方を利用する最初の「ハイブリッド-ハイブリッド」アプローチとして提案する。広範なベンチマーク実験により、HERROはindelとミスマッチのエラー率を平均65% (27~95%)および20% (4~61%)、ゲノムアセンブリの前にHEROを使用することで、関連するカテゴリーの大部分でアセンブリが大幅に改善される。

 

 

HERROはHaplotype-aware ERRor cOrrectionを意味する。

インストール

依存

注;HERROはGPUのVRAMをかなり使う。推奨80GBかつ複数GPUとなっている(ヒトゲノムなど)。

 

説明されている通り、レポジトリをcloneして依存するツールを導入(前処理のステップ1と2用)、それからsingularityイメージをビルドした。最後にモデルをダウンロードして実行した(古いsingularityだと動かないので注意。v3.9.5を使用した)。

Github

https://github.com/lbcb-sci/herro

#1
git clone https://github.com/dominikstanojevic/herro.git
cd herro
mamba env create --file scripts/herro-env.yml

#2  singularityイメージのビルド
sudo singularity build herro.sif herro-singularity.def
#もしくはビルド済みのイメージをダウンロード(3.5GB)
wget http://complex.zesoi.fer.hr/data/downloads/herro.sif

> scripts/preprocess.sh

Please place porechop_with_split.sh and no_split.sh in the same directory as this script.

This script requires 4 arguments:

1. The input sequence file. e.g. input.fastq

2. The output prefix. e.g. 'preprocessed' or 'output_dir/preprocessed'

3. The number of threads to be used.

4. The number of parts to split the inputs into for porechop (since RAM usage may be high).

 

> scripts/create_batched_alignments.sh

Please place batch.py in the same directory as this script.

This script requires 4 arguments:

1. The path to the preprocessed reads.

2. The path to the read ids of these reads e.g. from seqkit seq -n -i.

3. The number of threads to be used.

4. The directory to output the batches of alignments.

 

> singularity run --nv herro.sif inference -h

$ singularity run --nv herro.sif inference -h

Subcommand used for error-correcting reads

 

Usage: herro inference [OPTIONS] -m <MODEL> -b <BATCH_SIZE> <READS> <OUTPUT>

 

Arguments:

  <READS>   Path to the fastq reads (can be gzipped)

  <OUTPUT>  Path to the corrected reads

 

Options:

      --read-alns <READ_ALNS>    Path to the folder containing *.oec.zst alignments

      --write-alns <WRITE_ALNS>  Path to the folder where *.oec.zst alignments will be saved

  -w <WINDOW_SIZE>               Size of the window used for target chunking (default 4096) [default: 4096]

  -t <FEAT_GEN_THREADS>          Number of feature generation threads per device (default 1) [default: 1]

  -m <MODEL>                     Path to the model file

  -d <DEVICES>                   List of cuda devices in format d0,d1... (e.g 0,1,3) (default 0) [default: 0]

  -b <BATCH_SIZE>                Batch size per device. B=64 recommended for 40 GB GPU cards.

  -h, --help                     Print help

 

 

 

モデルのダウンロード

wget http://complex.zesoi.fer.hr/data/downloads/model_v0.1.pt

 

実行方法

HERROは複数のステージから構成されている。ステップ1、2はcondaで作った環境で実行する前処理のステップ(HERROは使わない)。ステップ3のherro inferenceコマンドはsingularityイメージを使用する。

 

1、Preprocess reads

PorechopによるONTリードの前処理。10スレッド指定。最後にメモリ使用量を削減するために一過的にリードを分割して扱うための分割数を指定する。分割が不要な場合は、メモリ使用量が増えるが<parts_to_split_job_into>を1に設定する。ONTデータが巨大なら分割が推奨される。

conda activate herro
scripts/preprocess.sh input_fastq out_prefix 10 <parts_to_split_job_into>

Dorado v0.5では、アダプタートリミングが追加されたため、Porechopやduplexツールを使用したアダプタートリミングや分割はおそらく将来不要になる(レポジトリより)。

outprefix.fastq.gzが得られる。

 

2、minimap2 alignment and batching

1の出力のロングリードを指定する。reads.idはseqkitで取得できる。20スレッド指定。

#1 seqkit seq
seqkit seq -ni outprefix.fastq.gz > reads.id

#2 minimap2 alignment and batching
scripts/create_batched_alignments.sh outprefix.fastq.gz reads.id 20 outdir

outdir/を3で指定する。

 

3、Error-correction

singularityイメージを使う。モデルファイル、バッチサイズ、リードと出力を指定する。推奨バッチサイズは、VRAM40GB(32GBでも可能)のGPUでは64、VRAM80GBのGPUでは128となっている。

singularity run --nv --bind <host_path>:<dest_path> herro.sif inference --read-alns outdir -t <feat_gen_threads_per_device> -d <gpus> -m model_v0.1.pt -b <batch_size> <preprocessed_reads> <fasta_output> 

(レポジトリより)GPU は ID を使って指定する。例えば、パラメータ -d の値が 0,1,3 に設定された場合、herro は 1 番目、2 番目、4 番目の GPU カードを使用する。パラメータ -t はデバイスごとに与えられる - 例えば、-t が 8 に設定され、3 つの GPU が使われる場合、herro は合計で 24 の特徴生成パッドを作成する。

 

 

メモ

  • 論文のR-HERO、F-HERO、L-HEROはRatatosk、FMLRC、LoRDECの3つの反復を指す。
  • 論文では、DBGベースのHybrid error correction (HEC) 手法であるLoRDEC、FMLRC、Ratatosk のいずれかを用いてTGSリードを事前補正している。FMLRC、LoRDEC、およびRatatoskとも、最初の3ラウンドの反復で結果が著しく改善している。
  • レポジトリには、HG002のHifi reads/Duplex ONT reads/Corrected UL readsを使ってHifiasmでアセンブルした結果の表が提示されている。未訂正Duplex ONT readsよりHERRO Corrected readsの方が著しくアセンブリが改善されていて、エラー率では及ばないものの、連続性ではHifiリードを上回っている。

引用

Hybrid-hybrid correction of errors in long reads with HERO
Xiongbin Kang, Jialu Xu, Xiao Luo & Alexander Schönhuth 
Genome Biology volume 24, Article number: 275 (2023) 

 

関連

ナノポアのアダプタートリミングツール Porechop