macでインフォマティクス

macでインフォマティクス

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

原核生物ゲノム中の偽遺伝子候補を検出する Pseudofinder

 

 原核生物のゲノムは一般的に遺伝子密度が高く、偽遺伝子(機能していない、あるいは不活性化された遺伝子の残骸)は比較的少ない。しかし、近年の生態系の変化や、共生生物や病原体が経験したような極端な個体数の減少など、特定の状況下では、偽遺伝子が急速に蓄積され、ゲノムのかなりの部分を占めるようになることがある。したがって、偽遺伝子を同定することは、原核生物のゲノムに作用する進化の力や、ゲノムにコード化された機能的可能性を理解するための重要なステップである。ここでは、偽遺伝子の同定と解析に特化したオープンソースソフトウェア「Pseudofinder」を紹介する。Pseudofinderの多面的でリファレンスベースのアプローチにより、遺伝子コールパイプラインでは典型的に見逃されてしまう高度に分解された偽遺伝子や、1つまたは数個の不活性化変異を持つだけの新しく形成された偽遺伝子を含む、多種多様な偽遺伝子を検出する能力があることを実証する。さらにPseudofinderは、偽遺伝子形成の初期段階を示す可能性のある、緩和された選択を受けている無傷の遺伝子を検出することができる。Pseudofinderをアノテーションパイプラインに導入することで、配列決定された微生物の機能的可能性が明らかになるだけでなく、細菌や古細菌のゲノムの進化のダイナミクスに関する新たな洞察や仮説を生み出すことができるだろう。

 

pusedo geneの説明やツールのイントロダクション

実際の使用手順

 

インストール

Github

git clone https://github.com/filip-husnik/pseudofinder.git
cd pseudofinder/
bash setup.sh #condaの環境作成とパス設定(中身を確認してから実行すること)
conda activate pseudofinder

> pseudofinder.py help

$ pseudofinder.py help

pseudofinder.py annotate: Flags candidate pseudogenes.

pseudofinder.py reannotate: Begins the annotate pipeline post-BLAST.

pseudofinder.py visualize: Generates a 3D plot to visualize different combinations of settings.

pseudofinder.py selection: dN/dS analysis via pairwise comparison against a reference genome. Pseudogenes inferred from relaxed selection.

pseudofinder.py test: Runs all commands on a test dataset and checks that the outputs are as expected.

> pseudofinder.py annotate -h

$ pseudofinder.py annotate -h

usage: [pseudofinder.py annotate -g GENOME -db DATABASE -op OUTPREFIX] or [pseudofinder.py annotate --help] for more options.

 

optional arguments:

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

 

Required arguments:

  -g GENOME, --genome GENOME

                        Please provide your genome file in the genbank format.

  -db DATABASE, --database DATABASE

                        Please provide name (if $BLASTB is set on your system) or absolute path of your blast database.

  -op OUTPREFIX, --outprefix OUTPREFIX

                        Specify an output prefix.

 

Adjustable parameters:

  -t THREADS, --threads THREADS

                        Please provide total number of threads to use for blast, default is 4.

  -i INTERGENIC_LENGTH, --intergenic_length INTERGENIC_LENGTH

                        Please provide length of intergenic regions to check, default is 30 bp.

  -l LENGTH_PSEUDO, --length_pseudo LENGTH_PSEUDO

                        Please provide percentage of length for pseudo candidates, default is 0.65. 

                        Example: "-l 0.50" will consider genes that are less than 50% of the average length of similar genes.

  -s SHARED_HITS, --shared_hits SHARED_HITS

                        Percentage of blast hits that must be shared in order to join two nearby regions, default is 0.5. 

                        Example: "-s 0.50" will merge nearby regions if they shared 50% of their blast hits.

  -e EVALUE, --evalue EVALUE

                        Please provide e-value for blast searches. Default is 1e-4.

  -d DISTANCE, --distance DISTANCE

                        Maximum distance between two regions to consider joining them. Default is 1000.

  -hc HITCAP, --hitcap HITCAP

                        Maximum number of allowed hits for BLAST. Default is 15.

  -ce, --contig_ends    Forces the program to include intergenic regions at contig ends. If not specified,

                         the program will ignore any sequence before the first ORF and after the last ORF on a contig.

  -it INTERGENIC_THRESHOLD, --intergenic_threshold INTERGENIC_THRESHOLD

                        Number of BlastX hits needed to annotate an intergenic region as a pseudogene.

                        Calculated as a percentage of maximum number of allowed hits (--hitcap).

                        Default is 0.3.

  -ref REFERENCE, --reference REFERENCE

                        Please provide a reference genome if you would like for the program to carry out

                        maximum-likelihood phylogenentic analysis using PAML, and calculate dN/dS values for each 

                        identified ORF in your query genome.

  -dnds MAX_DNDS, --max_dnds MAX_DNDS

                        maximum dN/dS value for gene too be considered 'intact'. Default is 0.3.

  -M MAX_DS, --max_ds MAX_DS

                        maximum dS value for dN/dS calculation. Default is 3.0.

  -m MIN_DS, --min_ds MIN_DS

                        minimum dS value for dN/dS calculation. Default is 0.001.

  -di, --diamond        Use DIAMOND BLAST as the search engine. If not specified,

                         standard BLAST will be used.

  -skpdb, --skip_makedb

                        if a dmnd or blast db already exists for the provided database, please include this flag to skip this step

  -nbl, --no_bidirectional_length

                        Pseudofinder by default will consider the length_pseudo parameter for assessing both truncated and run-on pseudogenes.By adding this flag, length_pseudo will only be used for truncated pseudogenes, and pseudofinder will not check for run-on pseudogenes.

  -al, --use_alignment  Feature currently in development, use at own risk. This flag will make pseudofinder consider alignment quality between query and hits when considering pseudogene flags.

 

 

 

データベース

データベースの選択は、Pseudofinderのスピードと感度にとって非常に重要な役割を果たす。関連するタンパク質配列を欠いている場合、感度が低下する可能性があるため、nrのタンパク質配列などを使うことが推奨される。注意点だが、BLASTのデータベースはPseudofinderラン中に作成される。既存のBLASTPデータベースを指定しないように気を付ける(指定すると消える)。

 

実行方法

特にMinION/PacBioのアセンブリから偽遺伝子を見つける場合、コンセンサス配列を改善するために前もってIlluminaのリードでPilonのpolishingを数ラウンド行う。しかし、Pseudofinderは、MinION/PacBioのみのアセンブリで遺伝子を壊す可能性のあるシーケンサー/ベースコールエラーを見つけるのにも使用できる。(Githubより)

 

1、アノテーション

Prokka https://github.com/tseemann/prokka で生成した genbank (.gbf/.gbk) ファイルを用意する。"--compliant"および" --rfam"フラグを付けてランすることを推奨する(rRNA などの ncRNA とオーバーラップする ORF は、データベース上で「仮説的なタンパク質」として誤ってアノテーションされることがある)。遺伝子予測が優れていればいるほど、Pseudofinderの結果の信頼性は高くなる。

prokka --compliant --rfam contigs.fa
  • --compliant     Force Genbank/ENA/DDJB compliance: --addgenes --mincontiglen 200 --centre XXX (default OFF)
  • --rfam     Enable searching for ncRNAs with Infernal+Rfam (SLOW!) (default '0')

 

2、pseudofinderのラン

pseudofinder.py annotateコマンドを使う。

pseudofinder.py annotate --genome PROKKA_dir/genome.gbk --outprefix PREFIX --database database/proteome.faa --threads 16

出力例

f:id:kazumaxneo:20211018233224p:plain

出力は、intactな遺伝子のコード領域配列(.faa)とそのアノテーションファイル(.GFF3)、intactな遺伝子のプロテオームにBLASTPを実行した結果をタブ区切りで出力したもの、遺伝子間領域(fasta)、遺伝子間領域に対するBLASTXの出力をタブ区切りで表示したファイル(.TSV)、偽遺伝子候補の配列(.fasta)とアノテーションファイル(.GFF3)、dN/dSのサマリーファイル、ログなどになる。

 

PREFIX_map.pdf

クロモソームマップ。遺伝子は内側のトラックに青で表示され、候補偽遺伝子は外側のトラックに赤で表示される。

f:id:kazumaxneo:20211018233214p:plain

 

pseudofinder.py Selection

あるゲノムを別の近縁のゲノムと比較する。相同性のある遺伝子が特定された後、このモジュールはアライメントされた遺伝子に対してPAMLを実行し、コドン・アラインメントを生成し、遺伝子ごとのdN/dS値を計算する。これらのdN/dS値は、中立的な選択や潜在的な暗号化された偽遺伝子を推測するために使用できる。このモジュールは Annotate コマンドの中で、”-ref"フラグを使ってclosely relatedなゲノムを与えることで起動できる。

 

pseudofinder.py Reannotate
アノテートワークフローを、計算量の多いBLASTとコドンアライメントのステップの後から実行する。下流のパラメータを変更したい場合、非常に迅速にpseudogenes の再アノテーションを行うことができる。

 

pseudofinder.py visualize

annotateでも視覚化は行われるが、視覚化パラメータを変更してやり直すためにvisualizeコマンドが用意されている。このコマンドは、'--length_pseudo'と'--shared_hits'の任意の組み合わせに基づいて検出される偽遺伝子の数を表示する。

 

Binderでもランできるようになっています。レポジトリを確認して下さい。

引用

Pseudofinder: detection of pseudogenes in prokaryotic genomes
Mitchell J. Syberg-Olsen,  Arkadiy I. Garber,  Patrick J. Keeling,  John P. McCutcheon,  Filip Husnik

bioRxiv, Posted October 08, 2021

 

関連