macでインフォマティクス

macでインフォマティクス

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

シングルセルにも対応したシーケンスデータの削減と正規化ツール NeatFreq

 

 Multiple displacement amplification(MDA)は、培養できない生物のシングルセルシーケンスおよびゲノムアセンブリを可能にする[ 論文より ref.1]。 MDAはまた、メタゲノムシーケンシングでの使用のために低バイオマス環境サンプルからDNAを増幅するために頻繁に使用されるが、増幅バイアスは個々の種の存在比を変える[ ref.2]。増幅されたDNAは極端なカバレッジ変動を示し、ゲノムは散発的にしかアセンブルできない[ref.1]。 Sequence independent single primer amplification (SISPA)は、シングルセルバクテリアゲノム[ ref.4、ref.6]、ウイルスゲノム[ref.7~9]およびメタゲノム[ ref.13]を含む、培養できない生物のゲノム決定を可能にする。 SISPAで調製された配列のバイアスもまた極端なカバレッジ変動をもたらす。 両方のアプローチからのシーケンスカバレッジの偏りは、カバレッジを低減する目的でランダムにリードを選択したときにレアなシーケンスが削除される可能性が高くなる。

     デノボゲノムアセンブリでは、 大量のシーケンスデータが利用できれば、より信頼性の高いオーバーラップが形成され、より連続した領域をもたらすことができる。 しかし、入力シーケンスに非常に高いレベルの冗長性が含まれていると、より大きなコンピューティングリソースが必要になることがある。非常に多様な塩基の入力範囲を減らすことで、標準的なバクテリアゲノムのアセンブリアルゴリズムはより効率的に動作する。 以前に公開されたアルゴリズム、diginormは、各リードのカバレッジを予測するためにRMKF値を使用し、ユーザーが決定したカットオフに近づくまでリードを読み込んだ[ ref.14](diginorm紹介)。 さらなる研究では、ディープシーケンスされたメタゲノムデータをメモリ制限下でアセンブリするために、binningしてカバレッジを減らすことが検討されている[ref.15]。 カバレッジが激しく変動するデータセット内でカバレッジの正規化を実装するには、選択対象となるリードをランダム化し、両側のメイトペアの保持を最大にし、最もユニークなシーケンスを優先させる追加の機能が必要となる。

 NeatFreqは大きなシーケンスデータセットを均一なカバレッジに縮小するためのツール。このアルゴリズムは、シーケンスエラーから真の低スペクトルシーケンス(エラーではないリード)の選択を増加させる。 この目的のために、k-merの正規化を用いて、データセット中の類似した高存在量のk-merと真の低スペクトルシーケンスを分離する[ ref.16]。 このプロセスで、高スペクトルのカバレッジが減少して、バクテリアゲノムアセンブリのためのデータセットが生成される。 このパイプラインにより、複数のOLCシングルおよびシミュレートされた複数のde Bruijn graphアセンブラによって生成されたアセンブリから、利用可能な最高品質のコンセンサス・シーケンスを選択し、コンピュータ・リソースの要件を大幅に削減できるとされる。

    

インストール

cent OSに導入した。

Github

GitHub - bioh4x/NeatFreq: NeatFreq/Automaton Reference-Free Coverage Reduction Distribution Package

git clone https://github.com/bioh4x/NeatFreq.git 
chmod -R u+x NeatFreq/ #やっておかないと実行中にエラーが出た。
cd NeatFreq/

user$ perl NeatFreq.pl 

 

NeatFreq ver 1.0

.-----------------..----------------. .----------------. .----------------.  

| .--------------. | .--------------. | .--------------. | .--------------. |

| | ____  _____  | | |  _________   | | |      __      | | |  _________   | |

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

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

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

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

| ||_____|\____| | | | |_________|  | | ||____|  |____|| | |   |_____|    | |

| |              | | |              | | |              | | |              | |

| '--------------' | '--------------' | '--------------' | '--------------' |

 .----------------. .----------------. .----------------. .----------------. 

| .--------------. | .--------------. | .--------------. | .--------------. |

| |  _________   | | |  _______     | | |  _________   | | |    ___       | |

| | |_   ___  |  | | | |_   __ \    | | | |_   ___  |  | | |  .'   '.     | |

| |   | |_  \_|  | | |   | |__) |   | | |   | |_  \_|  | | | /  .-.  \    | |

| |   |  _|      | | |   |  __ /    | | |   |  _|  _   | | | | |   | |    | |

| |  _| |_       | | |  _| |  \ \_  | | |  _| |___/ |  | | | \  `-'  \_   | |

| | |_____|      | | | |____| |___| | | | |_________|  | | |  `.___.\__|  | |

| |              | | |              | | |              | | |              | |

| '--------------' | '--------------' | '--------------' | '--------------' |

'----------------' '----------------' '----------------' '----------------'  

 

Using Default Prefix : OUT

No input for -x <coverage> or input < 0.  EXITING!

 

USAGE :

NeatFreq.pl -p <prefix> -r <reads.fasta> -x <cutoff> -rpairs <interleaved_pairs.fasta> -c <tallymer_counts.txt>

-x defines RMKFcutoff, set to half of desired output coverage

-r and -rpairs may be used alone for single library testing

All mates assumed to use inny orientation.

Prepping mates: fastq_to_fasta_qual IN.fastq OUT.fasta OUT.fasta.qual

grep '>' E_COLI.shuffled.fasta | tr '>' ' ' | awk '{print $1}' > allids.txt

/home/jmccorri/scripts/NF_prod_testing/lib/extract_fastq_as_mates_F_R_and_frags.pl allids.txt separate

/home/jmccorri/scripts/NF_prod_testing/lib/extractFasta -i OUT.fastq -idlist separate.for_mate_ids.txt -o pairs.1.fasta

/home/jmccorri/scripts/NF_prod_testing/lib/extractFasta -i OUT.fastq -idlist separate.rev_mate_ids.txt -o pairs.2.fasta

/home/jmccorri/scripts/NF_prod_testing/lib/extractFasta -i OUT.fastq -idlist separate.fragment_ids.txt -o fragments.fasta

 

EXAMPLE TALLYMER RUN CMDS :

/home/jmccorri/scripts/NF_prod_testing/lib/genometools-1.4.1/installed/bin/gt suffixerator -dna -pl -tis -suf -lcp -lossless -v -parts 4 -db ALL.uniqID.fna -indexname reads

/home/jmccorri/scripts/NF_prod_testing/lib/genometools-1.4.1/installed/bin/gt tallymer mkindex -mersize 19 -minocc 1 -indexname tyr-reads-minocc1 -counts -pl -esa reads

/home/jmccorri/scripts/NF_prod_testing/lib/genometools-1.4.1/installed/bin/gt tallymer search -output qseqnum qpos counts sequence -tyr tyr-reads-minocc1 -q ALL.uniqID.fna > ALL.uniqID.19mer_counts.minocc1.txt

 

OPTIONAL

-v [silence print to screen] (always verbose in logs)

-b <bin selection method> (random or align)

random = pull randomly from set (fast)

align = run internal MSA within bins and include more low population sets (slow, -m flag required!)

-m <memory cutoff in MB> (required for use with -b random)

-z = keep all output files (bin information), normally cleaned at the end of each run

-N = provide NeatFreq install location (if not updated in script)

 

 

ランにはNeatFreqのディレクトリを-Nで指定する必要がある。面倒であれば、公式に従いperlスクリプトの先頭の$NEATFREQ_INSTALLを NeatFreqを置いたパスに修正する。

 

ラン

3段階のプロセス(preprocess、reduce、postprocess)を自動で進めるコマンドと、逐次実行するコマンドがある。ここでは自動実行コマンドを使う。

perl NeatFreq_auto.pl -N /home/uesaka/NeatFreq -z -q -k 19 -p PREFIX -m 1000 -x 10 -b align -f 33 -r ~/forward.fq -rpairs ~/reverse.fq -g

 

 

  

引用

NeatFreq: reference-free data reduction and coverage normalization for De Novo sequence assembly.

McCorrison JM, Venepally P, Singh I, Fouts DE, Lasken RS, Methé BA.

BMC Bioinformatics. 2014 Nov 19;15:357. doi: 10.1186/s12859-014-0357-3.