サイトポリシー サイトマップ
2016 年 09 月 27 日

ABYSS

システム上のインストールパス

 /usr/local/bin

システム上の利用推奨ノード

ABYSSの一部のモジュールはMPI並列に対応している為、大規模なアセンブリングに対してもThinノードを利用することが可能です。また、同一マシン上のマルチスレッド動作にも対応している為、大規模なアセンブリングをMedium計算ノード、FAT計算ノード上で実行することも可能です。

基本的な使用方法

開発元サイトのドキュメントサイトを参照してください。

開発元サイトからの一部引用になりますが、以下のABYSSの概要について記述します。

ABYSSは、ドライバースクリプトのabyss-peと以下のプログラム群から構成されます。

  • ABYSS: de Bruijn graph assembler(マルチスレッド版、1マシン上でのアセンブラの本体)
  • ABYSS-P: parallel (MPI) de Bruijn graph assembler(MPI並列版)
  • AdjList: find overlapping sequences
  • DistanceEst: estimate the distance between sequences
  • MergeContigs: merge sequences
  • MergePaths: merge overlapping paths
  • Overlap: find overlapping sequences using paired-end reads
  • PathConsensus: find a consensus sequence of ambiguous paths
  • PathOverlap: find overlapping paths
  • PopBubbles: remove bubbles from the sequence overlap graph
  • SimpleGraph: find paths through the overlap graph
  • abyss-fac: calculate assembly contiguity statistics
  • abyss-filtergraph: remove shim contigs from the overlap graph
  • abyss-fixmate: fill the paired-end fields of SAM alignments
  • abyss-map: map reads to a reference sequence
  • abyss-scaffold: scaffold contigs using distance estimates
  • abyss-todot: convert graph formats and merge graphs

MPI並列に対応したジョブの投入方法

マルチスレッド並列に対応したジョブの投入方法

Velvet

インストールパス

/usr/local/pkg/velvet/current

利用推奨ノード

VelvetはMPI並列には対応しておらず、アセンブル対象によっては大量のメモリを必要とする為、Medium計算ノード、FAT計算ノードの利用が推奨されます。

基本的な使用方法

開発元サイト(EBI)のマニュアルを参照してください。

Velvetは基本的にvelveth(前処理)とvelvetg(本体)とで成り立っています。まず、velvethを実行してデータ変換処理を行います。 以下のようなジョブスクリプトを作成します。(あくまで例です。)

#$ -S /bin/bash
#$ -N velvet
#$ -cwd
export OMP_NUM_THREADS=4
export OMP_THREAD_LIMIT=4
/usr/local/pkg/velvet/current/velveth /home/username/velvet-output 21 -fastq ./scratch/*.fastq

ここでOMP_NUM_THREADS、OMP_THREAD_LIMITはマルチスレッド動作を制御しています。velvethにあまり高い並列度を与えても恐らく意味がない可能性がありますが一応指定します。

velvethの実行が終了するとデータ出力先に、以下のようなファイルが作成されます。

qsub -l month -l medium -pe def_slot 4  ./exec04.sh
次に、velvetg(アセンブラの本体)を実行します。以下のようなジョブスクリプトを作成します。(あくまで例です。)

#$ -S /bin/bash
#$ -N velvet
#$ -cwd
export OMP_NUM_THREADS=32
export OMP_THREAD_LIMIT=32
/usr/local/pkg/velvet/current/velvetg /home/username/velvet-output
以下のようなコマンドでジョブを投入します。
qsub -l month -l medium -pe def_slot 32 -l s_vmem=1G -l mem_req=1G ./exec05.sh

使用メモリの見積の仕方

velvetgモジュールの、概略のメモリ消費量の見積式がメーリングリストに投稿されています。(大元の記事)。投稿者は、Velvet Optimizer等の作者(Simon Gladman)。 これに従うと、以下の式で消費メモリ量は見積もれることになります。
Memory = -109635 + 18977*ReadSize + 86326*GenomeSize + 233353*NumReads - 51092*K
上の式中で、ReadSizeはMbase(100万base)単位、NumReadsは100万単位、KはVelvethで利用されたKmerの値です。答えはkbyte単位で出るので、Gbyteに換算したければ、1048576で割ります。この計算を行う為のcgiで提供しているサイトが有るようです。(URL(本サイト外))

特記事項

本システムでは、本システムの設定に依らない、Velvetの一般的な使用方法、またVelvetとユーザのデータの組み合わせで発生すると推測される不具合のお問い合わせについてはお答えしかねますので予めご了承ください。それらについてはユーザご自身が開発者に直接お問い合わせ頂くようお願い致します。

SOAPdenovo

システム内のインストールパス

/usr/local/pkg/SOAPdenovo/1.05/SOAPdenovo-V1.05/bin

システムでの使用推奨ノード

Medium計算ノードあるいはFAT計算ノード

SOAPdenovoは、MPI並列には対応していません。この為、対象データが大きい場合、稼働させられるのはMedium計算ノード(2TBメモリ)か、FAT計算ノード(10TBメモリ)ということになります。

基本的使用方法

開発元サイトのWebページを参照してください。

SOAPdenovoのホームページ

実行時オプション(配布パッケージのREADMEより)
	-s	STR	コンフィギュレーションファイル名
	-o	STR	output graph file prefix
	-g	STR	input graph file prefix
	-K	INT	K-mer size [default 23]
	-p	INT	スレッド数, n threads [default 8](重要)
	-R		use reads to solve tiny repeats [default no]
	-d		remove low-frequency K-mers with single occurrence [default no] 
	-D		remove edges comprised by entirely single frequency K-mers [default no]
	-F		intra-scaffold gap closure [default no]
	-L		minimum contigs length used for scaffolding
	-a		initMemoryAssumption: Initiate the memory assumption to avoid further reallocation

コンフィギュレーションファイルの例

max_rd_len=125
[LIB]
avg_ins=200
asm_flags=3
reverse_seq=0
rank=1
q1=/home/username/SRA/SRP000220/SRX000429/SRR001665_1.fastq
q2=/home/username/SRA/SRP000220/SRX000429/SRR001665_2.fastq

実行例

上記のコンフィギュレーションファイル例を利用した、サンプルのジョブスクリプトを以下に示します。
#!/bin/sh
#$ -S /bin/sh
#$ -cwd
export LANG=C
export PATH=$PATH:/usr/local/pkg/SOAPdenovo/1.05/SOAPdenovo-V1.05/bin
/usr/local/pkg/SOAPdenovo/1.05/SOAPdenovo-V1.05/bin/soapdenovo-127mer all -s ./denovo.config -o /home/username/outputdir -K 31 -p 4

このスクリプトをジョブ管理システムに対して以下のように投入します。(Medium計算ノードに投入したい場合の例)

qsub -l month -l medium -l s_vmem=64G -l mem_req=64G -l def_slot=4 assemble.sh
実行結果例

Version 1.05: released on July 29th, 2010

pregraph -s ./denovo.config -K 31 -p 4 -o /home/username/SRA/output
In ./denovo.config, 1 libs, max seq len 125, max name len 256

4 thread created
read from file:
 /home/username/SRA/SRR001665_1.fastq
read from file:
 /home/username/SRA/SRR001665_2.fastq
time spent on hash reads: 43s, 20816448 reads processed
[LIB] 0, avg_ins 200, reverse 0
17844964 nodes allocated, 124898688 kmer in reads, 124898688 kmer processed
12605079 linear nodes
time spent on marking linear nodes 1s
time spent on pre-graph construction: 44s

deLowKmer 0, deLowEdge 1
Start to remove tips of single frequency kmers short than 62
2684260 tips off
4 thread created
711137 linear nodes
Start to remove tips which don't contribute the most links
kmer set 0 done
kmer set 1 done
kmer set 2 done
kmer set 3 done
263205 tips off
4 thread created
0 linear nodes
time spent on cutTipe: 8s

58929 (29465) edges 5405 extra nodes
time spent on making edges: 3s

In file: ./denovo.config, max seq len 125, max name len 256

4 thread created
read from file:
 /home/username/SRA/SRR001665_1.fastq
read from file:
 /home/username/SRA/SRR001665_2.fastq
20816448 reads processed
time 13,5,13,4,1,0,0
0 markers outputed
done mapping reads, 2992026 reads deleted, 37709 arcs created
[LIB] 0, avg_ins 200, reverse 0
time spent on mapping reads: 37s

28758 vertex outputed
overall time for lightgraph: 1m

contig -g /home/username/SRA/output -M 1
there're 28758 kmers in vertex file
there're 58929 edge in edge file
done sort
input 58929 edges
57714 pre-arcs loaded
start to pinch bubbles, cutoff 0.100000, MAX NODE NUM 3, MAX DIFF 2
5057 startingPoints, 30595 dheap nodes
1355 pairs found, 224 pairs of paths compared, 147 pairs merged
sequenc compare failure: 0 12 65 0
DFibHeap: 742 Nodes allocated
a linear concatenation lap, 1288 concatenated
a linear concatenation lap, 14 concatenated
a linear concatenation lap, 0 concatenated
55976 edges in graph
time spent on bubblePinch: 0s
Remove weakly linked edges: 204 weak inner edges destroyed
404 dead arcs removed
Remove low coverage(1): 132 inner edges destroyed
391 dead arcs removed
a linear concatenation lap, 355 concatenated
a linear concatenation lap, 1 concatenated
a linear concatenation lap, 0 concatenated
54592 edges in graph
there're 58929 edges
after compacting 54593 edges left
strict 0, cutLen 62
a cutTipsInGraph lap, 15440 tips cut
a cutTipsInGraph lap, 2635 tips cut
a cutTipsInGraph lap, 203 tips cut
a cutTipsInGraph lap, 10 tips cut
a cutTipsInGraph lap, 6 tips cut
a cutTipsInGraph lap, 1 tips cut
a cutTipsInGraph lap, 0 tips cut
7591 dead arcs removed
a linear concatenation lap, 6476 concatenated
a linear concatenation lap, 714 concatenated
a linear concatenation lap, 51 concatenated
a linear concatenation lap, 0 concatenated
3520 edges in graph
there're 54593 edges
after compacting 3521 edges left
646 ctgs longer than 100, sum up 4549381bp, with average length 7042
the longest is 67094bp, contig N50 is 16576 bp,contig N90 is 4392 bp
1761 contigs longer than 32 output
time elapsed: 0m

map -s ./denovo.config -g /home/username/SRA/output -p 4
K = 31
contig len cutoff: 33

there're 1761 contigs in file: /home/username/SRA/output, max seq len 67094, min seq len 32, max name len 10
time spent on parse contigs file 0s
4 thread created
time spent on hash reads: 1s
4548311 nodes allocated, 4550041 kmer in reads, 4550041 kmer processed
time spent on De bruijn graph construction: 1s

time spent on mapping long reads: 0s

In file: ./denovo.config, max seq len 125, max name len 256

4 thread created
3521 edges in graph
read from file:
 /home/username/SRA/SRR001665_1.fastq
read from file:
 /home/username/SRA/SRR001665_2.fastq
current insert size 200, map_len 32
Output 2022695 out of 20816448 (9.7)% reads in gaps
17926953 out of 20816448 (86.1)% reads mapped to contigs
1 pe insert size, the largest boundary is 20816448

[LIB] 0, avg_ins 200, reverse 0
2136752 reads deleted
time spent on mapping reads: 44s

overall time for alignment: 0m

scaff -g /home/username/SRA/output -p 4
there're 1 grads, 20816448 reads, max read len 125
K = 31
there're 3521 edge in edge file
average contig coverage is 18, 976 contig masked
Mask contigs shorter than 33, 1036 contig masked
4510 arcs loaded
input 1761 contigs
done loading updated edges
time spent on loading edges 0s

217225 PEs with insert size 200 attached, 89 + 34793 + 0 ignored
estimated PE size 215, by 7699969 pairs
on contigs longer than 200, 7698814 pairs found,SD=10, insert_size estimated: 215
2800 new connections
all PEs attached
time spent on loading pair end info 9s

1951 link to masked contigs, 0 links on a single scaff
Insert size 200: 2799 links input
Cutoff for number of pairs to make a reliable connection: 3
52 weak connects removed (there were 1696 active cnnects))
2 circles removed
variance for insert size 20
a remove transitive lag, 38 connections removed
a remove transitive lag, 0 connections removed
Picked  110 subgraphs,4 have conflicting connections,52 have significant overlapping, 0 eligible
maskRepeat: 22 contigs masked from 43 puzzles
a remove transitive lag, 1 connections removed
a remove transitive lag, 0 connections removed
Picked  8 subgraphs,0 have conflicting connections,4 have significant overlapping, 0 eligible
non-strict linearization
Picked  4 subgraphs,0 have conflicting connections,4 have significant overlapping, 0 eligible
Masked 4 contigs, 0 puzzle left
Freezing is done....
56 contigs recovered
all links loaded
time spent on creating scaffolds 0s

the final rank
88 scaffolds from 646 contigs sum up 4344480bp, with average length 49369, 0 gaps filled
176 scaffolds&singleton sum up 4545494bp, with average length 25826
the longest is 267619bp,scaffold N50 is 95300 bp, scaffold N90 is 30919 bp
Found 0 weak points in scaffolds
Done with 88 scaffolds, 0 gaps finished, 661 gaps overall
time elapsed: 0m
time for the whole pipeline: 2m

特記事項

本システムでは、本システムの設定に依らない、SOAPdenovoの一般的な使用方法、またSOAPdenovoとユーザのデータの組み合わせで発生すると推測される不具合のお問い合わせについてはお答えしかねますので予めご了承ください。それらについてはユーザご自身が開発者に直接お問い合わせ頂くか、SOAPのメーリングリスト(Google Groups)に直接お尋ねください。

参考

以下にインターネット上で見つけられる有用と思われる資料のリンクをご紹介します。

SOAPについてのGoogle Groups

Allpaths-LG

システム内のインストールパス

/usr/local/pkg/ALLPATHS-LG/current/bin

システムでの使用推奨ノード

Medium計算ノードあるいはFAT計算ノード

ALLPATHS-LGは、MPI並列には対応していません。この為、対象データが大きい場合ALLPATHS-LGを稼働させられるのはMedium計算ノード(2TBメモリ)か、FAT計算ノード(10TBメモリ)ということになります。必要なメモリ量については、ALLPATHS-LGのFAQでは1.7byte/read base程度、mammalianサイズのゲノムアセンブリを実施するのに512GB程度のメモリが必要という記述があります。

基本的使用方法

開発元サイトのFAQとマニュアルを参照してください。

マニュアル(BroadInstitute)

FAQ(BroadInstitute)

(上記のマニュアルの内容についての質問はお答えしかねますのでご了承ください。)

基本的には

  1. in_groups.csvとin_libs.csvを対象データファイル構造に従って作成
  2. PrepareAllPathsInputs.plを実行してデータをインポート
  3. RunAllPathsLGを実行する
を最低限実施することになります。其々のフェーズのオプションについてはマニュアルに記述があるので参照してください。

実行例

開発元サイトが容易するexampleに従って実行例を参考に記述します。in_groups.csvとin_libs.csvはすでに記述されている前提です。 以下の様なスクリプト(ファイル名:prepare.sh>を作成し、PrepareAllPathsInputs.plを実行し、データを変換します。
#$ -S /bin/sh
#$ -cwd
export LANG=C
export PATH=$PATH:/usr/local/pkg/ALLPATHS-LG/current/bin
# ALLPATHS-LG needs 100 MB of stack space.  In 'csh' run 'limit stacksize 100000'.
ulimit -s 100000

mkdir -p test.genome/data

# NOTE: The option GENOME_SIZE is OPTIONAL.
#       It is useful when combined with FRAG_COVERAGE and JUMP_COVERAGE
#       to downsample data sets.
#       By itself it enables the computation of coverage in the data sets
#       reported in the last table at the end of the preparation step.

# NOTE: If your data is in BAM format you must specify the path to your
#       picard tools bin directory with the option:
#
#       PICARD_TOOLS_DIR=/your/picard/tools/bin

/usr/local/pkg/ALLPATHS-LG/current/bin/PrepareAllPathsInputs.pl\
 DATA_DIR=$PWD/test.genome/data\
 PLOIDY=1\
 IN_GROUPS_CSV=in_groups.csv\
 IN_LIBS_CSV=in_libs.csv\
 GENOME_SIZE=200000\
 OVERWRITE=True\
 | tee prepare.out
以下のようにジョブとして投入します。
qsub -l month -l medium prepare.sh

アセンブルのジョブスクリプトは以下のようになります。(ファイル名:assemble.sh)

#!/bin/sh
#$ -S /bin/sh
#$ -cwd
export LANG=C
export PATH=$PATH:/usr/local/pkg/ALLPATHS-LG/current/bin
# ALLPATHS-LG needs 100 MB of stack space.  In 'csh' run 'limit stacksize 100000'.
ulimit -s 100000
/usr/local/pkg/ALLPATHS-LG/current/bin/RunAllPathsLG \
 PRE=$PWD\
 REFERENCE_NAME=test.genome\
 DATA_SUBDIR=data\
 RUN=run\
 SUBDIR=test\
 TARGETS=standard\
 OVERWRITE=True\
 | tee -a assemble.out

このスクリプトをジョブ管理システムに対して以下のように投入します。(Medium計算ノードに投入したい場合の例)

qsub -l month -l medium -l s_vmem=32G -l mem_req=32G -pe def_slot 4 assemble.sh

対象となるデータセットの大きさを勘案してmem_req、s_vmemを指定してください。上記はあくまで例です。

またこの時に大規模なデータを対象にマルチスレッド並列でアセンブルを実行しようとする場合、マルチスレッド動作を制御する パラメータとして、RunAllPathLGのパラメータの"THREADS"を必ず指定するようにして、かつ、def_slotで指定する並列実行数と一致させてください。

THREADS=n

THREADSの指定を省略した場合、ALLPATHS-LGはホスト上のすべてのプロセッサ(コア)を使用しようとします。同一ノード上で別ユーザがジョブを投入していた場合、お互いのジョブの実行に影響が出て、結局性能が出ません。

実行が完了した後、ジョブの標準出力、標準エラー出力を確認します。この時、標準エラー出力側に、

which: no ParseMemMonitorOutput.pl in (/home/geadmin/UGER/bin/lx-amd64:/usr/lib64/qt-3.3/bin:/opt/pgi/linux86-
64/current/bin:/usr/local/pkg/java/current/bin:/opt/intel/composer_xe_2011_sp1.6.233/bin/intel64:/tmp/71908.1.month_medium.q:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/bin:/opt/intel/composer_xe_2011_sp1.6.233/mpirt/bin/intel64:
/opt/intel/itac/8.0.3.007/bin:/usr/local/pkg/ALLPATHS-LG/current/bin)

というように、ParseMemMonitorOutput.plが無い。というエラーメッセージが出力される場合がありますが、これはとりあえず気にしなくて良いようです。

これ以外にエラーメッセージが無いかどうかを、"error"、"Error"等をキーワードにして標準出力、標準エラー出力ファイルを検索して、エラーがないことを確認してください。

エラーがあった場合は、その実行エラーの原因を特定して修正してください(指定したオプション、データ依存でエラー出力される場合があります)。ALLPATHS-LGは、再実行すればそのエラー場所以降から継続実行してくれますので、エラー原因を修正してから再度ジョブを投入すれば、初めの実行が無駄では無くなります。

参考ベンチマーク

開発元サイトに記述のあるALLPATHSのテストプログラムをMediumノードで実行した場合の結果について参考性能として示します。

(通常運用中に計測。ノードCPU負荷が全体の20%程度の時に計測しています。)

--------------------------------------------------------------------------------
日  9月 09 22:31:13 2012 run on m2, pid=75413 [Apr 25 2012 10:29:14 R41554 ]
ParallelSortTest X=32 P=32
--------------------------------------------------------------------------------
memory to use = 256 GB
3.01 minutes used in ParallelSort

開発元サイトで公開されているベンチマーク結果の2倍程度の処理時間がかかっています。今後、運用中に何回かベンチマークを取得して比較予定です。

免責事項

本システムでは、ALLPATHS-LGの一般的な使用方法、オプションの指定の仕方、ALLPATHS-LGとユーザのデータの組み合わせで発生すると推測されるエラー、不具合のお問い合わせについてはお答えしかねますので予めご了承ください。それらについては開発元サイトにも記述されていますように開発者に必要データをユーザご自身が収集の上、直接開発者にお問い合わせください。参考URL

参考資料

以下にインターネット上で見つけられる有用と思われる資料のリンクをご紹介します。

CSHL Schatz Labが開催し、ホームページ上公開しているチュートリアル資料

SOAP3-DP

システム上でのインストールパス


/usr/local/pkg/SOAP3-dp/current

GPU搭載ノードにのみインストールされています

サンプルジョブスクリプト

#$ -S /bin/bash
#$ -N soap3-test
#$ -cwd
/usr/local/pkg/SOAP3-dp/current/soap3-dp pair-multi /home/username/data/refseq-rna-vertebrate_mammalian.fa.index /home/uesrname/data/SRR033573_1.fastq /home/munakata/data/SRR033573_2.fastq -u 500 -v 200

ジョブ投入時の注意事項

実際の物理メモリはそれほど要求しないが、仮想メモリがThinノードの物理搭載メモリ量以上に要求されてしまう。(87GB程度) 仮想メモリの上限制限を外す為、ジョブ投入時に以下の様にして投入する必要がある。(但し、物理メモリ量以上にmem_reqを 要求してもジョブは起動されない。)