macでインフォマティクス

macでインフォマティクス

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

生物医学ナリッジを紐解くためのAI駆動文献リソース PubTator 3.0

 

PubTator 3.0(https://www.ncbi.nlm.nih.gov/research/pubtator3/)は、タンパク質、遺伝子バリアント、疾患、化学物質のような主要な概念の意味と関係性の検索を提供する最先端のAI技術を用いた生物医学文献リソースである。現在、約3600万件のPubMed abstractsとPMCオープンアクセスサブセットからの600万件のフルテキスト論文にわたって、10億件以上の entityとrelationのアノテーションを提供し、毎週更新されている。PubTator 3.0のオンラインインターフェースとAPIは、これらの事前計算されたエンティティ関係と同義語を利用して、高度な検索機能を提供し、大規模な分析を可能にし、多くの複雑な情報ニーズを合理化する。PubTator3.0がPubMedGoogle Scholarよりも多くの論文を検索し、上位20位までの検索結果の精度が高いことを実証する。さらに、ChatGPT (GPT-4)をPubTator APIと統合することで、その応答の事実性と検証可能性が劇的に向上することを示す。要約すると、PubTator 3.0は、研究者が増え続ける生物医学文献の富をナビゲートし、研究を迅速化し、科学的発見のための貴重な洞察を解き放つことを可能にする機能とツールの包括的なセットを提供する。

 

Tutorial

https://www.ncbi.nlm.nih.gov/research/pubtator3/tutorial

 

チュートリアルより

PubTatorは最初に開発された2013年以来、PubTator3への主要なアップグレードを経て進化してきた。PubTator3は以下のような新機能を備えている。

  • AIONER,tmVar3,GNorm2などの新しく開発されたAIツールによるエンティティのアノテーションの改善
  • 関係抽出のための最先端の変換器ベースの手法であるBioRExによって利用可能になった6つのバイオエンティティ間の新しい関係アノテーション
  • クエリーオートコンプリートによる新しいセマンティック検索機能
  • PubMedの3,500万件以上のAbastract全体と、PMC Text Miningサブセットの約600万件のフルテキスト論文への統一されたアクセスの提供
  • 主要なバイオエンティティとその関係のハイライトを特徴とする、より包括的な視覚化
  • 高性能なエンティティ検索エンジンを使用し、同じエンティティの異なるフォームを一意の標準化された名前に正規化し、一致するすべての出版物を返す
  • 疾患、化学物質、遺伝子、バリアントなど、2つのエンティティ間の特定の関係を含む出版物のみを返すように結果をフィルタリングできる

 

webサービス

https://www.ncbi.nlm.nih.gov/research/pubtator3/にアクセスする。

チュートリアルより)PubTator3で使用されているすべてのPubMedアブストラクトとPMCオープンアクセスのフルテキスト論文は、キーワードによって十分にインデックス化されている。Googleで検索するように、"breast cancer "などのキーワードを使って検索したキーワードを含む論文を検索できる。   

 

キーワードで検索する。図の様に検索キーワードをANDで組み合わせることができる。

また、(@DISEASE_COVID_19 AND complications) OR @DISEASE_Post_Acute_COVID_19_Syndromeのように、ORと括弧の併用もできる。

 

Doxorubicin(ドキソルビシン)と途中までタイプすると、

オートコンプリート機能により単語全体が補完され、さらに正規化されたバイオエンティティのリスト(normalized entities)が推定され、フリーテキストのクエリを対応する意味概念("@CHEMICAL_Doxorubicin")に変換する(チュートリアルより)。

 

@CHEMICAL_Doxorubicinに変換された。

 

検索結果例

ヒットした文献の一覧が表示される。

総文献数(上)、出版年別文献数(右上)、ジャーナル別文献数(左)、出版タイプ別文献数(左)など、検索結果の統計情報をユーザーに提供する。

 

デフォルトでは関連性のランキング順でソートされている。上のボタン(Recency)から最新の出版物順にソートできる。

 

ヒットは条件でフィルタリングできる。section、ジャーナル名、出版のタイプなど。

 

右上にはpublication数の年間推移が出ており、2020年から急に増えて、2023年になると減っていることが分かる(注;横軸の出版年はpublication順で並べ替えられている)。


ヒットした文献を1つ見てみる。デフォルトで検索に使用したエンティティがハイライト表示されている。

Abstractやアノテーション付きエンティティ、抽出された関係を含む論文の詳細が表示されている。論文のfull textが利用できる場合、full text全体がこのページに表示されている。

 

ページの左側には、その論文で言及された注釈付きバイオエンティティの要約と抽出された関係のリストが表示されている。

 

任意のエンティティをクリックすると、文献のエンティティ部分がハイライト表示される。

pon1

 

下の方にある RELATIONSのエンティティをクリックすると、文献のエンティティ間ペアをハイライト表示できる。

 

(マニュアルより)右上のShow Bioconceptsは、ユーザーが文献記事中の異なるタイプのエンティティをハイライトするために提供されている。

 

(ハイライトされていなくても)文献記事中の単語をクリックすると、そのエンティティの概要を示すウィンドウが表示される。

SARSをクリックした。

 

ARDSをクリックした。

NCBI MeSH (Medical Subject Headings) にリンクしている。

 

お気に入りの記事は、コレクションに保存したり、検索結果の記事リストとしてダウンロードできる。

 

コレクションに文献記事を登録した場合、Playlistsからリスト毎に参照できる。

 

その他

  • 従来同様、プログラミングを通じて出版物をエクスポートしたり、特定の関連物に関する情報を照会したりするためのAPIが提供されている(PubTator3のAPIは前身のAPIとは異なる)。PubTator3サーバーに過負荷をかけないようにするため、1秒間に3件以下のリクエストしか投稿しないようにとの注意書がある。Link

引用

PubTator 3.0: an AI-powered literature resource for unlocking biomedical knowledge 
Chih-Hsuan Wei,   Alexis Allot,   Po-Ting Lai,   Robert Leaman,   Shubo Tian,   Ling Luo,   Qiao Jin, Zhizheng Wang,   Qingyu Chen,   Zhiyong Lu
Nucleic Acids Research, Published: 04 April 2024

 

PubTator central: automated concept annotation for biomedical full text articles

Chih-Hsuan Wei, Alexis Allot, Robert Leaman, Zhiyong Lu

Nucleic Acids Research, 2019 Jul 2;47(W1):W587-W593

 

PubTator: a web-based text mining tool for assisting biocuration

Chih-Hsuan Wei, Hung-Yu Kao, Zhiyong Lu

Nucleic Acids Research. 2013 Jul;41(Web Server issue):W518-22

 

関連

生命科学実験の検索・提案のためのウェブアプリケーション LEXAS

オンラインで大規模コピー数多型変異の臨床的解釈を行うために開発された CNV-ClinViewer

 

 病因となるコピー数多型バリアント(CNV)は、希少かつ重篤な疾患の不均一なスペクトルを引き起こす可能性がある。しかし、ほとんどのCNVは良性であり、ヒトゲノムのnatural variationの一部である。CNVの病原性の分類、遺伝子型-表現型解析、治療標的の同定は、困難で時間のかかる作業であり、専門家による複数の散在した情報源からの情報の統合と解析が必要である。ここでは、CNVの臨床評価と視覚的探索のためのオープンソースウェブアプリケーションであるCNV-ClinViewerを紹介する。このアプリケーションは、ユーザーフレンドリにデザインされたインターフェイスで、大規模なCNVデータセットをリアルタイムでインタラクティブに探索することができ、ClassifCNVツールを統合することで、ACMGガイドラインに従った半自動臨床CNV解釈を容易にする。臨床的判断と組み合わせることで、このアプリケーションは臨床医や研究者が新しい仮説を立て、意思決定プロセスを導くことを可能にする。その結果、CNV-ClinViewerは、臨床研究者の患者ケアと基礎科学者のトランスレーショナルゲノム研究を強化する。

ウェブアプリケーションhttps://cnv-ClinViewer.broadinstitute.orgオープンソースコードはhttps://github.com/LalResearchGroup/CNV-clinviewerで利用できる。

 

Github

(ShinyAppでCNV-ClinViewerをローカルサーバーでホストする簡単な手順が説明されている)

 

about(上のメニューから選択)

https://cnv-clinviewer.broadinstitute.org/

 

aboutより

CNV-ClinViewerのために、RスタジオのShinyフレームワークを使用して、患者および一般集団から得られた25万を超えるCNVのデータと、一般に入手可能なゲノム、バイオインフォマティクス、および臨床アノテーションを統合した。既存のCNV分類ツールをCNV-ClinViewerに統合し、180以上の遺伝子セットライブラリにおけるエンリッチメント解析へのアクセスを提供する。バイオインフォマティクスの専門知識がなくても有効性と使いやすさを保証するため、リアルタイムの結果、視覚化、ユーザーフレンドリーなインターフェースデザインによるインタラクティブなワークフローを重視した。

 

webサービス

https://cnv-ClinViewer.broadinstitute.orgにアクセスする。

CNV-ClinViewerは、大規模なコピー数多型バリアント(CNV)のインタラクティブな可視化、ゲノム探索、標準化された臨床的意義の解釈のためのユーザーフレンドリーなウェブアプリケーション

 

(マニュアルより)CNVデータをアップロードした後、CNV-ClinViewerは以下を可能にする:
a) 2019 ACMG/ClinGen Technical Standards for CNVsに基づく半自動CNV臨床的意義分類、
b) アップロードされたCNVを他の病原性CNVデータセットや一般集団CNVデータセットと比較し、インタラクティブに視覚的に検査する、
c) 様々な遺伝子投与感受性スコア、臨床アノテーション、遺伝子セットエンリッチメント解析によるゲノムコンテンツの評価と優先順位付け、および
d) 臨床的意義を含む包括的な個々のCNVレポートの作成

 

CNVをレポートしたTSV | BED | XLSXファイルをアップロードする。

タブ区切りのテキストファイル、または以下の列を含むエクセルファイルを認識する。

1-4列は必須で、5-7列は任意

  1. CHR:染色体(例:'chr1')
  2. START:CNVのゲノムスタート座標 
  3. END:CNVのゲノムエンド座標
  4. TYPE:CNVのタイプ('DEL'または'DUP') 
  5. ID:サンプルID/識別子(同じサンプルIDを持つCNVは同じ行に表示される。)
  6. POINTS:CNVは2019 ACMG/ClinGen Technical Standards for CNVsに基づいて自動的に分類される。コピー数ロスの評価されるエビデンスカテゴリーは以下の通りである: 1A/B、2A-H、3A-C、4O、コピー数ゲインの場合: 1A/B、2A-H、2J-L、3A-C、4O。家族歴や「de novo」の状態など、さらなる情報がある場合は、「POINTS」欄の非評価エビデンスカテゴリーの合計点を数値で示すことができる(例:-1、0.9)。
  7. FILTER_'name': フィルタリングのための追加バイナリ変数(値1(='yes')および値0(='no')。変数名は 'FILTER_' の後に記述する。

(マニュアルより転載、BEDXLSX

 

サブミットすると解析ページに移動する。ページの上部には、下の写真のようなCNVの注釈付きのClassification of CNVs tableが表示される。表の各列でフィルタリングできる。

アップロードされた CNV は、ClassifyCNV ツールによって2019 ACMG/ClinGen Technical Standards for CNVs に基づいて分類される。最終的な分類は、ClassifyCNVのスコアと、ユーザーによる手作業で評価されたエビデンスカテゴリーの追加スコアから得られる。

スコアリング

病原性:0.99点以上

病原性の可能性:0.90~0.98点

意義不明のバリアント: 0.89~-0.89点

良性の可能性が高い: -0.90~-0.98点

良性: -0.99ポイント以下

 

上の表で関心のあるCNVをクリックすると詳細が表示される。

(マニュアルより)html形式のレポートをダウンロードできる。

 

report例

レポートには、地域の要約情報、CNVの分類、および2019年のACMG/ClinGen Technical Standards for CNVsの評価されたエビデンスカテゴリーで与えられた具体的なスコアが含まれている。

 

Viewer

イデオグラムは選択した CNV の染色体全体での位置とその染色体バンドを表示している。ドラッグして囲むことで下のトラックで視覚化する領域を変更できる。

 

CNVs in ClinVar

 

Microdeletion and microduplication syndromes from DECIPHER

CNV allele frequency from 482,734 individuals in the UK-Biobank (filtered for CNVs > 50kb)

CNV allele frequency from 14,891 genomes (gnomAD; filtered for CNVs > 50kb)

アクセスしてみてください。

 

引用
CNV-ClinViewer: enhancing the clinical interpretation of large copy-number variants online

Marie Macnee, Eduardo Pérez-Palma, Tobias Brünger, Chiara Klöckner, Konrad Platzer, Arthur Stefanski, Ludovica Montanucci, Allan Bayat, Maximilian Radtke, Ryan L Collins, Michael Talkowski, Daniel Blankenberg , Rikke S Møller, Johannes R Lemke, Michael Nothnagel, Patrick May, Dennis Lal 

Bioinformatics. 2023 May 4;39(5):btad290

 

ギャップフリーゲノムアセンブリとセントロメリックリピート同定のためのT2Tツールキット quarTeT

2024/04/08 CLI追記

 

 高品質なゲノムは、機能的、進化的、比較ゲノム研究の基礎である。telomere-to-telomere (T2T)アセンブリという新しい時代の到来とともに、複雑な染色体構造や高度な反復配列の解明に注目が集まっている。しかし、T2Tゲノムの自動構築や特性解析のためのバイオインフォマティクスツールは限られている。本著者らは、ユーザーフレンドリーなウェブツールキットQuarTeT: AssemblyMapper、GapFiller、TeloExplorer、CentroMinerを開発した。まずAssemblyMapperは、相補的なコンティグを近縁のゲノムを参照して染色体レベルのゲノムにアセンブルするように設計されている。次にGapFillerは、ウルトラロングの追加シークエンシングの助けを借りて、与えられたゲノムの閉じていないギャップをすべて埋めるように努める。最後に、TeloExplorerとCentroMinerが、テロメアセントロメアの候補と、各染色体上の局在を同定するために適用される。これら4つのモジュールは、T2Tゲノムのアセンブリやキャラクタリゼーションに単独で、あるいは組み合わせて使用することができる。 ケーススタディとして、quarTeTのモジュール機能を全て採用することで、手作業を加えてアセンブルされたHongyang v4.0の報告ゲノムに匹敵する品質のActinidia chinensisゲノムアセンブルを達成した。さらに、シロイヌナズナおよび Oryza sativaゲノムのセントロメアを検索してCentroMinerを評価した結果、QuarTeTはこれまで実験的手法によって検出されてきたすべてのセントロメア領域を同定できることが示された。QuarTeTは、大規模なT2Tゲノムの研究のための効率的なツールキットであり、登録なしでhttp://www.atcgn.com:8080/quarTeT/home.htmlで利用できる。

 

web guide

http://www.atcgn.com:8080/quarTeT/docuWeb.html

CLI tutorial

http://www.atcgn.com:8080/quarTeT/docuCLI.html

 

QuarTeTのワークフロー。論文より転載

 

ここではwebサービスについて紹介します。

webサービス

http://www.atcgn.com:8080/quarTeT/home.htmlにアクセスする。

4つのツールが利用できる。左側から見ていく。

 

1、AssemblyMapper - リファレンスガイドアセンブルツール
入力として、phased contig-level assemblyと、近縁のリファレンスゲノムが必要。このようなphasingされたアセンブリは hifiasm を使って取得することが推奨されている。hifiasmで生成した{prefix}.bp.hap1.p_ctg.gfaと{prefix}.bp.hap2.p_ctg.gfaを別々にFASTA形式に変換して指定する。

圧縮されていない生のリファレンスゲノムfastaファイルを指定するかアップロードする。

 

続いて圧縮されていないphased contig assemblyのfastaファイルをアップロードする。

 

任意でパラメータを設定後にRUNする。

コメント:AssemblyMapperとGapFillerはランタイムが非常に長い(エラーを起こしている可能性がある)。ローカルでランした方が早いと思われる。

 

2、GapFiller  - ロングリードベースのギャップフィリングツール
入力として、gap-tied genome(ギャップで繋がれたscaffolds)とそれに対応するロングリードが必要(リードの代わりにロングリードをアセンブルしてポリッシュしたコンティグを使用すると、品質が向上する可能性がある)。

 

gap-tied genome、(ウルトラ)ロングリードをアップロードする。

任意でパラメータを設定してRUNする。

 

3、TeloExplorer - テロメア同定ツール

fasta形式のゲノムファイルが必要。

 

 

 

4、CentroMiner - セントロメア予測ツール
fasta形式のゲノムファイルが入力として必要。

オプションとして、gff3形式のTEアノテーション(またはLTRアノテーションのみ)を追加入力すると、パフォーマンスが向上する。TEアノテーションはEDTAで取得することが推奨される(EDTAで生成された<prefix>.mod.EDTA.TEanno.gff3は、配列IDが15文字以上でない限り、直接CentroMinerに入力できる。配列IDはゲノムと一致している必要がある。3列目の配列オントロジーには、"LTR "を含めると認識される)。

 

 

CLIのコマンドについて追記

依存するツール

  • Python3 (>3.6, tested on 3.7.4 and 3.9.12)
  • Minimap2 (tested on 2.24-r1122 and 2.24-r1155-dirty)
  • MUMmer4 (tested on 4.0.0rc1)
  • trf (tested on 4.09)
  • CD-hit (tested on 4.6 and 4.8.1)
  • BLAST+ (tested on 2.8.1 and 2.11.0)
  • tidk (tested on 0.2.1 and 0.2.31)
  • gnuplot (tested on 4.6 patchlevel 2 and 6)
  • R (>3.5.0, tested on 3.6.0 and 4.2.2)
  • RIdeogram (tested on 0.2.2)

#環境作成と依存ツールの導入
mamba create -n quartet --channel conda-forge --channel bioconda Python Minimap2 MUMmer4 trf CD-hit BLAST tidk R R-RIdeogram gnuplot
conda activate quartet python=3.9 -y

#本体
git clone https://github.com/aaranyue/quarTeT.git
cd quarTeT/

> python3 quartet.py

quarTeT: Telomere-to-telomere Toolkit

version 1.1.8

 

Usage: python3 quartet.py <module> <parameters>

 

Modules:

AssemblyMapper | am Assemble draft genome.

GapFiller | gf Fill gaps in draft genome.

TeloExplorer | te Identify telomeres.

CentroMiner | cm Identify centromere candidates.

 

Use <module> -h for module usage.

> python3 quartet.py AssemblyMapper -h

usage: quartet_assemblymapper.py [-h] -r REFERENCE_GENOME -q CONTIGS [-c MIN_CONTIG_LENGTH] [-l MIN_ALIGNMENT_LENGTH] [-i MIN_ALIGNMENT_IDENTITY] [-p PREFIX] [-t THREADS] [-a {minimap2,mummer}]

                                 [--nofilter] [--plot] [--overwrite] [--minimapoption MINIMAPOPTION] [--nucmeroption NUCMEROPTION] [--deltafilteroption DELTAFILTEROPTION]

 

options:

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

  -r REFERENCE_GENOME   (*Required) Reference genome file, FASTA format.

  -q CONTIGS            (*Required) Phased contigs file, FASTA format.

  -c MIN_CONTIG_LENGTH  Contigs shorter than INT (bp) will be removed, default: 50000

  -l MIN_ALIGNMENT_LENGTH

                        The min alignment length to be select (bp), default: 10000

  -i MIN_ALIGNMENT_IDENTITY

                        The min alignment identity to be select (%), default: 90

  -p PREFIX             The prefix used on generated files, default: quarTeT

  -t THREADS            Use number of threads, default: 1

  -a {minimap2,mummer}  Specify alignment program (support minimap2 and mummer), default: minimap2

  --nofilter            Use original sequence input, no filtering.

  --plot                Plot a colinearity graph for draft genome to reference alignments. (will cost more time)

  --overwrite           Overwrite existing alignment file instead of reuse.

  --minimapoption MINIMAPOPTION

                        Pass additional parameters to minimap2 program, default: -x asm5

  --nucmeroption NUCMEROPTION

                        Pass additional parameters to nucmer program.

  --deltafilteroption DELTAFILTEROPTION

                        Pass additional parameters to delta-filter program.

 

> python3 quartet.py GapFiller -h

usage: quartet_gapfiller.py [-h] -d DRAFT_GENOME -g GAPCLOSER_CONTIG [GAPCLOSER_CONTIG ...] [-f FLANKING_LEN] [-l MIN_ALIGNMENT_LENGTH] [-i MIN_ALIGNMENT_IDENTITY] [-m MAX_FILLING_LEN]

                            [-p PREFIX] [-t THREADS] [--enablejoin] [--joinonly] [--overwrite] [--minimapoption MINIMAPOPTION]

 

options:

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

  -d DRAFT_GENOME       (*Required) Draft genome file to be filled, FASTA format.

  -g GAPCLOSER_CONTIG [GAPCLOSER_CONTIG ...]

                        (*Required) All contigs files (accept multiple file) used to fill gaps, FASTA format.

  -f FLANKING_LEN       The flanking seq length of gap used to anchor (bp), default: 5000

  -l MIN_ALIGNMENT_LENGTH

                        The min alignment length to be select (bp), default: 1000

  -i MIN_ALIGNMENT_IDENTITY

                        The min alignment identity to be select (%), default: 40

  -m MAX_FILLING_LEN    The max sequence length acceptable to fill any gaps, default: 1000000

  -p PREFIX             The prefix used on generated files, default: quarTeT

  -t THREADS            Use number of threads, default: 1

  --enablejoin          Enable join mode to close the gaps. (Unstable)

  --joinonly            Use only join mode without fill, should be used with --enablejoin.

  --overwrite           Overwrite existing alignment file instead of reuse.

  --minimapoption MINIMAPOPTION

                        Pass additional parameters to minimap2 program, default: -x asm5

 

> python3 quartet.py TeloExplorer -h

usage: quartet_teloexplorer.py [-h] -i GENOME [-c {plant,animal,other}] [-m MIN_REPEAT_TIMES] [-p PREFIX]

 

options:

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

  -i GENOME             (*Required) Genome file to be identified, FASTA format.

  -c {plant,animal,other}

                        Specify clade of this genome. Plant will search TTTAGGG, animal will search TTAGGG, other will use tidk explore's suggestion, default: other

  -m MIN_REPEAT_TIMES   The min repeat times to be reported, default: 100

  -p PREFIX             The prefix used on generated files, default: quarTeT

 

 

> python3 quartet.py CentroMiner -h

usage: quartet_centrominer.py [-h] -i GENOME_FASTA [--TE TE] [-n MIN_PERIOD] [-m MAX_PERIOD] [-s CLUSTER_IDENTITY] [-d CLUSTER_MAX_DELTA] [-e EVALUE] [-g MAX_GAP] [-l MIN_LENGTH] [-t THREADS]

                              [-p PREFIX] [--trf [TRF_PARAMETER ...]] [-r MAX_TR_LENGTH] [--overwrite]

 

options:

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

  -i GENOME_FASTA       (*Required) Genome file, FASTA format.

  --TE TE               TE annotation file, gff3 format.

  -n MIN_PERIOD         Min period to be consider as centromere repeat monomer. Default: 100

  -m MAX_PERIOD         Max period to be consider as centromere repeat monomer. Default: 200

  -s CLUSTER_IDENTITY   Min identity between TR monomers to be clustered (Cannot be smaller than 0.8). Default: 0.8

  -d CLUSTER_MAX_DELTA  Max period delta for TR monomers in a cluster. Default: 10

  -e EVALUE             E-value threholds in blast. Default: 0.00001

  -g MAX_GAP            Max allowed gap size between two tandem repeats to be considered as in one tandem repeat region. Default: 50000

  -l MIN_LENGTH         Min size of tandem repeat region to be selected as candidate. Default: 100000

  -t THREADS            Limit number of using threads, default: 1

  -p PREFIX             Prefix used by generated files. Default: quarTeT

  --trf [TRF_PARAMETER ...]

                        Change TRF parameters: <match> <mismatch> <delta> <PM> <PI> <minscore> Default: 2 7 7 80 10 50

  -r MAX_TR_LENGTH      Maximum TR length (in millions) expected for trf. Default: 3

  --overwrite           Overwrite existing trf dat file instead of reuse.

(

 

ラン

#1. AssemblyMapper (90% identity, 20 threads, minimap2)
python3 quartet.py AssemblyMapper -q phased.contig.fa -r ref.fa -i 90 -t 20 -p prefix -a minimap2

#2. GapFiller
python3 quartet.py GapFiller -d draft.genome.fa -g gap-closer_contig.fa

#3. TeloExplorer (plant type)
python3 quartet.py TeloExplorer -i genome.fa -c plant -p prefix

#4. CentroMiner (20 threads)
python3 quartet.py CentroMiner -i genome.fa --te TE.annotation.gff3 -t 20 -p prefix

 

論文より

  • 最近発表されたゲノムアセンブリパイプラインの中で、quarTeTツールキットはユニークな位置にある。TRITEXは、超ロングリードとHi-Cリードとオープンリソースツールを用いて、高品質なゲノムをアセンブルするパイプラインを記述しているが、自動ワークフローを実現していない一方、(中略)QuarTeTでは、T2Tゲノムを自動的にアセンブルすることができる。RagTagは、参照ゲノムと追加的なウルトラロングシークエンシングの助けを借りて、高品質なゲノムを組み立てるパイプラインを提供するが、参照ゲノムが信頼できることを前提としている。RagTag 'パッチ'は、最終的にギャップを埋めるために変異を廃棄したり、大きなセグメントを挿入したりする積極的な戦略を適用する。また入力と一致しない順序ですべての配列の名前を変更し、ユーザーを混乱させる。quarTeTツールキットは保守的な戦略を採用し、変異の損失を避けるために生の配列を変更することはない。

  • ほとんどの研究では、TRFプログラムがセントロメリックリピート領域の予測に用いられている。しかし、アクチニジアの種でこの戦略を試したとき、ほとんどの染色体でタンデムリピートに富む領域を見つけることができなかった。この問題を解決するために、新しい方法CentroMinerを開発した。CentroMinerの一般的な有効性と正確性を確認するために、A. thalianaとO. sativaゲノムのセントロメアを同定した。A. thalianaゲノムで同定されたセントロメアは、以前の研究で報告された領域と完全に一致し、O. sativaで同定されたセントロメア領域は、以前の研究で定義された領域よりもわずかに広かったが、コア領域は一致していた。(中略)StringDecomposeやHiCATは、与えられたゲノム配列中のセントロメア領域を効率的に見つけることができるが、入力として既知のセントロメアリピートモノマーを必要とし、よく研究されている種のセントロメアしか同定できない。対照的に、CentroMinerは、研究が不足している種のセントロメアを同定し、セントロメアリピートモノマーの重要な変化を発見することができる。
  • ただし、CentroMinerを複雑なゲノムに使用する場合には欠点に注意する必要がある。CentroMinerの方法では、候補からセントロメアを決定するために手作業によるチェックが必要である(複雑なゲノムの場合、セントロメア領域よりも関連性のないリピートに富んだ領域の方が高得点になり、セントロメアが見落とされることもある)。

 

引用

quarTeT: a telomere-to-telomere toolkit for gap-free genome assembly and centromeric repeat identification 
Yunzhi Lin,   Chen Ye,   Xingzhu Li,   Qinyao Chen,   Ying Wu,   Feng Zhang,   Rui Pan,   Sijia Zhang,   Shuxia Chen,   Xu Wang, Shuo Cao,   Yingzhen Wang,   Yi Yue,   Yongsheng Liu,   Junyang Yue

Horticulture Research, Volume 10, Issue 8, August 2023, uhad127

 

関連

LTRレトロトランスポゾンを識別可能な割合でゲノムアセンブリを評価するIndex LAI

 

BinDash 2.0

 

 公開データベースに寄託される微生物ゲノムの数が増加しているため、多数のゲノムをゲノム距離という観点から比較することは、ますます困難になってきている。現在では、数百万から数十億のゲノム間のペアワイズ距離を推定する必要がある。このような比較を効率的に実行できるソフトウェアはほとんどない。

 本論文では、1兆スケールでの超高速かつ高精度なゲノム検索と比較を実現するために、いくつかの新しいMinHashアルゴリズムと計算最適化(Simple Instruction Multiple Data, SIMDなど)を実装し、マルチスレッドソフトウェアBinDashを更新した。すなわち、SIMDによる最適化・高速化により、b-bit one-permutation rolling MinHashを実装した。BinDash 2では、0.1兆(または約10^11)組のゲノム比較を1.8時間(Descent computer cluster)または数時間(個人用ラップトップ)で行うことができる。BinDashによって推定されたANI(平均ヌクレオチド同一性)は、FastANIやアラインメントベースのANIのような、正確であるがはるかに遅いANI推定器とよく相関している。FastANIを用いた9万ゲノム(約10^9比較)の比較から得られた知見と一致し、BinDash2を用いた約10^11の原核生物ゲノムの比較においても、85%から95%のANIギャップは一貫しており、これは、種のような単位(例えば、95%以上のANI)を一緒に保つ基本的な生態学的および進化的な力を示している。BinDashはApache 2.0ライセンスで公開されている。

 

インストール

リリースからSIMDサポートのBinDash_Linux_x86-64_v2.1.tar.gzをダウンロードして使用した(ubuntu20使用)。

ビルド依存

  • any C++ compiler supporting the C++11 standard
  • CMake version 2.6 or plus
  • zlib

本体 Github

wget https://github.com/jianshu93/bindash/releases/download/v2.1/BinDash_Linux_x86-64_v2.1.tar.gz
tar zxvf BinDash_Linux_x86-64_v2.1.tar.gz
chmod +x bindash
./bindash

#conda(link)
mamba install bindash -c bioconda -y

> bindash 

  .______    __  .__   __.  _______       ___         ____.  __    __ 

  |   _  \  |  | |  \ |  | |       \     /   \       /    | |  |  |  |

  |  |_)  | |  | |   \|  | |  .--.  |   /  ^  \     |  (--` |  |__|  |

  |   _  <  |  | |  . `  | |  |  |  |  /  /_\  \     \  \   |   __   |

  |  |_)  | |  | |  |\   | |  '--'  | /  _____  \  .--)  |  |  |  |  |

  |______/  |__| |__| \__| |_______/ /__/     \__\ |____/   |__|  |__|

 

 

👽👽👽

 

B-bit One-Permutation Rolling MinHash with Optimal/Faster

Densification for Genome Search and Comparisons.

Or Binwise Densified MinHash.

 

Usage:

  ./bindash <commmand> [options] [arguments ...]

 

Commands:

 

  sketch: reduce mutiple genomes into one sketch.

    A genome corresponds to a input sequence file.

    A sketch consists of a set of output files.

 

  dist: estimate distance (and relevant statistics) between

    genomes in query sketch and genomes in target-sketch.

    Query and target sketches are generated by the sketch command.

 

  exact: estimate distance (and relevant statistics) between

    genomes corresponding to input files.

 

Notes:

 

  To see command-specific usage, please enter

    ./bindash command --help

 

  To see version information, please enter

    ./bindash --version

 

  The format for options is --NAME=VALUE

>  bindash --version

バージョンを表示させると0.3と出る。

 

実行方法

1、ゲノムごとにsketchファイルの作成

bindash sketch --outfname=genomeA.sketch genomeA.fasta
bindash sketch --outfname=genomeB.sketch genomeB.fasta

ゲノムごとに.sketchと.sketch.txt、.sketch.datができる。

 

2、sketchファイルの比較

bindash dist genomeA.sketch genomeB.sketch

出力される内容

  • クエリゲノム (Q)
  • ターゲットゲノム (T)
  • QとT間の変異距離
  • 変異距離のp値
  • QとT間のJaccard指数
    実験と理論解析によると、スケッチサイズ(skethchsize64オプション)は、ANIが99.5%以上のゲノムペアに対して正確であるためには、188より大きくなければならない(実際のスケッチサイズは〜12,000より大きい)。

 

 

引用

BinDash 2.0: New MinHash Scheme Allows Ultra-fast and Accurate Genome Search and Comparisons

Jianshu Zhao, Xiaofei Zhao, Jean Pierre-Both, Konstantinos T. Konstantinidis

bioRxiv, Posted March 14, 2024.

 

関連

MinHashスケッチで数百万個のバクテリアゲノムの高速クラスタリング解析を可能にする RabbitTClust

ゲノムからITS配列を抽出する extractITSスクリプト

 

ITSx (Bengtsson-Palme et al., 2013)は、ゲノムFastaファイルからITS配列を抽出するためのリファレンスベースのメソッドであるが、非常に時間がかかる。最近、リボソームRNA遺伝子を高速かつ正確に特定するBarrnapが開発された。この2つのソフトウェアを組み合わせて配列比較を行うことにより、このスクリプトは真菌ゲノムからのITS配列の高速抽出を可能にする。

 

インストール

ubunutu20でpython3.6の環境を作ってテストした。

依存

本体 Github

mamba create -n ITS python=3.6 -y
conda activate ITS
#古いbiopythonが必要、ここでは1.60をインストール
pip install biopython==1.60
#pandas, barrnapも必要
mamba install pandas -y
mamba install -c bioconda barrnap -y
#itsx (conda)
mamba install -c bioconda itsx -y

#本体
git clone https://github.com/fantin-mesny/Extract-ITS-sequences-from-a-fungal-genome.git
cd Extract-ITS-sequences-from-a-fungal-genome/

python extractITS.py -h

$ python extractITS.py -h

usage: extractITS.py [-h] -i I -o O [-which WHICH] [-cpu CPU] [-name NAME]

 

Extract ITS1 from fungal genome rapidly

 

optional arguments:

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

  -i I, --i I           input genome file

  -o O, --o O           output directory

  -which WHICH, --which WHICH

                        Which ITS sequence to extract (ITS1|ITS2) default=ITS1

  -cpu CPU, --cpu CPU   number of threads/cores to use

  -name NAME, --name NAME

                        name

 

 

 

実行方法

ゲノムからITS II配列を抽出する。

mkdir outdir
python extractITS.py -which ITS2 -i genome.fasta -o outdir -name mySpecies
  • -which    Which ITS sequence to extract (ITS1|ITS2) default=ITS1
  • -name     name

出力例(-nameで指定した名前が抽出されたITS配列ファイル名のprefixとなる)

 

引用

https://github.com/fantin-mesny/Extract-ITS-sequences-from-a-fungal-genome?tab=readme-ov-file

 

参考

https://pubmed.ncbi.nlm.nih.gov/23350562/

"本研究では、真菌のDNAメタバーコーディングマーカーとしてのITS1とITS2の使い分けを評価した。バイオインフォマティクスパイプラインClustExを用いた分類学的に既知の配列のクラスタリング解析の結果、ITS1、ITS2ともに、類似度97%カットオフがデータセット中の既知の種の数を推定するための妥当な閾値であることが明らかになった。また、多くの種が複数のクラスターにまたがって分布しているため、OTU(Operational Taxonomic Unit:操作分類学的単位)の概念を種のレベルに変換することは容易ではないことがわかった。"

 

*1

ITSについて

リボソームオペロンのスモールサブユニット遺伝子とラージサブユニット遺伝子(それぞれSSU/18SとLSU/28S)は比較的保存されており、主に大規模な系統推定や系統分類に用いられている。これらの間にある約550塩基対(bp)の長さのlong internal transcribed spacer(ITS)領域はより変化に富んでおり、属レベルの系統推定、種の区切り、種の同定を解読するために応用されている(Eberhardt 2010)。植物や動物など、他のいくつかの真核生物グループでも同様の役割を果たしている。

 

関連

真菌のITSやコアタンパク質コード遺伝子を使った系統解析を自動で実行する UFCG pipeline

 

複雑なメタゲノムおよびメタトランススクリプトームデータをアセンブルする PenguiN

 

 メタゲノミクスは、環境およびヒトに関連する微生物群集を研究するための強力なアプローチであり、特に、それらの形成におけるウイルスの役割を研究するためのアプローチでもある。ウイルスゲノムは、高い突然変異率によるゲノムの多様性のため、メタゲノムサンプルからアセンブルすることは困難である。標準的なde Bruijnグラフアセンブラでは、このゲノムの多様性により、ループやバルジが多数存在する複雑なk-merアセンブラグラフになり、k-merサイズ以上離れたバリアントは位相を合わせる事ができないため、株やハプロタイプに解像することは困難である。一方、オーバーラップアセンブラでは、バリアントが1つのリードでカバーされている限り、バリアントの位相を合わせる事が可能である。ここでは、ショットガンメタゲノミクスから得られたウイルスDNAおよびRNAゲノムと細菌16S rRNAのstrain resolvedアセンブルのためのソフトウェアであるPenguiNを紹介する。PenguiNは、すべてのリードのオーバーラップを線形時間で網羅的に検出し、ベイズモデルによって菌株分解された拡張を選択することで、さまざまなリアルデータセットやシミュレーションショートリードデータセットから、従来の2倍以上のウイルス株ゲノムと16S rRNAをアセンブルすることができる。

 

 

レポジトリより

PenguiNは、ショートリードシークエンシングデータを塩基レベルでアセンブルするソフトウェア。第一段階として、翻訳されたタンパク質配列の情報を用いてコーディング配列をアセンブルする。第2ステップでは、非コード領域間のリンクを作成する。PenguiNの主な目的は、複雑なメタゲノムおよびメタトランススクリプトームデータセットアセンブルである。特に16S rRNA遺伝子配列と同様にウイルスゲノムのアセンブリでテストされた。PenguiNは、MegahitやSPAdesのような最新のアセンブラに比べ、3-40倍の完全なウイルスゲノムと6倍の16S rRNA配列をアセンブルすることができる。

 

インストール

#conda
mamba install -c conda-forge -c bioconda plass -y

#docker
docker pull ghcr.io/soedinglab/plass:latest

#static build with AVX2 (fastest)
wget https://mmseqs.com/plass/plass-linux-avx2.tar.gz; tar xvfz plass-linux-avx2.tar.gz; export PATH=$(pwd)/plass/bin/:$PATH

# static build with SSE4.1
wget https://mmseqs.com/plass/plass-linux-sse41.tar.gz; tar xvfz plass-linux-sse41.tar.gz; export PATH=$(pwd)/plass/bin/:$PATH

# universal build with macOS (Intel or Apple Silicon)
wget https://mmseqs.com/plass/plass-osx-universal.tar.gz; tar xvfz plass-osx-universal.tar.gz; export PATH=$(pwd)/plass/bin/:$PATH

> penguin -h

protein-guided nucleotide assembler.

 

PenguiN Version: 5.cf8933

© Annika Jochheim (annika.jochheim@mpinat.mpg.de)

 

usage: penguin <command> [<args>]

 

Main workflows for database input/output

  guided_nuclassemble Assemble nucleotide sequences by iterative greedy overlap assembly using protein and nucleotide information

  nuclassemble      Assemble nucleotide sequences by iterative greedy overlap assembly using nucleotide information only

 

> penguin guided_nuclassemble -h

usage: penguin guided_nuclassemble <i:fast(a|q)File[.gz]> | <i:fastqFile1_1[.gz] <i:fastqFile1_2[.gz] ... <i:fastqFileN_1[.gz] <i:fastqFileN_2[.gz]> <o:fastaFile> <tmpDir> [options]

 By Annika Jochheim <annika.jochheim@mpinat.mpg.de>

options: prefilter:                     

 --alph-size TWIN                Alphabet size (range 2-21) [nucl:5,aa:13]

 --spaced-kmer-mode INT          0: use consecutive positions in k-mers; 1: use spaced k-mers [0]

 --spaced-kmer-pattern STR       User-specified spaced k-mer pattern

 --mask INT                      Mask sequences in k-mer stage: 0: w/o low complexity masking, 1: with low complexity masking [0]

 --mask-lower-case INT           Lowercase letters will be excluded from k-mer search 0: include region, 1: exclude region [0]

 --split-memory-limit BYTE       Set max memory per split. E.g. 800B, 5K, 10M, 1G. Default (0) to all available system memory [0]

 --add-self-matches BOOL         Artificially add entries of queries with themselves (for clustering) [0]

align:                         

 --cov-mode INT                  0: coverage of query and target

                                 1: coverage of target

                                 2: coverage of query

                                 3: target seq. length has to be at least x% of query length

                                 4: query seq. length has to be at least x% of target length

                                 5: short seq. needs to be at least x% of the other seq. length [1]

 -e DOUBLE                       Extend sequences if the E-value is below (range 0.0-inf) [1.000E-05]

 -a BOOL                         Add backtrace string (convert to alignments with mmseqs convertalis module) [0]

 --seq-id-mode INT               0: alignment length 1: shorter, 2: longer sequence [0]

 --gap-open TWIN                 Gap open cost (only for clustering [5]

 --gap-extend TWIN               Gap extend cost (only for clustering) [2]

 --zdrop INT                     Maximal allowed difference between score values before alignment is truncated (only for clustering) [200]

 --min-seq-id TWIN               Overlap sequence identity threshold (range 0.0-1.0) [nucl:0.990,aa:0.970]

 --min-aln-len TWIN              Minimum alignment length (range 0-INT_MAX) [0]

clust:                         

 --cluster-mode INT              0: Set-Cover (greedy)

                                 1: Connected component (BLASTclust)

                                 2,3: Greedy clustering by sequence length (CDHIT) [2]

 --clust-min-seq-id FLOAT        Seq. id. threshold passed to linclust algorithm to reduce redundancy in assembly (range 0.0-1.0) [0.970]

 --clust-min-cov FLOAT           Coverage threshold passed to linclust algorithm to reduce redundancy in assembly (range 0.0-1.0) [0.990]

kmermatcher:                   

 --kmer-per-seq INT              k-mers per sequence [60]

 --kmer-per-seq-scale TWIN       Scale k-mer per sequence based on sequence length as kmer-per-seq val + scale x seqlen [0.100]

 --adjust-kmer-len BOOL          Adjust k-mer length based on specificity (only for nucleotides) [0]

 --hash-shift INT                Shift k-mer hash initialization [67]

 --include-only-extendable BOOL  Include only extendable [1]

 --ignore-multi-kmer BOOL        Skip k-mers occurring multiple times (>=2) [1]

 -k TWIN                         k-mer length (0: automatically set to optimum) [nucl:22,aa:14]

misc:                          

 --min-length INT                Minimum codon number in open reading frames [45]

 --max-length INT                Maximum codon number in open reading frames [32734]

 --forward-frames STR            Comma-separated list of frames on the forward strand to be extracted [1,2,3]

 --reverse-frames STR            Comma-separated list of frames on the reverse strand to be extracted [1,2,3]

 --translation-table INT         1) CANONICAL, 2) VERT_MITOCHONDRIAL, 3) YEAST_MITOCHONDRIAL, 4) MOLD_MITOCHONDRIAL, 5) INVERT_MITOCHONDRIAL, 6) CILIATE

                                 9) FLATWORM_MITOCHONDRIAL, 10) EUPLOTID, 11) PROKARYOTE, 12) ALT_YEAST, 13) ASCIDIAN_MITOCHONDRIAL, 14) ALT_FLATWORM_MITOCHONDRIAL

                                 15) BLEPHARISMA, 16) CHLOROPHYCEAN_MITOCHONDRIAL, 21) TREMATODE_MITOCHONDRIAL, 22) SCENEDESMUS_MITOCHONDRIAL

                                 23) THRAUSTOCHYTRIUM_MITOCHONDRIAL, 24) PTEROBRANCHIA_MITOCHONDRIAL, 25) GRACILIBACTERIA, 26) PACHYSOLEN, 27) KARYORELICT, 28) CONDYLOSTOMA

                                  29) MESODINIUM, 30) PERTRICH, 31) BLASTOCRITHIDIA [1]

 --translate INT                 Translate ORF to amino acid [0]

 --use-all-table-starts BOOL     Use all alternatives for a start codon in the genetic table, if false - only ATG (AUG) [0]

 --id-offset INT                 Numeric ids in index file are offset by this value [0]

 --keep-target BOOL              Keep target sequences [1]

 --rescore-mode INT              Rescore diagonals with:

                                 0: Hamming distance

                                 1: local alignment (score only)

                                 2: local alignment

                                 3: global alignment

                                 4: longest alignment fulfilling window quality criterion [3]

 --dbtype INT                    Database type 0: auto, 1: amino acid 2: nucleotides [0]

 --shuffle BOOL                  Shuffle input database [1]

 --createdb-mode INT             Createdb mode 0: copy data, 1: soft link data and write new index (works only with single line fasta/q) [0]

 --chop-cycle BOOL               Remove superfluous part of circular fragments (see --cycle-check) [1]

 --cycle-check BOOL              Check for circular sequences (avoid over extension of circular or long repeated regions)  [1]

 --min-contig-len INT            Minimum length of assembled contig to output [1000]

 --contig-output-mode INT        Type of contigs:

                                 0: all

                                 1: only extended [1]

 --num-iterations TWIN           Number of assembly iterations performed on nucleotide level,protein level (range 1-inf) [5]

common:                        

 --threads INT                   Number of CPU-cores used (all by default) [128]

 --compressed INT                Write compressed output [0]

 -v INT                          Verbosity level: 0: quiet, 1: +errors, 2: +warnings, 3: +info [3]

 --max-seq-len INT               Maximum sequence length [200000]

 --sub-mat TWIN                  Substitution matrix file [nucl:nucleotide.out,aa:blosum62.out]

 --db-load-mode INT              Database preload mode 0: auto, 1: fread, 2: mmap, 3: mmap+touch [0]

 --remove-tmp-files BOOL         Delete temporary files [0]

 --delete-tmp-inc INT            Delete temporary files incremental [0,1] [1]

 --mpi-runner STR                Use MPI on compute cluster with this MPI command (e.g. "mpirun -np 42")

expert:                        

 --create-lookup INT             Create database lookup file (can be very large) [0]

 --write-lookup INT              write .lookup file containing mapping from internal id, fasta id and file number [1]

 --filter-hits BOOL              Filter hits by seq.id. and coverage [0]

 --sort-results INT              Sort results: 0: no sorting, 1: sort by E-value (Alignment) or seq.id. (Hamming) [0]

 --db-mode BOOL                  Input is database [0]

 

references:

 - Steinegger M, Mirdita M, Soding J: Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold. Nature Methods, 16(7), 603-606 (2019)

> penguin nuclassemble -h

usage: penguin nuclassemble <i:fast(a|q)File[.gz]> | <i:fastqFile1_1[.gz] <i:fastqFile1_2[.gz] ... <i:fastqFileN_1[.gz] <i:fastqFileN_2[.gz]> <o:fastaFile> <tmpDir> [options]

 By Annika Jochheim <annika.jochheim@mpinat.mpg.de>

options: prefilter:                     

 --alph-size TWIN                Alphabet size (range 2-21) [5]

 --spaced-kmer-mode INT          0: use consecutive positions in k-mers; 1: use spaced k-mers [0]

 --spaced-kmer-pattern STR       User-specified spaced k-mer pattern

 --mask INT                      Mask sequences in k-mer stage: 0: w/o low complexity masking, 1: with low complexity masking [0]

 --mask-lower-case INT           Lowercase letters will be excluded from k-mer search 0: include region, 1: exclude region [0]

 -k INT                          k-mer length (0: automatically set to optimum) [22]

 --split-memory-limit BYTE       Set max memory per split. E.g. 800B, 5K, 10M, 1G. Default (0) to all available system memory [0]

 --add-self-matches BOOL         Artificially add entries of queries with themselves (for clustering) [0]

align:                         

 --min-seq-id FLOAT              Overlap sequence identity threshold (range 0.0-1.0) [0.990]

 --cov-mode INT                  0: coverage of query and target

                                 1: coverage of target

                                 2: coverage of query

                                 3: target seq. length has to be at least x% of query length

                                 4: query seq. length has to be at least x% of target length

                                 5: short seq. needs to be at least x% of the other seq. length [0]

 -c FLOAT                        List matches above this fraction of aligned (covered) residues (see --cov-mode) [0.000]

 --wrapped-scoring BOOL          Double the (nucleotide) query sequence during the scoring process to allow wrapped diagonal scoring around end and start [0]

 -e DOUBLE                       Extend sequences if the E-value is below (range 0.0-inf) [1.000E-05]

 -a BOOL                         Add backtrace string (convert to alignments with mmseqs convertalis module) [0]

 --min-aln-len INT               Minimum alignment length (range 0-INT_MAX) [0]

 --seq-id-mode INT               0: alignment length 1: shorter, 2: longer sequence [0]

kmermatcher:                   

 --kmer-per-seq INT              k-mers per sequence [60]

 --kmer-per-seq-scale TWIN       Scale k-mer per sequence based on sequence length as kmer-per-seq val + scale x seqlen [0.100]

 --adjust-kmer-len BOOL          Adjust k-mer length based on specificity (only for nucleotides) [0]

 --hash-shift INT                Shift k-mer hash initialization [67]

 --include-only-extendable BOOL  Include only extendable [1]

 --ignore-multi-kmer BOOL        Skip k-mers occurring multiple times (>=2) [1]

profile:                       

 --num-iterations INT            Number of assembly iterations (range 1-inf) [8]

misc:                          

 --dbtype INT                    Database type 0: auto, 1: amino acid 2: nucleotides [0]

 --shuffle BOOL                  Shuffle input database [1]

 --createdb-mode INT             Createdb mode 0: copy data, 1: soft link data and write new index (works only with single line fasta/q) [0]

 --id-offset INT                 Numeric ids in index file are offset by this value [0]

 --rescore-mode INT              Rescore diagonals with:

                                 0: Hamming distance

                                 1: local alignment (score only)

                                 2: local alignment

                                 3: global alignment

                                 4: longest alignment fulfilling window quality criterion [3]

 --keep-target BOOL              Keep target sequences [1]

 --chop-cycle BOOL               Remove superfluous part of circular fragments (see --cycle-check) [1]

 --cycle-check BOOL              Check for circular sequences (avoid over extension of circular or long repeated regions)  [1]

 --min-contig-len INT            Minimum length of assembled contig to output [1000]

 --contig-output-mode INT        Type of contigs:

                                 0: all

                                 1: only extended [1]

common:                        

 --compressed INT                Write compressed output [0]

 -v INT                          Verbosity level: 0: quiet, 1: +errors, 2: +warnings, 3: +info [3]

 --sub-mat TWIN                  Substitution matrix file [nucl:nucleotide.out,aa:blosum62.out]

 --max-seq-len INT               Maximum sequence length [200000]

 --threads INT                   Number of CPU-cores used (all by default) [128]

 --db-load-mode INT              Database preload mode 0: auto, 1: fread, 2: mmap, 3: mmap+touch [0]

 --remove-tmp-files BOOL         Delete temporary files [0]

 --delete-tmp-inc INT            Delete temporary files incremental [0,1] [1]

 --mpi-runner STR                Use MPI on compute cluster with this MPI command (e.g. "mpirun -np 42")

expert:                        

 --write-lookup INT              write .lookup file containing mapping from internal id, fasta id and file number [1]

 --filter-hits BOOL              Filter hits by seq.id. and coverage [0]

 --sort-results INT              Sort results: 0: no sorting, 1: sort by E-value (Alignment) or seq.id. (Hamming) [0]

 --db-mode BOOL                  Input is database [0]

 

references:

 - Steinegger M, Mirdita M, Soding J: Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold. Nature Methods, 16(7), 603-606 (2019)

 

 

実行方法

penguin nuclassembleをランするには、1つ以上のfastq、出力fasta名、作業ディレクトリ、(option)の順に指定する。

penguin nuclassemble R1.fq.gz R2.fq.gz output.fasta tmp
  • --threads      Number of CPU-cores used (all by default) [128]

出力例

seqkit stats -a output.fasta

 

penguin guided_nuclassembleをランするには、penguin nuclassembleで指定するファイルに加えて、ガイドするためのfasta配列ファイルを指定する必要がある。

 

引用

Strain-resolved de-novo metagenomic assembly of viral genomes and microbial 16S rRNAs

Annika Jochheim,  Florian A. Jochheim, Alexandra Kolodyazhnaya, Étienne Morice, Martin Steinegger,  Johannes Söding

bioRxiv, Posted March 29, 2024.

 

関連

(メタゲノム向け)高効率なプロテインレベルのアセンブリツール PLASS

シンプルなパイルアップベースのバリアントコーラー minipileup

 

レポジトリより

Minipileupはシンプルなパイルアップベースのバリアントコーラーである。リファレンスFASTA1つまたは複数のアライメントBAMを入力とし、アレルカウントとともにマルチサンプルVCFを出力する。Minipileupは、2012年に実装されたhtsbox pileup*1コマンドを応用したもので、(開発者自身が)アライメントデータを調査するために頻繁に使っている。

 

 

インストール

Github

https://github.com/lh3/minipileup

git clone https://github.com/lh3/minipileup.git
cd minipileup/
make

> minipileup 

Usage: minipileup [options] in1.bam [in2.bam [...]]

Options:

  General:

    -f FILE      reference genome [null]

    -v           show variants only

    -c           output in the VCF format (force -v)

    -C           show count of each allele on both strands

    -e           use '*' to mark deleted bases

    -y           variant calling mode (-vcC -a2 -s5 -q30 -Q20)

    -V           print version number

  Filtering:

    -r STR       region in format of 'ctg:start-end' [null]

    -b FILE      BED or position list file to include [null]

    -q INT       minimum mapping quality [0]

    -Q INT       minimum base quality [0]

    -l INT       minimum alignment length [0]

    -S INT       minimum supplementary alignment length [0]

    -T INT       skip bases within INT-bp from either end of a read [0]

    -s INT       drop alleles with depth<INT [1]

    -a INT       drop alleles with depth<INT on either strand [0]

 

 

実行方法

リファレンスと1つ以上のbamファイルを指定する。.faiファイルも必要(.baiは不要)。

samtools faidx ref.fa
minipileup -yf ref.fa aln1.bam aln2.bam > var.vcf
  • -y        variant calling mode (-vcC -a2 -s5 -q30 -Q20)
  • -f         reference genome [null]

出力例

 

レポジトリより

  • マッピングクオリティ、塩基クオリティ、アライメント長、対立遺伝子数のしきい値を調整したり、コマンドラインで領域を指定したりすることができる。
  • Minipileupは再アラインメントや局所的な再アセンブルを行わないため、一般的な入力ではGATKのようなフルパッケージのバリアントコーラーに太刀打ちできない。しかしGATKが想定していない用途で対立遺伝子をカウントするのに便利かもしれない。原理的には、samtoolsのmpileup出力を解析してVCFを生成することもできるが、minipileupの方が高速で便利である。

 

引用

https://github.com/lh3/minipileup

 

*1

HTSboxは初期のHTSlibのHeng Li氏のフォークで、HTS関連ファイルを操作する小さな実験的ツールのコレクション。ちなみにhtslibというのは、HTSデータの読み書きに使用されるCライブラリを指す。例えばsamtoolsはhtslibをコアライブラリとしている(よってhtslibがどこにも存在しないとsamtroolsはビルド出来ない)。HTSlibはチューニングが進んでいて、初期バーションと比べると相当高速化されている(pubmed link)。このあたりのベンチを時間があればブログで行いたい。