macでインフォマティクス

macでインフォマティクス

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

HTSデータを扱う様々なツールをGUIインターフェースで統合した TBtools

 

 ハイスループットシーケンス(HTS)データからの情報マイニング用にさまざまなソフトウェアまたはパイプラインが開発されているが、それらのほとんどは、ほとんどの生物学者が馴染みのないプログラミングおよびコマンドライン環境に依存している。 ユーザーフレンドリーなインターフェースを備えたバイオインフォマティクスツールは、ウェットラボの生物学者に好まれている。 ここでは、さまざまなHTSデータ処理ツールと使いやすいインターフェイスを統合した生物学者向けのツールキットであるTBtoolsについて説明する。 バルクシーケンス抽出、gene set functional enrichment、ベン図など、HTSデータで作業する多くのシンプルで日常的で精巧なタスクを容易にする多数のコレクションが含まれている。TBtoolsは、JRE1.6および github.com/CJ-Chen/TBtoolsから無料で入手できる。 その開発以来、多くの研究者によって使用されてきた。 ウェットラボの生物学者があらゆる種類のハイスループットデータを扱うのに役立つツールキットである。

 

Manualより

TBtoolsは何ができるの?
TBtoolsは、"Tools for Biologist "の略で、ツールセットであり、プロジェクトでもあります。最初から、私はただツールセットを開発したいと思っていました。それは、私自身のためのコマンドラインモードと、私の同僚のためのグラフィック・ユーザー・インターフェースモードです。しかし、何人かの友人がこのworksを見て、TBtoolsは他の方にも役立つだろうと言いました。そこで、私はそれをウェブに掲載しました。その結果、より多くの友人が私に機能要求を送り、TBtoolsにますます多くの機能が追加されました。現在(2017/06/29)まで、TBtoolsには以下のような機能が含まれています。

 

1、シーケンスツール

  • Amazing Fasta Extractor  Fastaファイルの変換、Fastaインデックスの作成、Fastaレコードの抽出を短時間で行うことができます。
  • Fasta Stater Fastaファイルの統計を所得します。全Fastaレコードのサマリー情報(レコード数、トータル長、N50、GCコンテンツなど)と、各Fastaレコードの配列特徴(簡略化されたID、長さ、GCコンテンツなど)を含むファイルを生成することができます。
  • Fasta Extractor  Fastaファイルから直接Fastaレコードを抽出しますが、Amazing Fasta Extractorよりも遅いかもしれません。この機能は将来的に減少または更新される予定です... 代わりにAmazing Fasta Extractorを使うことをお勧めします。
  • Fasta Subseq  Fasta Extractorと似ていますが、特定のFastaレコードのSequence Regionを抽出するために開発された機能です... この機能は今後減少または更新される予定です... Amazing Fasta Extractorの使用をお勧めします。
  • Fasta Merge and Split  複数のFastaファイルを1つのFastaファイルに結合したり、1つのFastaファイルを複数のFastaファイルに分割したりします。
  • Sequence Manipulator    シーケンスのトランスフォーマット、リバース、コンプリメンテーション
  • NCBI Seq Downloader NCBIからGIやAccession Numberのリストに従ってSequncesを一括でダウンロードします。
  • Get Completes ORF(Open Reading Frame) 入力配列から完全なORFを予測します。現在のところ、この機能は完全なORFと古典的なコドン使用表のみを検出します。つまり、完全なORFとは、ATGから始まり、TGA、TAA、TAGで終わる配列領域のみを指します。
  • Check Primers(Simple PCR)    トランスクリプトームなどの特定のシーケンスデータベースに入力されたプライマーの仕様を簡単に統計するために、プライマーの配列位置を直接確認します。
  • GFF/GTF Sequence Extractor    遺伝子構造アノテーションファイル(.gff/.gtf)に基づいて、ゲノムから塩基配列を抽出します。

 

2、BLASTツール

  • Remote Blast(No Need for Preinstalled Blast)  JRE1.6がSSLプロトコルをサポートしておらず、このためにサードパーティのライブラリを追加したくないため、この機能は現在安定していません。後で更新されます。
  • Auto Blast Several Sequences To a Big File (よく使う機能)   環境内でBlastを起動して、複数のFasta形式の大きな配列ファイルを比較します。
  • Auto Blast Two Sequence Sets 上記と同様です。
  • Auto Blast Two Sequence Sets -Big File 上記のような機能です。この3つの機能は、機能の中で1つに統合される予定です。
  • Blast Several Seq To FastQ  入力されたFastQファイルからBLASTデータベースを構築し、複数の配列のBLASTサーチを行います。
  • Reciprocal Blast fasta形式の2つの入力ファイル間で相互にBLASTを行います。
  • Blast XML Alignment Shower   BLAST結果のアラインメントグラフを作成し、クエリ配列や対象配列のカバレッジの確認に使用できます。
  • Blast XML Dotpot   BLAST結果のドットプロットグラフを作成します。
  • Blast Pileup Grapher   NCBI blast web serveive result pageに似た、BLAST結果のpileup graphを作成します。
  • TransFormat Blast.xml to TBtools.table   TBtoolsは、BLAST結果を保存して記述するために、タブ形式のフォーマットを定義しています。このテーブルは、weighted-Covのようないくつかの有用な静的情報を含んでいます。
  • TransFormat Blast.xml to Blast Table  blast.xmlファイルを、デフォルトのBLAST+ outfmt-6と同じタブ区切りのファイルに変換します。
  • e-GenomeWalkiing or e-Race   オーバーラップするリードをFISHして、長い配列にまとめるシークエンスを使用します。この機能は、リシーケンスデータのGenome-walkingや、RNAシーケンスデータの5'RACEや3'RACEをsilcoで行う際に便利です。

 

3、GO・KEGGのツール

  • GO Annotation  遺伝子関連のアノテーションを行います。単純にNCBI, Uniprot, TrembleのGI,Accession NumberをGO IDにマッピングするだけのIDマッピングツールです。
  • GO Enrichment  幾何学的分布に基づいて、 gene-ontology term enrichment analysisを行います。
  • GO Level Counter    特定のGOレベルの遺伝子数をカウントし、統計表と任意のグラフを出力します。
  • GO Level Compare    特定のGOレベルでの2つのGOアノテーション結果を比較し、グラフを出力します。この機能は現在うまく動作していません。修正します。
  • GO Term Parser    GOアノテーションを解析して、Gene2GOやGO2geneのマッピング情報を得ることができます。
  • Prepare GO Annotation for BiNGO in cytoscape   多くの遺伝子アノテーションをBiNGO用のフォーマットファイルに変換します。
  • KEGG Enrichment Analysis   超幾何学的な分布に基づいたKEGGパスウェイ解析を行います。
  • KEGG Pathwat Map Drawer   KEGG パスウェイマップ上の遺伝子をハイライト表示します。

 

4、その他のツール

  • Color Picker カラーコードを自由に選び、必要に応じてカラーコードグラフを保存することができます。
  • Table ID Manipulator  表の行を抽出、フィルタリング、ランク付けすることができます。
  • Table Column Manipulator ランク付けしたり、選択した列だけを残したりします。抽出・フィルタ機能が追加される予定です。
  • Big Text Viewer 非常に大きなサイズのテキストファイルを短時間で表示します。
  • Big Table Viewer 大きなサイズのテーブルファイルを簡単に見ることができます。
  • Text Block Extractor テキストブロックを、特定のIDリストと記録された個別の文字列で抽出します。この機能は、シンテニーブロックを抽出するために開発されました。
  • Expression Shower 1つの遺伝子または複数の遺伝子の発現傾向を可視化します。
  • Expression Calculator gene.countsとgene.lenに基づいて、発現量(RPKMまたはTPM値)を計算する。
  • Wonderful Venn (Up to Six Sets) Venn解析をインタラクティブに行うことができます。
  • Map Genes On Genome From Sequence Files Blastを用いて入力遺伝子のゲノム上の位置領域を取得し、グラフを出力します。
  • Map Genes On Genome From Position Info File 入力された遺伝子とゲノム情報をもとに、ゲノムファイル上に遺伝子を描画します。
  • Dual Synteny Plot from MCScanX output MCScanXの結果をインタラクティブに表示することができます。
  • Domain/Motif Pattern Drawers MEME suite、NCBI Batch-CD search、pfam-search、GFF/GTFの結果を表示します。

 

より最新のドキュメントはどうやら中国語だけで書かれており、見つけることが出来なかった。

 

インストール

TBtools is a platform-independent software that can be run under all operating systems with Java Runtime Environment 1.6 or newer. I

Github

リリースより各OS向けにビルドされた.jarファイルやインストーラー(.exe, .dmg)をダウンロードできる。

 

指示に従ってインストールする(windowsの場合)。

f:id:kazumaxneo:20210808190947p:plain

 

立ち上げる。

f:id:kazumaxneo:20191231030642p:plain

 

起動したところ。

f:id:kazumaxneo:20210808200541p:plain

 

 

実行方法

機能が膨大なので、基本的なインターフェイスと操作メニューだけ確認していきます。

 

1、シーケンスツール

様々な機能を持つ。

f:id:kazumaxneo:20191231030730p:plain

 シーケンスツールには、配列操作に関するツール、NCBIからの配列ダウンロード、primer配列のチェック、GFF, GTF関連のツールがある。

 

Fasta statsを使ってみる。

Sequence Toolkit =>  Fasta Statsを選択

f:id:kazumaxneo:20210808201122p:plain

 

新しいタブが表示された。TBtoolsはこのようにタブを切り替えて各ツールを管理する。

f:id:kazumaxneo:20210808202106p:plain

 

塩基配列アミノ酸配列のfasta配列をドラッグして読み込ませる。読み込まれると別のウィンドウが出現して配列を確認できる。more, lessコマンドのようにページ送りできる。

f:id:kazumaxneo:20210808202136p:plain

確認したら閉じる。

 

Startボタンをクリックすると配列の基本的な統計がプリントされる。

f:id:kazumaxneo:20210808202247p:plain

 

出力ディレクトリを指定すると、.xls形式で統計結果が保存される。

f:id:kazumaxneo:20210808202346p:plain

 

 

2、BLASTツール

f:id:kazumaxneo:20210808210329p:plain

 

BLAST検索して様々な方法、例えばdot plotなどで結果を表示できる。

f:id:kazumaxneo:20210808211052p:plain

 

3、GO・KEGGのツール

f:id:kazumaxneo:20210808211718p:plain

 

4、Graphicsツール (2017年のマニュアルでは触れられていない)

f:id:kazumaxneo:20210808211814p:plain

 

Heatmap

f:id:kazumaxneo:20210808213907p:plain

 

Sequence logo

f:id:kazumaxneo:20210808214217p:plain


Basic PCA

f:id:kazumaxneo:20210808214254p:plain


Volcano plot

f:id:kazumaxneo:20210808214341p:plain


Gene structure view

f:id:kazumaxneo:20210808214518p:plain


Advanced circos

f:id:kazumaxneo:20210808214555p:plain


Synteny visualization

f:id:kazumaxneo:20210808215240p:plain

 

Others

f:id:kazumaxneo:20210808215845p:plain

 

実際の使い方については2020年に出版された論文でも説明されています。アクセスして確認して下さい。

引用

TBtools, a Toolkit for Biologists integrating various HTS-data handling tools with a user-friendly interface

Chengjie Chen, Rui Xia, Hao Chen, Yehua He

bioRxiv preprint first posted online Mar. 27, 2018

 

TBtools: An Integrative Toolkit Developed for Interactive Analyses of Big Biological Data

Chengjie Chen, Hao Chen, Yi Zhang, Hannah R Thomas, Margaret H Frank, Yehua He, Rui Xia

Mol Plant. 2020 Aug 3;13(8):1194-1202

 

ヒト腸内細菌のゲノムコレクション HumGut

2021/8/17 論文引用

2022/02/17  krona追記

2022/02/24 krona関係のコマンド修正

2023/12/01 説明追加

 

 ヒトの腸内細菌叢の特徴を明らかにするために、微生物の分離とDNA配列の決定の両方が行われてきた。また,最新のバイオインフォマティクスツールを用いて,新規に構築されたゲノム(Metagenome-Assembled Genomes-MAGs)も大きな貢献をしてきた。その結果,最近,200,000以上の非冗長な参照ゲノムからなる Unified Human Gastrointestinal Genome(UHGG)コレクション(ref.7)が発表され,この分野における大きな節目となった。これらの研究は,ヒトの腸内で見られる膨大な種類のゲノムを特定し,確固たる基礎を築いた。しかし、これらの研究では、健康な人の腸内に存在するゲノムの世界的な普及状況、すなわち、その出現頻度に関する情報を提供していない。このような知識は、世界中の健康なヒト腸内マイクロバイオームを反映したヒト腸内関連原核生物ゲノムのコレクションを設定するために不可欠である。これは、ヒト消化管内部のマイクロバイオーム研究における比較研究に使用することを目的としたカスタムデータベースを構築するために特に重要である。

地域的には,腸内細菌叢は環境によって大きく形成されていること[ref.8],その組成がさまざまな疾患や障害と関連していること[ref.9,10,11,12]が研究によって明らかにされており,したがって,現在,腸内細菌叢の治療的介入が導入されている段階にある[ref.13,14]。しかし,健康なヒトの腸内細菌叢に関する世界的な基準がないことがボトルネックとなっている[ref.15]。このことが,世界規模での腸内細菌叢の理解と,大規模な介入戦略の導入の両方を妨げている。

 本研究の目的は,すべてのヒト腸内細菌叢研究のための普遍的な基準として,健康なヒトに関連する腸内細菌の単一かつ包括的なゲノムコレクション(HumGut)を作成することであった。NCBIのRefSeqゲノムとともに、上述のUHGGコレクションを利用した。HumGutを構築するための戦略を論文図1に示す。
 HumGutのゲノムは、世界中で収集された健康なヒトの腸内メタゲノムに含まれる量によってランク付けされている。最もよく遭遇するゲノム(つまりリストの上位)は、dereplicationの際に代表的な分類として選択され、最も関連性の高いリストを確保している。比較的単純なコンセプトのように思われるかもしれないが、この研究は、増え続ける原核生物のゲノムのために、一般に公開されているヒトの腸内メタゲノムを迅速にスクリーニングできるバイオインフォマティクスのツールが開発されたことによって初めて可能になった。

 

 5,700本以上の健康なヒト腸内メタゲノムをスクリーニングし、RefSeqと最近発表されたUHGGコレクションから得られた490,000本以上の一般に入手可能な原核生物ゲノムが含まれていることを確認した。その結果、381,000個以上のゲノムが得られ、これらのゲノムは健常人のメタゲノムに含まれる頻度に基づいてスコアリングされ、ランク付けされた。次に、これらのゲノムを97.5%の配列同一性の分解能でクラスター化し、クラスターを代表するもの(合計30,691個)をHumGutコレクションとして保存した。Kraken2を用いた分類では、メタゲノム中のリードの平均94.5%を分類できたが、UHGGでは86%、標準的なKraken2データベースでは44%であった。UHGGと同様に95%の配列同一性で複製されたゲノムからなる粗いHumGutコレクションでは、リードの88.25%を分類した。HumGutは、標準的なKraken2データベースの半分のサイズで、UHGGのサイズと同程度だが、両者を凌駕している。
 HumGutコレクションには、97.5%の配列同一性の分解能でクラスタリングされた30,000以上のゲノムが含まれており、ヒト腸内の有病率でランク付けされている。IBD患者からのメタゲノムも同様にこのコレクションにマッピングされることを示し、このリファレンスがHumGutの取得に使用されたメタゲノムリファレンスセット以外の研究にも適していることを示している。すべてのデータとメタデータ、および有用なコードは、http://arken.nmbu.no/~larssn/humgut/で公開されている。

 

ゲノムデータの公開サイト

http://arken.nmbu.no/~larssn/humgut/

 

Github


#kraken2とbrackenのインストール

#conda (link)
mamba create -n kraken2 -y
conda activate kraken2
mamba install -c bioconda -y kraken2

#bracken (link)
mamba install -c bioconda -y bracken

 

データベースのビルド

Githubの説明に則ってkraken2のデータベースを構築する流れを確認する。

 

1、KRAKEN2データベースを構築するフォルダを作成し、その中に上記HPからダウンロードしたGTDBかNCBIのnames.dmpとnodes.dmpファイルを配置する。

mkdir -p KRAKEN2/taxonomy
mv gtdb_names.dmp KRAKEN2/taxonomy/names.dmp
mv gtdb_nodes.dmp KRAKEN2/taxonomy/nodes.dmp

 

2、ヒトの腸からのデータであれば、ホストゲノムがどの程度検出されるか調べられるように、ヒトゲノムもデータベースに含めることが推奨されている。kraken2のコマンドを使ってダウンロードできる。

kraken2-build --download-library human --db KRAKEN2/
  • --download-library   Download partial library (TYPE = one of "archaea", "bacteria", "plasmid", "viral", "human", "fungi", "plant", "protozoa", "nr", "nt", "UniVec", "UniVec_Core")

 KRAKEN2/libraryに関連ファイルと共にダウンロードされる。テストした時は20分ほどかかった。

 

3、上記HPからダウンロードした全ゲノムのtar ballを解凍する。

tar -xvf HumGut.tar.gz

 fna/にgzipped fastaファイルが展開される。

 

4、1つのファイルに結合する。kraken2は圧縮ゲノムfastaからのデータベースのビルドに対応していないので、zcatを使って結合する。

zcat fna/*.fna.gz > HumGut975_library.fna

結合後のfastaファイルは63GBとなった (2021年8月現在)。

 

5、kraken2-buildコマンドで HumGut975_library.fnaファイルを追加する。

kraken2-build --add-to-library HumGut975_library.fna --db KRAKEN2/
  • --add-to-library   Add FILE to library

5のステップの後、上記で作成した HumGut975_library.fnaは削除してO.K。

補足

Githubでは、5のステップの前に、kraken2の大きなメモリ使用量を減らすため、クラスタリングの配列同一性の閾値を変更してゲノムの数を減らす手順が説明されています。

 

6−1、kraken2のデータベースをビルドする。

#先にgtdb_nodesとgtdb_namesのdumpファイルをtaxonomyに配置しておく
mkdir KRAKEN2/taxonomy
mv gtdb_nodes.dmp KRAKEN2/taxonomy/nodes.dmp
mv gtdb_names.dmp KRAKEN2/taxonomy/names.dmp

#build
kraken2-build --build --threads 40 --db KRAKEN2/

このステップが一番時間がかかる。試した時は2−3時間かかった。ビルドが完了すると、KRAKEN2フォルダ内にhash.k2d、opts.k2d、taxo.k2d、seqid2taxid.mapのファイルができる。

 

6−2、Kraken 2データベースの中身を確認する。

kraken2-inspect --db KRAKEN2 | head -n 20

kraken2-inspectの出力形式は、kraken2の--reportオプションで生成されるレポートと同じ。

 

7、kraken2データベースができたら、これを拡張してbrackenデータベースも構築する。40スレッド、k-mer長35(kraken2と同じ)、read length 100。

bracken-build -d KRAKEN2 -t 40 -k 35 -l 100

KRAKEN2フォルダにdatabase.kraken, database.100mers.kraken, database.100mers.kmer_distribの3つのファイルが追加される。brackenはkrakenの曖昧なk-merマッチングを改善するもので、よく似た複数マッチの場合に、各ゲノムのユニーク領域からのユニークマッチの数を使って、ベイズ推定して種レベルの確率的な存在量を推定する。krakenや他のtaxonomic プロファイリングツールの精度を上げる目的で使われる。

 

レポジトリではkraken2/brackenの代わりにkrakenUniqのデータベースを構築する流れも説明されています。興味がある方は確認してみて下さい。

 

 

1, kraken2のラン(manual

ペアエンドfastq。gzip圧縮なら--gzip-compressedを付ける。

kraken2 --db KRAKEN2 --threads 40 --gzip-compressed --paired --report report.txt --use-names --classified-out seqs#.fq  input_R1.fq.gz input_R2.fq.gz > output.txt
  • --minimum-hit-groups  <NUM>   Minimum number of hit groups (overlapping k-mers
    sharing the same minimizer) needed to make a call (default: 2)
  • --unclassified-out <FILENAME>   Print unclassified sequences to filename
  • --classified-out <FILENAME>   Print classified sequences to filename
  • --report <FILENAME>  Print a report with aggregrate counts/clade to file
  • --use-mpa-style   With --report, format report output like Kraken 1's
    kraken-mpa-report
  • --use-names    Print scientific names instead of just taxids

全データを報告する標準出力(> output.txt)はここでは使わない。不要なら> /dev/nullでもO.K。

krakenのレポートファイルは以下のフォーマットになっている(マニュアルより)。

  • Percentage of reads covered by the clade rooted at this taxon
  • Number of reads covered by the clade rooted at this taxon
  • Number of reads assigned directly to this taxon
  • A rank code, indicating (U)nclassified, (D)omain, (K)ingdom, (P)hylum, (C)lass, (O)rder, (F)amily, (G)enus, or (S)pecies. All other ranks are simply '-'.
  • NCBI taxonomy ID
  • indented scientific name

 

 

2, Brackenのラン

kraken report ファイル(krakenの--report出力の方)を指定する。種レベルの推定(-l S)。

bracken -d KRAKEN2 -i kraken_report.txt -r 100 -l S -o bracken
  • -i    location of the built Kraken 1.0 or Kraken 2.0 database
  • -r    read length
  • -t    Default = 10. For species classification, any species with <= 10 (or otherwise specified) reads will not receive any additional reads from higher taxonomy levels when distributing reads for abundance estimation. If another classification level is specified, thresholding will occur at that level.
  • -l      Default = 'S'. This specifies that abundance estimation will calculate estimated reads for each species. Other possible options are K (kingdom level), P (phylum), C (class), O (order), F (family), and G (genus).

kraken_report_braken_species.txtとbrackenが出力される。kronaではkraken_report_braken_species.txtを使う。

 

 

3、kraken2のreportを扱うためのユーティリティ;Kraken Toolsが公開されている。

git clone https://github.com/jenniferlu717/KrakenTools.git
python KrakenTools/kreport2krona.py -r report_bracken_species.txt -o MYSAMPLE.bracken
ktImportText MYSAMPLE.bracken -o MYSAMPLE.bracken.html

#複数ファイル
ktImportText MYSAMPLE.bracken* -o all.html

kronaで視覚化された MYSAMPLE.bracken.htmlが得られる。

 

 

 参考;kronaのインストールとランについて

ここではkreport2kronaスクリプトとktImportText を使って視覚化したが、それにはkronaをインストールしておく必要がある。

#インストールとデータベースの準備
mamba install -c bioconda -y krona
rm -rf $HOME/miniconda3/envs/kraken2/opt/krona/taxonomy
mkdir -p krona/taxonomy
ktUpdateTaxonomy.sh krona/taxonomy/
cp -r krona/taxonomy/ $HOME/miniconda3/envs/kraken2/opt/krona/

#kronaのラン
ktImportTaxonomy -q 2 -t 3 report_bracken_species.txt -o krona.html

#全サンプル(1-5)
ktImportTaxonomy -q 2 -t 3 *_bracken_species.txt -o krona.html

 

HumGutのメタデータファイルはGithubとHPから入手できます。

引用
HumGut: a comprehensive human gut prokaryotic genomes collection filtered by metagenome data
Pranvera Hiseni, Knut Rudi, Robert C Wilson, Finn Terje Hegge, Lars Snipen

Microbiome. 2021 Jul 31;9(1):165

 

2021 8/17

HumGut: a comprehensive human gut prokaryotic genomes collection filtered by metagenome data

Pranvera Hiseni, Knut Rudi, Robert C. Wilson, Finn Terje Hegge & Lars Snipen
Microbiome volume 9, Article number: 165 (2021) 

 

 

 

#help

> kraken2-build

$ kraken2-build

Must select a task option.

Usage: kraken2-build [task option] [options]

 

Task options (exactly one must be selected):

--download-taxonomy Download NCBI taxonomic information

--download-library TYPE Download partial library

(TYPE = one of "archaea", "bacteria", "plasmid",

"viral", "human", "fungi", "plant", "protozoa",

"nr", "nt", "UniVec", "UniVec_Core")

--special TYPE Download and build a special database

(TYPE = one of "greengenes", "silva", "rdp")

--add-to-library FILE Add FILE to library

--build Create DB from library

(requires taxonomy d/l'ed and at least one file

in library)

--clean Remove unneeded files from a built database

--standard Download and build default database

--help Print this message

--version Print version information

 

Options:

--db NAME Kraken 2 DB name (mandatory except for

--help/--version)

--threads # Number of threads (def: 1)

--kmer-len NUM K-mer length in bp/aa (build task only;

def: 35 nt, 15 aa)

--minimizer-len NUM Minimizer length in bp/aa (build task only;

def: 31 nt, 12 aa)

--minimizer-spaces NUM Number of characters in minimizer that are

ignored in comparisons (build task only;

def: 7 nt, 0 aa)

--protein Build a protein database for translated search

--no-masking Used with --standard/--download-library/

--add-to-library to avoid masking low-complexity

sequences prior to building; masking requires

dustmasker or segmasker to be installed in PATH,

which some users might not have.

--max-db-size NUM Maximum number of bytes for Kraken 2 hash table;

if the estimator determines more would normally be

needed, the reference library will be downsampled

to fit. (Used with --build/--standard/--special)

--use-ftp Use FTP for downloading instead of RSYNC; used with

--download-library/--download-taxonomy/--standard.

--skip-maps Avoids downloading accession number to taxid maps,

used with --download-taxonomy.

--load-factor FRAC Proportion of the hash table to be populated

(build task only; def: 0.7, must be

between 0 and 1).

--fast-build Do not require database to be deterministically

built when using multiple threads. This is faster,

but does introduce variability in minimizer/LCA

pairs. Used with --build and --standard options.

kraken2-inspect -h

# kraken2-inspect -h

Usage: kraken2-inspect [options]

 

Options:

  --db NAME               Name for Kraken 2 DB

                          (default: none)

  --threads NUM           Number of threads to use

  --skip-counts           Only print database summary statistics

  --use-mpa-style         Format output like Kraken 1's kraken-mpa-report

  --report-zero-counts    Report counts for ALL taxa, even if

                          counts are zero

  --help                  Print this message

  --version               Print version information

kraken2

# kraken2

Need to specify input filenames!

Usage: kraken2 [options] <filename(s)>

 

Options:

  --db NAME               Name for Kraken 2 DB

                          (default: none)

  --threads NUM           Number of threads (default: 1)

  --quick                 Quick operation (use first hit or hits)

  --unclassified-out FILENAME

                          Print unclassified sequences to filename

  --classified-out FILENAME

                          Print classified sequences to filename

  --output FILENAME       Print output to filename (default: stdout); "-" will

                          suppress normal output

  --confidence FLOAT      Confidence score threshold (default: 0.0); must be

                          in [0, 1].

  --minimum-base-quality NUM

                          Minimum base quality used in classification (def: 0,

                          only effective with FASTQ input).

  --report FILENAME       Print a report with aggregrate counts/clade to file

  --use-mpa-style         With --report, format report output like Kraken 1's

                          kraken-mpa-report

  --report-zero-counts    With --report, report counts for ALL taxa, even if

                          counts are zero

  --memory-mapping        Avoids loading database into RAM

  --paired                The filenames provided have paired-end reads

  --use-names             Print scientific names instead of just taxids

  --gzip-compressed       Input files are compressed with gzip

  --bzip2-compressed      Input files are compressed with bzip2

  --help                  Print this message

  --version               Print version information

 

If none of the *-compressed flags are specified, and the filename provided

is a regular file, automatic format detection is attempted.

bracken -h

# bracken -h

/root/miniconda3/bin/bracken: illegal option -- h

Usage: bracken -d MY_DB -i INPUT -o OUTPUT -w OUTREPORT -r READ_LEN -l LEVEL -t THRESHOLD

  MY_DB          location of Kraken database

  INPUT          Kraken REPORT file to use for abundance estimation

  OUTPUT         file name for Bracken default output

  OUTREPORT      New Kraken REPORT output file with Bracken read estimates

  READ_LEN       read length to get all classifications for (default: 100)

  LEVEL          level to estimate abundance at [options: D,P,C,O,F,G,S,S1,etc] (default: S)

  THRESHOLD      number of reads required PRIOR to abundance estimation to perform reestimation (default: 0)

> bracken-build -h

/home/kazu/miniconda3/envs/kraken2/bin/bracken-build: illegal option -- h

Usage: bracken_build -k KMER_LEN -l READ_LEN -d MY_DB -x K_INSTALLATION -t THREADS

KMER_LEN kmer length used to build the kraken database (default: 35)

THREADS the number of threads to use when running kraken classification and the bracken scripts

READ_LEN read length to get all classifications for (default: 100)

MY_DB location of Kraken database

K_INSTALLATION location of the installed kraken/kraken-build scripts (default assumes scripts can be run from the user path)

 

**Note that this script will try to use kraken2 as default. If kraken2 is not installed, kraken will be used instead

 

 

関連

* kraken1とkraken2のデータベースに互換性はないので注意。

 

参考

kraken2のオリジナルのビルド済みデータベース


コピーナンバーバリアント(CNV)のシミュレータ SECNVs

 

 コピーナンバーバリアントは、表現型の変化やヒトの病気に重要な役割を果たすゲノムの複製や欠失である。全ゲノム配列や全エクソーム配列のデータを用いて、コピー数の変異を検出するソフトウェアが数多く開発されている。しかし、これらのアプリケーションから得られる結果は、あまり一致していない。コピーナンバーバリアントを含むシミュレーションデータセットは、既存および新規のコピーナンバーバリアント検出法の動作特性を包括的に比較することができる。全ゲノム配列データのコピー数バリアントやその他の構造バリアントをシミュレートするソフトウェアアプリケーションがいくつか開発されている。しかし、全ゲノム配列データにおけるコピー数バリアントを確実にシミュレートできるアプリケーションはなかった。著者らは、リファレンスゲノムからコピー数バリアントと全エクソーム配列をシミュレートするための、高速で堅牢かつカスタマイズ可能なソフトウェアアプリケーションであるSimulator of Exome Copy Number Variants (SECNVs)を開発し、テストした。SECNVsはインストールが簡単で、シミュレーションをカスタマイズするための様々なコマンドが実装されており、複数のサンプルを一度に出力することができ、1つのコマンドでリアレンジドゲノム、ショートリード、BAMファイルを出力するパイプラインが組み込まれている。SECNVsによって生成されたバリアントは、コピーナンバーバリアントの検出に一般的に使用されているツールによって、高い感度と精度で検出される。SECNVs は https://github.com/YJulyXing/SECNVs で公開されている。

 

インストール

mambaでpython2.7の環境を作ってテストした(ubuntu18.04)。

依存

  • Python 2.7. Required python packages: argparse, random, os, subprocess, math, sys, time, copy, numpy

Github

mamba create -n secnv python==2.7.17 -y
conda activate secnv
mamba install numpy

git clone https://github.com/YJulyXing/SECNVs.git

python2 SECNVs.py -h

$ python2 SECNVs.py -h

usage: SECNVs.py [-h] -G GENOME_FILE -T TARGET_REGION_FILE

                 [-rN {none,gap,all}] [-eN {none,gap,all}]

                 [-n_gap NUM_N_FOR_GAPS] [-e_cnv TARGET_CNV_LIST]

                 [-e_chr TARGET_CNV_CHR] [-e_tol TARGET_CNV_TOL]

                 [-e_cl TARGET_CNV_LEN_FILE] [-o_cnv OUT_CNV_LIST]

                 [-o_chr OUT_CNV_CHR] [-o_tol OUT_CNV_TOL]

                 [-o_cl OUT_CNV_LEN_FILE] [-ol OVERLAP_BPS]

                 [-min_len CNV_MIN_LENGTH] [-max_len CNV_MAX_LENGTH]

                 [-min_cn MIN_COPY_NUMBER] [-max_cn MAX_COPY_NUMBER]

                 [-p PROPORTION_INS] [-f MIN_FLANKING_LEN]

                 [-ms {random,uniform,gauss}]

                 [-ml {random,uniform,gauss,beta,user}] [-as AS1] [-bs BS]

                 [-al AL] [-bl BL] [-s_r S_RATE] [-s_s S_SLACK] [-i_r I_RATE]

                 [-i_mlen I_MAX_LEN] [-nr NREADS] [-fs FRAG_SIZE] [-s STDEV]

                 [-l READ_LENGTH] [-tf TARGET_REGION_FLANK] [-pr]

                 [-q QUALITY_SCORE_OFFSET] [-clr CONNECT_LEN_BETWEEN_REGIONS]

                 [-m MODEL] [-o OUTPUT_DIR] [-rn REARRANGED_OUTPUT_NAME]

                 [-n NUM_SAMPLES] [-sc] [-ssr] [-sb] [-picard PATH_TO_PICARD]

                 [-GATK PATH_TO_GATK]

 

Simulator for WES or WGS data

 

optional arguments:

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

 

Mandatory inputs:

  -G GENOME_FILE        Reference genome FASTA file

  -T TARGET_REGION_FILE

                        Target region file

 

Arguments for simulating rearranged genomes:

  -rN {none,gap,all}    Replace sequences of "N"s by ATGC randomly? [none]

  -eN {none,gap,all}    Exclude sequences of "N"s for CNV simulation? [none]

  -n_gap NUM_N_FOR_GAPS

                        Number of consecutive "N"s to be considered a gap region [50]

  -e_cnv TARGET_CNV_LIST

                        A user-defined list of CNVs overlapping with target regions

  -e_chr TARGET_CNV_CHR

                        Number of CNVs overlapping with target regions to be generated on each chromosome

  -e_tol TARGET_CNV_TOL

                        Total number of CNVs overlapping with target regions to be generated across the genome (estimate)

  -e_cl TARGET_CNV_LEN_FILE

                        User supplied file of CNV length for CNVs overlapping with target regions

  -o_cnv OUT_CNV_LIST   A user-defined list of CNVs outside of target regions

  -o_chr OUT_CNV_CHR    Number of CNVs outside of target regions to be generated on each chromosome

  -o_tol OUT_CNV_TOL    Total number of CNVs outside of target regions to be generated across the genome (estimate)

  -o_cl OUT_CNV_LEN_FILE

                        User supplied file of CNV length for CNVs outside of target regions

  -ol OVERLAP_BPS       For each CNV overlapping with target regions, number of minimum overlapping bps [100]

  -min_len CNV_MIN_LENGTH

                        Minimum CNV length [1000]

  -max_len CNV_MAX_LENGTH

                        Maximum CNV length [100000]

  -min_cn MIN_COPY_NUMBER

                        Minimum copy number for insertions [2]

  -max_cn MAX_COPY_NUMBER

                        Maximum copy number for insertions [10]

  -p PROPORTION_INS     Proportion of insertions [0.5]

  -f MIN_FLANKING_LEN   Minimum length between each CNV [50]

  -ms {random,uniform,gauss}

                        Distribution of CNVs [random]

  -ml {random,uniform,gauss,beta,user}

                        Distribution of CNV length [random]

  -as AS1               Mu for Gaussian CNV distribution [0]

  -bs BS                Sigma for Gaussian CNV distribution [1]

  -al AL                Mu (Gaussian distribution) or alpha (Beta distribution) for CNV length distribution [0 for Gaussian distribution, and 0.5 for Beta distribution]

  -bl BL                Sigma (Gaussian distribution) or beta (Beta distribution) for CNV length distribution [1 for Gaussian distribution, and 2.3 for Beta distribution]

  -s_r S_RATE           Rate of SNPs in target regions [0]

  -s_s S_SLACK          Slack region up and down stream of target regions to simulate SNPs [0]

  -i_r I_RATE           Rate of indels in target regions [0]

  -i_mlen I_MAX_LEN     The Maximum length of indels in target regions [50]. (If a deletion is equal or larger than the length of the target region it is in, the length of the deletion will be changed to (length of the target region it is in) - 1.)

 

Arguments for simulating short reads (fastq):

  -nr NREADS            Number of reads / read pairs on target regions to be generated for each genome [10000]

  -fs FRAG_SIZE         Mean fragment size to be generated [200]

  -s STDEV              Standard deviation of fragment sizes [20]

  -l READ_LENGTH        Read length of each short read [100]

  -tf TARGET_REGION_FLANK

                        Length of flanking region up and down stream of target regions to be sequenced (this step take place after -clr). [0]

  -pr                   Select if paired-end sequencing

  -q QUALITY_SCORE_OFFSET

                        Quality score offset for short reads simulation [33]

  -clr CONNECT_LEN_BETWEEN_REGIONS

                        Maximum length bwtween target regions to connect the target regions.

  -m MODEL              GemSIM error model file (.gzip, need absolute path) [Illumina_HiSeq_2500_p]

 

Arguments for general settings:

  -o OUTPUT_DIR         Output directory [simulator_output]

  -rn REARRANGED_OUTPUT_NAME

                        Prefix of the rearranged outputs (do not include directory name) [test]

  -n NUM_SAMPLES        Number of test samples to be generated [1]

  -sc                   Simulation for control genome

  -ssr                  Simulate short reads (fastq) files

  -sb                   Simulate BAM files

  -picard PATH_TO_PICARD

                        Absolute path to picard

  -GATK PATH_TO_GATK    Absolute path to GATK

 

 

実行方法

ランするには、fasta形式のリファレンスゲノム配列、ターゲット領域のファイルを指定する。このファイルにば、染色体名(リファレンスと一致)、開始、終了のポジションが書かれていなければならない。-e_cnvターゲット領域内のCNVの発生数を指定するタブ区切りのファイルも指定する。-o_cnvではとターゲット領域外のCNVの発生数を指定する。

python2 SECNVs.py -G reference.fasta -T target.tsv -e_cnv in.tsv -o_tol 20 -eN all -o out
  • -G    Reference genome FASTA file
  • -T     Target region file
  • -e_cnv    A user-defined list of CNVs overlapping with target regions

  • -o_tol     Total number of CNVs outside of target regions to be generated across the genome (estimate)
  • -eN {nonegapall}    Exclude sequences of "N"s for CNV simulation? [none]

 

引用
SECNVs: A Simulator of Copy Number Variants and Whole-Exome Sequences From Reference Genomes

Yue Xing, Alan R Dabney, Xiao Li, Guosong Wang, Clare A Gill, Claudio Casola

Front Genet. 2020 Feb 21;11:82

 

 

 

 

 

MSIsensor

 

 マイクロサテライト不安定性(MSI)は、より大きなゲノム不安定性の重要な指標であり、リンチ症候群をはじめとする多くの遺伝病と関連している。また、MSIの状態は、大腸がんや子宮内膜がんなどの複数のがん種において、良好な生存率を示す独立した予後因子でもある。また、化学療法剤の選択にも影響を与える。しかし、現在のPCR-電気泳動法に基づく検出方法は手間と時間がかかり、サンプルを分類するために目視検査を必要とすることが多い。著者らは、体細胞のマイクロサテライトの変化を自動的に検出するC++プログラム、MSIsensorを開発した。このプログラムは、ペアになった腫瘍と正常のシークエンシングデータにおいて、部位ごとのマイクロサテライトの長さ分布を計算し、それを用いて両サンプルで観測された分布を統計的に比較する。包括的なテストにより、MSIsensorは、標準的な腫瘍と正常のペアシーケンスデータからMSIステータスを導出するための効率的かつ効果的なツールであることが示された。

 

Input Files format

https://github.com/xjtu-omics/msisensor-pro/wiki/Input-Files-format

 

インストール

mamba (conda)の仮想環境(python3.9)に導入した。

Github

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

> msisensor scan

$ msisensor scan

 

Usage: msisensor scan [options]

 

-d <string> reference genome sequences file, *.fasta format

-o <string> output homopolymer and microsatelittes file

 

-l <int> minimal homopolymer size, default=5

-c <int> context length, default=5

-m <int> maximal homopolymer size, default=50

-s <int> maximal length of microsate, default=5

-r <int> minimal repeat times of microsate, default=3

-p <int> output homopolymer only, 0: no; 1: yes, default=0

 

 

-h help

> msisensor msi

$ msisensor msi

 

Usage: msisensor msi [options]

 

-d <string> homopolymer and microsates file

-n <string> normal bam file

-t <string> tumor bam file

-o <string> output distribution file

 

-e <string> bed file, optional

-f <double> FDR threshold for somatic sites detection, default=0.05

-i <double> minimal comentropy threshold for somatic sites detection (just for tumor only data), default=1

-c <int> coverage threshold for msi analysis, WXS: 20; WGS: 15, default=20

-r <string> choose one region, format: 1:10000000-20000000

-l <int> minimal homopolymer size, default=5

-p <int> minimal homopolymer size for distribution analysis, default=10

-m <int> maximal homopolymer size for distribution analysis, default=50

-q <int> minimal microsates size, default=3

-s <int> minimal microsates size for distribution analysis, default=5

-w <int> maximal microstaes size for distribution analysis, default=40

-u <int> span size around window for extracting reads, default=500

-b <int> threads number for parallel computing, default=1

-x <int> output homopolymer only, 0: no; 1: yes, default=0

-y <int> output microsatellite only, 0: no; 1: yes, default=0

 

-h help

 

 

実行方法

msisensor scan

msisensor scan -d ref.fasta -o out

 

 

引用
MSIsensor: microsatellite instability detection using paired tumor-normal sequence data
Beifang Niu, Kai Ye, Qunyuan Zhang, Charles Lu, Mingchao Xie, Michael D McLellan, Michael C Wendl, Li Ding

Bioinformatics. 2014 Apr 1;30(7):1015-6

ロングリードアセンブリのコンティグからクロモソームへの改善を自動で行う ILRA

 

 近年のロングリードシークエンシング技術の進歩は、大規模なコンソーシアムが地球上のすべての真核生物の配列を決定することを可能にするだけでなく、多くの研究室が関心のある種のゲノム配列を決定することも可能にしている。しかし、コンティグの数は染色体の数を大幅に超えており、ホモポリマー・トラックの周辺には多くの挿入・欠失エラーが含まれています。これらの問題を解決するために、著者らはロングリードベースのアセンブリを修正するILRAを実装した。このパイプラインは、コンティグの順序付け、名前付け、結合、環化を行い、誤った小さなコンティグやコンタミネーションをフィルタリングし、イルミナリードによるホモポリマーエラーを修正する。その結果、ホモポリマー・トラックを修正することで、偽遺伝子として誤ってアノテーションされる遺伝子の数を減らすことができたが、多数のホモポリマー・エラーを減らすには、繰り返し修正する必要があるようである。以上、ロングリードアセンブリーの品質を向上させる新しいツールの性能を比較した。このツールは、300 Mbまでのサイズのゲノムを修正するために使用することができる。

 

以下のステップは、ILRAによって自動的に実行される。

1、ユーザーが提供したコンティグ配列のクリーニング。これは、PacBioテクノロジーの平均リード長が7kb以上であり、小さなコンティグはキメラリードなどの不適切なリードと考えられるためである。より大きなコンティグの配列と完全に重なるコンティグも削除される。

2、コンティグのマージ。オーバーラップしているコンティグは、オーバーラップしている領域が2kb以上で、99%以上の同一性を示し、イルミナショートリードのカバレッジがフルアセンブリカバレッジの中央値の40-60%である場合にマージされる。これらの条件により、コンティグがリピートのためにマージされないことが保証される。

3、コンティグをリファレンスに対してオーダーする(オプション)。ABACAS2を用いて、配列の名前を変更し、コンティグをリファレンスゲノムを用いて並び替え、方向付けを行う。

4、ホモポリマーのエラーを修正する。ゲノムアセンブリの一般的な限界とは別に、ロングリードにはホモポリマートラックの存在に関連した特別な欠点がある。ILRAはiCORN2を介してIlluminaショートリードを使用して一塩基の不一致とindelを修正し、デフォルトで500bpのフラグメント長および3反復実行する。

5、プラスミドの環状化:オルガネラや染色体外プラスミドのゲノムは環状であり、正しい配列を原点から生成する必要がある。そこで、ミトコンドリア(または原虫などの一部の寄生虫ではアピコプラスト、またはT. brucei "maxicircle" contig)に対応する配列を、Circlator v1.5.5を用いて、デフォルトのパラメータ(コマンド「all」)でILRAにより環状化させる。

6、Decontaminating  contigs。コンタミネーションのコンティグは、Centrifuge v1.0.4(Kim, et al., 2016)による分類学的な分類アプローチを用いて、デフォルトのパラメータ(NCBI nucleotide non-redundant sequences as reference and --min-hitlen 100)でILRAによって識別される。デノボアセンブリプロセスの前の汚染配列除去が推奨されるが、ILRAはこのステップで、潜在的コンタミを表すNCBI分類群に割り当てられたコンティグをフィルタリングするように設計されている。コンティグは、デフォルトのパラメータでRecentrifuge v1.3.1(Marti, 2019)を使用して除去される。汚染と分類された除外されたコンティグは、Excluded.contigs.fofnというファイルに記録される。ユーザーが適応できるように、残すべきNCBI分類群IDと優先順位をインラインパラメータとしてILRAに提供し、削除する分類群IDをexclude_taxons_recentrifuge_ILRA.txtファイルでILRAに提供できる(デフォルトではBacteria, Viruses, Fungi, Mammals, artificial sequencesに対応)。

7、アセンブリの統計情報を収集する。染色体の完全性を評価するために、テロメア関連配列とテロメアリピートをカウントする。また、両方のテロメアが付いている染色体の数も推定する。テロメア内で解析する配列は、デフォルトで設定されているが、インラインパラメータとしてILRAに提供し、ユーザーが調整できるようにすることもできる。アセンブリ品質を評価するために、ILRAはシーケンスデプス、リード長、コンティグサイズ、GC-content、アセンブリーサイズ、N50値、ギャップ数などの一般的な統計情報を補正前および補正後に報告する。オプションとして、リファレンスゲノムとアノテーションファイル(GFF形式)が提供されている場合は、ソフトウェアQUAST v5.0.2も使用して、参照と比較した構造バリアント、ミスアセンブリまたはミスマッチなどのさまざまなメトリクスやプロットを計算する。

 

インストール

Windows10 proでVirtualBox を使ってテストした。

Github

VirtualBoxを使うことが推奨されている。GithubのリンクからVirtualBoxのイメージ(.dvi)(47GB)をダウンロードする。

VirtualBoxのダウンロード (macos, linux, windows

https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html

 

VirtualBoxを起動し、仮想マシンを作成する。新規ボタンをクリック。

 

f:id:kazumaxneo:20210803214618p:plain

Linuxubuntuを選択する。名前も記入する。 

 

新規マシンの作成ウィンドウがでたら、すでにある~を選択し、右端のフォルダのマークをクリックする。

f:id:kazumaxneo:20210803214712p:plain

 

ウィンドウが出てくるので、追加ボタンをクリックし、ダウンロードしたVirtualBoxのイメージを選択する。

f:id:kazumaxneo:20210803214703p:plain

 

イメージが読み込まれたら、起動前に設定を変更する。ここではメモリとCPU数、ストレージを増やした。

f:id:kazumaxneo:20210803222816p:plain

 

起動する。ユーザー名はbioinfo、パスワードは”Glasgow2020”。

f:id:kazumaxneo:20210803215200p:plain

 

起動したところ。

f:id:kazumaxneo:20210803214915p:plain

 

 

 

 テストラン

f:id:kazumaxneo:20210803224910p:plain

 

以下のディレクトリのデータが使用されている。

f:id:kazumaxneo:20210803222453p:plain

 

出力ディレクト

f:id:kazumaxneo:20210803225622p:plain

 

実際に自分のデータをランするには、ILRA_pipeline/bin/ILRA/ILRA.shを使う。上のテストスクリプトのように実行すればランできる。

 

ILRA.sh -a $ASSEMBLY -o $OUTPUT_FOLDER_ILRA -c $CORRECTED_READS -n subset_test -r $REFERENCE -I $ILLU_READS -t $CORES -g $GFF_REF_FILE -L pbを実行する。

 

引用

From contigs to chromosomes: automatic Improvement of Long Read Assemblies (ILRA)
José L Ruiz, Susanne Reimering, Mandy Sanders, Juan David Escobar-Prieto, Nicolas M. B. Brancucci, Diego F. Echeverry, Abdirahman I. Abdi, Matthias Marti, Elena Gomez-Diaz, Thomas D. Otto

bioRxiv, Posted August 01, 2021

 

参考

https://blogs.oracle.com/oswald/importing-a-vdi-in-virtualbox

 

真核生物ゲノムに存在するLTRレトロトランスポゾンをde novoで発見してアノテーションを付ける LTRpred

 

LTRレトロトランスポゾンは、2つの類似したロングターミナルリピート(LTR)を含む可動性遺伝因子の一種である。現在、LTRレトロトランスポゾンは、主に従来の相同性検索の手法で真核生物のゲノムにアノテーションされている。そのため、既知の因子のアノテーションに限定されている。本論文では、既知の因子のライブラリに頼ることなく、新しいLTRレトロトランスポゾンを同定することができるde novoの計算手法を報告する。具体的には、近似文字列マッチング技術とタンパク質ドメイン解析を用いて、無傷のLTRレトロトランスポゾンを同定した。さらに、プロファイル隠れマルコフモデル(pHMM)を用いて、部分的に削除されたLTRやソロのLTRを同定する。その結果、この方法は、すべてのタイプのLTRレトロトランスポゾンを新規に同定することができる。この方法を、C. elegans vs. C. briggsae、D. melanogaster vs. D. pseudoobscuraの2組の真核生物ゲノムでテストした。 線虫やD. melanogasterのLTRレトロトランスポゾンは、従来のアノテーション方法で集中的に研究されてきた。本研究では、これまでの研究と比較して、新たな無傷のLTRレトロエレメントと、新たな推定ファミリーを発見した。このことは、よく研究されている生物であっても、まだ発見されていない新しいレトロエレメントがあることを意味しているかもしれない。本手法の感度と精度を評価するために、本結果を、全長のLTRレトロトランスポゾンを主に同定する既報の手法であるLTR_STRUCと比較した。その結果、どちらの方法も同等の数のLTRレトロエレメントを同定することができた。しかし、LTR_STRUCTが約1/3の因子を見逃したのに対し、LTRpredはC. elegansのほぼ全ての既知の因子を同定することができた。また、D. melanogasterのゲノムにおいて、LTR_STRUCTよりも多くの既知のLTRレトロエレメントを同定することができた。また、完全にはFinishしていない他の2つのゲノム、C. briggsaeとD. pseudoobscuraにおいても、いくつかのLTRレトロエレメントを同定した。一方、従来の方法では、これらの因子を同定することができなかった。最後に、同定された因子の系統的な分布と染色体上の分布について考察する。

 

Githubより

転移可能な因子(TE)は、真核生物のゲノムの大部分を占めている。かつてTEは、生存率を高めるために宿主のゲノムに入り込むことができる利己的な可動性因子と考えられていた。そのため、TEは宿主ゲノムにジャンクDNAの痕跡を残し、通常、新しいゲノムの配列決定、アセンブルアノテーションを行う際の副産物とみなされていた。しかし、この図式は徐々に変わりつつあり(Drost & Sanchez, 2019)、TEは多様な新規表現型の生成に関与していることが示されている。

今日、可動性因子のde novo検出は、ゲノムアセンブリ内の既知の可動性因子に関連することができるあらゆるタイプの繰り返し配列、TEファミリー、またはレムナントDNA遺伝子座を検出しようとするアノテーションツールによって実行されます。このような作業の主な目的は、TEに関連する可能性のある遺伝子座を最大限に引き出すことである。このようなアノテーションが成功すれば、宿主のゲノムをマスクしたり、宿主の遺伝子に焦点を当てた古典的な(フィロ)ゲノミクス研究を行うことができます。

LTRpredパイプラインは、他のすべてのアノテーションツールとは異なる目的を持っています。特にLTRレトロトランスポゾンに焦点を当て、機能的で移動可能な因子のみをアノテーションすることを目的としています。このようなアノテーションは、真核生物のゲノムにおけるレトロトランスポゾンの活動を研究し、特定のレトロトランスポゾンファミリーが人為的に活性化され、ゲノムをより高速に変異させるために利用できるかどうかを理解するために非常に重要です。LTRpredは、fasta形式の任意のゲノムアセンブリファイルを入力とし、機能的で潜在的に移動可能なLTRレトロトランスポゾンの詳細なアノテーションを生成します。

 

Reference

https://hajkd.github.io/LTRpred/reference/index.html

Tutorial

Introduction to LTRpred • LTRpred

 

インストール

Github

https://hub.docker.com/r/drostlab/ltrpred_rstudio

配布されているRstudioのdockerイメージを使う。

docker pull drostlab/ltrpred_rstudio
docker run -e PASSWORD=ltrpred --rm -p 8787:8787 -ti drostlab/ltrpred_rstudio

http://localhost:8787 にアクセスする。

Username: rstudio

Password: ltrpred

 

 

デモデータのラン

LTRpred関数を使用し、デフォルトのパラメータで実行する。

# Perform de novo LTR transposon prediction for the Human Y chromosome
LTRpred::LTRpred(genome.file = system.file("Hsapiens_ChrY.fa", package = "LTRpred"))

 結果はMore => exportからダウンロードできる。

f:id:kazumaxneo:20210802231550p:plain

出力

f:id:kazumaxneo:20210802231756p:plain

Hsapiens_ChrY_LTRpred_DataSheet.tsv

f:id:kazumaxneo:20210802232727p:plain

出力される内容はチュートリアル中で説明されています。

https://hajkd.github.io/LTRpred/articles/Introduction.html#ltrpred-output

 

 

 実際のランではゲノムをアップロード後、genome.file = でユーザーのfastaファイルのパスを指定する。

LTRpred::LTRpred(genome.file = "input_genome.fasta")

 

メタゲノム向けの関数LTRpred.metaも実装されています。

引用
De novo identification of LTR retrotransposons in eukaryotic genomes
Mina Rho, Jeong-Hyeon Choi, Sun Kim, Michael Lynch, Haixu Tang

BMC Genomics. 2007 Apr 3;8:90

 

 

メタゲノムのリードカバレッジ とrelative abundanceの計算ツール coverM

2021 8/5追記、9/6 追記、10/8 contigコマンド修正

2022/05/09 help修正、06/03 コマンド

2023/08/10 追記

2024/04/12 構成を整頓

 

Githubより

CoverMは、メタゲノミクスアプリケーションに特化した、設定可能で使いやすく、高速なDNAリードカバレッジおよび相対的な存在比の計算ツールである。ゲノム/MAGのカバレッジをまたは個々のコンティグのカバレッジを計算する。入力は、リファレンスごとにソートされたBAMファイル、または様々なフォーマットの生のリードとリファレンスゲノムのいずれかである。

 

HP

https://wwood.github.io/CoverM/coverm-genome.html#name

 

2024/01/25

 

インストール

ubuntu18.04LTSでテストした(linuxマシン使用)。

依存

  • samtools v1.9
  • tee, which is installed by default on most Linux operating systems.
  • man, which is installed by default on most Linux operating systems.

some mapping software:

  • minimap2 v2.17-r941 (2.18 will not work)
  • bwa-mem2 v2.0

For dereplication:

  • Dashing v0.4.0
  • FastANI v1.3

Github

#bioconda (link)
mamba install -c bioconda -y coverm

#cargoにも対応
cargo install coverm

coverm

$ coverm

 

Mapping coverage analysis for metagenomics

 

Usage: coverm <subcommand> ...

 

Main subcommands:

contig Calculate coverage of contigs

genome Calculate coverage of genomes

 

Less used utility subcommands:

make Generate BAM files through alignment

filter Remove (or only keep) alignments with insufficient identity

cluster Dereplicate and cluster genomes

shell-completion

Generate shell completion scripts

 

Other options:

-V, --version Print version information

 

Ben J. Woodcroft <benjwoodcroft near gmail.com>

> coverm contig

$ coverm contig

error: The following required arguments were not provided:

--coupled <coupled>...

--interleaved <interleaved>...

-1 <read1>...

-2 <read2>...

--reference <reference>...

--single <single>...

 

USAGE:

coverm contig --contig-end-exclusion <contig-end-exclusion> --coupled <coupled>... --interleaved <interleaved>... --mapper <mapper> --methods <methods>... --min-covered-fraction <min-covered-fraction> --output-format <output-format> -1 <read1>... -2 <read2>... --reference <reference>... --single <single>... --threads <threads> --trim-max <trim-max> --trim-min <trim-min>

 

For more information try --help

(base) kazu@kazu:/media/kazu/optane/TY1$ coverm contig -h

 

coverm contig

Calculate coverage of individual contigs

 

Example: Calculate mean coverage from reads and assembly:

 

coverm contig --coupled read1.fastq.gz read2.fastq.gz --reference assembly.fna

 

Example: Calculate MetaBAT adjusted coverage from a sorted BAM file, saving

the unfiltered BAM files in the saved_bam_files folder:

 

coverm contig --method metabat --bam-files my.bam

--bam-file-cache-directory saved_bam_files

 

See coverm contig --full-help for further options and further detail.

> coverm genome -h

$ coverm genome -h

 

coverm genome

Calculate coverage of individual genomes

 

Example: Map paired reads to 2 genomes, and output relative abundances

to output.tsv:

 

coverm genome --coupled read1.fastq.gz read2.fastq.gz

--genome-fasta-files genome1.fna genome2.fna -o output.tsv

 

Example: Calculate coverage of genomes defined as .fna files in

genomes_directory/ from a sorted BAM file:

 

coverm genome --bam-files my.bam --genome-fasta-directory genomes_directory/

 

Example: Dereplicate genomes at 99% ANI before mapping unpaired reads:

 

coverm genome --genome-fasta-directory genomes/ --dereplicate

--single single_reads.fq.gz

 

See coverm genome --full-help for further options and further detail.

 

>  coverm bam -h

 

$ coverm bam -h

error: Found argument 'bam' which wasn't expected, or isn't valid in this context

 

USAGE:

coverm [FLAGS] [SUBCOMMAND]

 

For more information try --help

 

> coverm filter -h

coverm filter

Filter BAM file alignments

 

Example: Filter a BAM file by removing alignments shorter than 50bp:

 

coverm filter --bam-files input.bam --output-bam filtered.bam

--min-read-aligned-length 50

 

Example: Filter inverse: Keep alignments that have <95% alignment identity

and those which do map at all. Note that the output BAM file will likely

records that are still mapped, but align with < 95% identity. Use 16

threads for output compression:

 

coverm filter -b input.bam -o inverse_filtered.bam --inverse

--min-read-percent-identity 95 --threads 16

 

See coverm filter --full-help for further options and further detail.

> coverm cluster -h

$ coverm cluster -h

 

coverm cluster

Cluster (dereplicate) genomes

 

Example: Dereplicate at 99% (after pre-clustering at 95%) a directory of .fna

FASTA files and create a new directory of symlinked FASTA files of

epresentatives:

 

coverm cluster --genome-fasta-directory input_genomes/ 

--output-representative-fasta-directory output_directory/

 

Example: Dereplicate a set of genomes with paths specified in genomes.txt at

95% ANI, after a preclustering at 90% using the MinHash finch method, and

output the cluster definition to clusters.tsv:

 

coverm cluster --ani 95 --precluster-ani 90 --precluster-method finch

--genome-fasta-list genomes.txt 

--output-cluster-definition clusters.tsv

 

See coverm cluster --full-help for further options and further detail.

--full-helpをつけてコマンドを実行するとオプションの詳細が確認できる。 

 

 

実行方法

coverm genome ゲノム単位のカバレッジ(ゲノムモード)の計算

ゲノムモードの計算は、コンティグ単位のカバレッジ(コンティグモード)の計算と似ているが、報告の単位がコンティグ単位ではなくゲノム単位である点が異なる。カバレッジに基づいて塩基の位置を除外する計算方法では、すべてのコンティグからのすべての位置が一緒に考慮されます。例えば、2,000,000bpのコンティグがあり、そのコンティグの全ての位置のカバレッジが1Xである場合、2000bpの全ての位置がカバレッジでソートされた位置の上位5%に入るため、trimmed_meanは0となります。

 

A、マッピング済みのbamを指定

bin配列をcatで固めたリファレンスにマッピングしてbamファイルを作る(*1)。coverMを実行する時には、bamファイルとcatで固める前の各ゲノム配列のfastaを保存したディレクトリを指定する。fastaファイルの拡張子が.fnaなら”-x fna”とする。

#relative_abundance
coverm genome --bam-files input.bam --genome-fasta-directory bin_dir -x fna -m relative_abundance > out.tsv

#mean
coverm genome --bam-files input.bam --genome-fasta-directory bin_dir -x fna -m mean > out.tsv

#TPM
coverm genome --bam-files input.bam --genome-fasta-directory bin_dir -x fna -m tpm > out.tsv

#read count
coverm genome --bam-files input.bam --genome-fasta-directory bin_dir -x fna -m count --min-covered-fraction > out.tsv
  • -f, --genome-fasta-files  Path(s) to FASTA files of each genome

  • -d, --genome-fasta-directory  Directory containing FASTA files of each genome.

  • -x, --genome-fasta-extension  File extension of genomes in the directory specified with -d/--genome-fasta-directory. [default: fna]

  • --single-genome   All contigs are from the same genome. Requires --reference. [default: not set]
  • -r, --reference   FASTA file of contigs e.g. concatenated genomes or metagenome assembly, or minimap2 index (with --minimap2-reference-is-index), or BWA index stem (with -p bwa-mem). If multiple references FASTA files are provided and
    --sharded is specified, then reads will be mapped to references separately as sharded BAMs. NOTE: If genomic FASTA files are specified elsewhere (e.g. with --genome-fasta-files or --genome-fasta-directory), then --reference
    is not needed as a reference FASTA file can be derived by concatenating input genomes. However, while not necessary, --reference can be specified if an alternate reference sequence set is desired.
  • -m, --methods   Method(s) for calculating coverage [default: relative_abundance]. A more thorough description of the different methods is available at https://github.com/wwood/CoverM#calculation-methods

 

B、fastqを指定

マッピングにはminimap2が使用される。

#1組のペアエンド
coverm genome -1_R1.fq.gz -2 in_R2.fq.gz --genome-fasta-directory genome_dir -x fna -o out.tsv

#複数のペアエンドfastq
coverm genome --coupled sample1_R1.fq.gz sample1_R2.fq.gz sample2_R1.fq.gz sample2_R2.fq.gz sample3_R1.fq.gz sample3_R2.fq.gz --genome-fasta-directory genome_dir -x fna -o out.tsv
  • -1   Forward FASTA/Q file(s) for mapping. These may be gzipped or not.

  • -2   Reverse FASTA/Q file(s) for mapping. These may be gzipped or not.

  • -c, --coupled   One or more pairs of forward and reverse possibly gzipped FASTA/Q files for mapping in order <sample1_R1.fq.gz> <sample1_R2.fq.gz> <sample2_R1.fq.gz> <sample2_R2.fq.gz> ..

 

複数の定量方法がサポートされている。デフォルトではrelative_abundanceとなっている。"-m"オプションを使って変更できる。

f:id:kazumaxneo:20210801223650p:plain

(HPより)

* ゲノムサイズの補正も行われています(2022/0906追記)

 

結果を整形し、階層的クラスタリングしてheatmapで視覚化する。

https://github.com/tillrobin/iMGMC/blob/master/tutorials/map-to-MAGs-HeatmapR.md

 

coverm filter  identityが不十分なアラインメントを削除する

coverm filter -b input.bam -o filtered.bam --inverse --min-read-percent-identity 95 --threads 16

 

coverm contig  コンティグ単位のカバレッジの計算

coverm contig --bam-files input.bam

 

coverm make  アライメントによるBAMファイルの生成

coverm cluster  ゲノムのdereplicationとクラスター化

 

その他

  • coverm genomeではANI基準でdereplicationを行うオプションも存在する。詳細は"coverm genome --full-help"で確認できる。
  • coerMのパラメータ例;https://www.nature.com/articles/s41467-021-22203-2
  • 大量のfastqファイルをリストで指定(#149)することはできないので、1つずつランし、後で結合する。デフォルトのrelative_abundance正規化に影響はない。
  • ジョブはシングルスレッドらしい。大量にfastqがあるときは並列ランする(ピークメモリは配列数で変わる。1000個のMAGだと20~30giga byesくらい)。
  • *1 たくさんおbin.fastaをcatで結合したファイルをリファレンスとしてマッピングする時のアライナーは、minimap2をあらかじめindexingしてから使うのが高速だが、minimap2は、多くのMAGを固めたリファレンス(>100)に実際の外環境を読んだfastqをマッピングすると、稀に10~30倍速度が低下する現象が確認される(v.2.26使用)。再現性が不明だが、全くマッピングされないfastqではこの現象は起きず、稀にマッピングされるMAGリファレンスが含まれるfastqを使った時、時々起こるようである(遭遇頻度は5%以下)。マッピング速度が安定しているbwa-mem2がお勧め。ただしメモリ使用量がかなり高いので注意したい。bowtie2の”sensitive setting”と比べてもマッピング感度は高く、minimap2とbwa memはbowtie2の2-3倍のリードがアラインされることもある(差が出るのはリファレンスから距離があるリアルメタデータに限られる)。minimap2とbwa memを比べると、微量にbwa memの方がアラインされるリードは多いか(大規模な比較ではないので注意)。
  • 作業中、coverm genomeなどはシステムディスクに数十GBの作業領域を確保する(/tmp)。たくさんのサンプルを扱う時は、システムディスクが一杯にならないようにTMPDIR環境変数を空容量の多いディスクに変更する。例えば、

mkdir media/kazu/8TBHDD1/tmp

export TMPDIR=/media/kazu/8TBHDD1/tmp

のようにする。

引用

GitHub - wwood/CoverM: Read coverage calculator for metagenomics

 

関連