macでインフォマティクス

macでインフォマティクス

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

( メタゲノム)ONTのロングリードをアセンブリしてコンプリートMAGsを生成する lathe

2020 4/29 実行手順修正

 

 細菌および古細菌での完全なメタゲノムアセンブリゲノム(MAG)の新規生成は、マイクロバイオーム研究における長年の目標である。既存のメタゲノムシーケンスおよびアセンブリ法では通常、完成した細菌ゲノムシーケンスが得られないため、類似のコンティグをグループ化または「ビニング」することでゲノムドラフトが形成される。このアプローチは、細菌ゲノムの膨大なコレクションを生み出し、微生物の世界に対する認識を大幅に拡大した。

 ビニングの品質は、主に基礎となるアセンブリのサイズと連続性に依存する。アセンブリの連続性が高まると、各ゲノムを形成するためにグループ化する必要があるコンティグが少なくなり、より大きくなるため、ゲノムビニングの感度と特異性が向上する。リードクラウドシーケンスを含むシーケンスおよびアセンブリテクノロジーの進歩により、MAGの品質は向上している。しかし、繰り返しシーケンスを正しく配置する能力には限界がある。

 repetititve elementsのサイズは、数十塩基対から数百キロベースまでの範囲に及ぶ。ロングリードは、ミニチュア逆方向反復配列転移因子、トランスポゾン、遺伝子複製、プロファージ配列などの一般的な反復因子全体に及ぶことがある。最近、ナノポアおよびPacBioロングリードアセンブリが腸内細菌叢およびその他の微生物叢に適用された。しかし、腸内細菌叢を分析するためのロングリードの適用は、便から高分子量(HMW)DNAを抽出する効率的な方法の欠如により妨げられてきた。標準的なビードビーティングは広範囲のせん断をもたらす可能性があり、固相可逆固定化(SPRI)ビードの「クリーンアップ」ステップは数百塩基対の低いDNAフラグメントを除去するが、多くの場合、バクテリア全体をスキャホールドするのに十分な大きさのDNAフラグメントを濃縮できない。穏やかなビードビーティングはせん断を減らすことができるが、溶解が困難な生物からDNAを抽出できない場合がある。したがって、ゲノムアセンブリの限界を克服するために、グラム陽性菌グラム陰性菌の両方から反復エレメントにまたがるDNAの長い断片を抽出する方法が必要である。

 DNA抽出およびゲノムアセンブリプロトコルを含む、糞便サンプルのナノポアシーケンスのワークフローを示す(論文補足図1)。本DNA抽出プロトコルは、培養バクテリアの抽出方法から適応されており、溶解酵素のカクテルによる細胞壁酵素分解、フェノール-クロロホルム抽出、その後のRNAse AおよびプロテイナーゼK消化、重力カラム精製、およびSPRIサイズ選択を含む。このアプローチにより、わずか300mgの糞便からロングリードシーケンシングに適したマイクログラム量の純粋なHMW DNAが生成される。このバイオインフォマティクスワークフローであるLatheは、最近報告されたOPERA-MSなどのハイブリッドアセンブリメソッドではなく、ロングリードアセンブリベースのアプローチを使用している。ナノポアまたはPacBioテクノロジーのいずれかによって、入力されたロングリードデータを生成できる。 Latheは、ベースコーリング、ロングリードアセンブリ、およびポリッシングの既存の手順と、ミスアセンブリ検出およびゲノム環状化(メソッド)の洗練されたアプローチを組み合わせている。 

 

 

 

 インストール

Github 

#condaでsnakemakeの仮想環境を作り、そこにlatheを導入
conda create -n snakemake -y
conda activate snakemake
#snakemake (bioconda)(>=5.4.3*1)
conda install -c bioconda -y snakemake
#flyeを使うならflyeを挿入
conda install -c bioconda -y flye
#またはcanuアセンブラ
conda install -c conda-forge -c bioconda Canu=1.8

git clone https://github.com/elimoss/lathe.git
cd lathe/
git pull

ONTのHPから guppyをダウンロード、パスを通す。


 

実行方法

configdファイルを準備する。

cat lathe/config.yaml

$ cat config.yaml 

sample_name: 'sample'

 

#data input

fast5_directory: '/absolute/path/to/fast5/data/' #no relative paths!

flowcell: 'FLO-MIN106'

kit: 'SQK-LSK109'

 

#workflow steps to perform

assembler: 'flye' #or canu

min_contig_size: 0 #remove contigs smaller than this from the assembly (can speed up polishing but potentially hurt genome completeness)

skip_circularization: False

skip_polishing: False

polish_both: False #should the input to short read polishing be the output of long read polishing?

short_reads: '' #Comma-separated forward and reverse optionally gzipped fastq files.  Optional.  If no reads are given, the pilon step is skipped.

 

#the below options are all related to Canu. genome_size is used by Flye as well.

canu_args: 'cnsThreads=2 cnsMemory=32'

usegrid: True #should Canu use the grid?

grid_options: '--time=80:00:00 --account asbhatt'

genome_size: '100m,250m' #Estimated genome size. The default values work well for typical healthy human gut samples.

                        #A single value can be specified instead, which will perform only one assembly and bypass

                        #merging. This would be suitable for bacterial isolate data, small datasets or very simple

                        #metagenomes.

最低限、fast5のパス、推定ゲノムサイズは修正する。任意でアセンブラの種類(defaultはflye)、 使用スレッドやメモリ使用量上限なども修正する。

 

実行方法

configファイルを指定する。/dataにconfigファイルがあり、fast5は/data/fast5にあるなら

cd /data
snakemake --use-singularity --singularity-args '--bind /data/,/scg/,/home/ ' -s Snakefile \
--configfile config.yaml --restart-times 0 --keep-going --latency-wait 30

 

*1

ubuntu18.04にて、1から環境を構築する。goとsingularityの導入(1-2)、snkaemakeの導入(3)、lathe のレポジトリのclone(4)の順に進める。

#ubuntu18.04で実行。既にcondaコマンドが使えるものとする
#1 依存の導入
apt-get update && \
sudo apt-get install -y build-essential \
sudo libssl-dev uuid-dev libseccomp-dev \
sudo pkg-config squashfs-tools cryptsetup

#2 GOの導入
export VERSION=1.13.7 OS=linux ARCH=amd64
wget -O /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz https://dl.google.com/go/go${VERSION}.${OS}-${ARCH}.tar.gz && \
tar -C /usr/local -xzf /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz
##pathを通す
echo 'export GOPATH=${HOME}/go' >> ~/.bashrc && \
echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc && \
source ~/.bashrc

#3 singularityのビルド
mkdir -p ${GOPATH}/src/github.com/sylabs && \
cd ${GOPATH}/src/github.com/sylabs && \
git clone https://github.com/sylabs/singularity.git && \
cd singularity git checkout v3.5.3 ./mconfig && \
cd ./builddir && \
make -j && \
sudo make install

#4 snakemakeの導入
conda create -n snakemake -y
conda activate snakemake
conda install -c bioconda -c conda-forge -y snakemake==3.5.4

手順はsingularityの導入マニュアルに準拠している。1-4に加えて、flye/canu、guppyを使えるようにしておく。

https://hub.docker.com/r/snakemake/snakemake/tags

 

まだベータ版だが、macでもSINGULARITY DESKTOP MACOShttps://sylabs.io/singularity-desktop-macos/)をインストールすればsingularityを利用できる。 自己解凍の.dmgに従うだけで2−3分でインストール可能。インストール後、4を実行する。

引用

Complete, closed bacterial genomes from microbiomes using nanopore sequencing

Eli L. Moss, Dylan G. Maghini & Ami S. Bhatt
Nature Biotechnology (2020)

 

参考


関連