ヒトゲノムを扱えるハイパフォーマンスなロングリードアセンブラ Shasta

2020 3/14 動画追加


 ロングリードシーケンシング技術からヒトゲノムアセンブリを作成する現在のワークフローは、大きなコホートへの効率的な拡大を妨げるコストおよび生産時間のボトルネックを有している。著者らは11のヒトゲノム用に最適化されたPromethIONナノポアシーケンス法を実証する。 9日間、1台のマシンで実行されたシーケンスから、サンプルあたりわずか3つのフローセルを使用して、平均63倍のカバレッジ、42 KbのリードN50、90%の平均リード同一性、100 Kb +リードで6.5倍のカバレッジが達成された。これらのデータを集めるために、新しい計算ツールを導入した:Shasta - de novo long readアセンブラ、およびMarginPolish&HELEN - 一連のナノポアアセンブリポリッシングアルゴリズム。 1つの商用計算ノードで、Shastaは6時間以内に完全なヒトゲノムアセンブリを作成することができ、MarginPolish&HELENはわずか1日で結果を磨き、ナノポアリードのみからの半数体サンプルに対して99.9%の同一性(QV30)を達成できる。我々(著者ら)は、精度、コスト、および時間の観点から、二倍体、一倍体、および trio-binned のヒトサンプルのアセンブリ性能を評価し、すべての分野で現在の最先端の方法と比較して改善を実証する。さらに、Hi-Cシークエンシングを追加すると、11のゲノムすべてについて染色体レベルのscaffoldsが得られることを示す。


user documentation


London Calling 2019






本体 Github


#linuxUbuntu 16.04, and 18.04, Linux Mint 18.3, CentOS 7.6, Debian 9, Fedora 29)
chmod ugo+x shasta-Linux-X.Y.Z

curl -O -L

#docker images latestタグのダウンロード
docker pull tpesout/shasta:latest

> ./shasta-Linux-0.1.0

# ./shasta-Linux-0.1.0   

Shasta Release 0.1.0


This is the static executable for the Shasta assembler. It provides limited Shasta functionality, at reduced performance when using the default options,but has no dependencies and requires no installation.


To run an assembly, use the "--input" option to specify the input Fasta files. See below for a description of the other options and parameters.


Default values of assembly parameters are optimized for an assembly at coverage 60x. If your data have significantly different coverage, some changes in assembly parameters may be necessary to get good results.


For more information about the Shasta assembler, see


Complete documentation for the latest version of Shasta is available here:


Options allowed only on the command line:

  --help                                Write a help message.

  --config arg                          Configuration file name.

  --input arg                           Names of input FASTA files. Specify at 

                                        least one.

  --output arg (=ShastaRun)             Name of the output directory. Must not 


  --command arg (=assemble)             Command to run. Must be one of:

                                        assemble (default): run an assembly

                                        cleanup: cleanup the Data directory 

                                        that was created during assembly

                                            if --memoryMode filesystem.


  --memoryMode arg (=anonymous)         Specify whether allocated memory is 

                                        anonymous or backed by a filesystem. 

                                        Allowed values: anonymous (default), 


  --memoryBacking arg (=4K)             Specify the type of pages used to back 


                                        Allowed values: disk, 4K (default), 2M 

                                        (for best performance, Linux only). All

                                        combinations (memoryMode, 

                                        memoryBacking) are allowed except for 

                                        (anonymous, disk).

                                        Some combinations require root 

                                        privilege, which is obtained using sudo

                                        and may result in a password prompting 

                                        depending on your sudo set up.


Options allowed on the command line and in the config file:

  --Reads.minReadLength arg (=10000)    Read length cutoff.

  --Reads.palindromicReads.maxSkip arg (=100)

                                        Used for palindromic read detection.

  --Reads.palindromicReads.maxMarkerFrequency arg (=10)

                                        Used for palindromic read detection.

  --Reads.palindromicReads.alignedFractionThreshold arg (=0.1)

                                        Used for palindromic read detection.

  --Reads.palindromicReads.nearDiagonalFractionThreshold arg (=0.1)

                                        Used for palindromic read detection.

  --Reads.palindromicReads.deltaThreshold arg (=100)

                                        Used for palindromic read detection.

  --Kmers.k arg (=10)                   Length of marker k-mers (in run-length 


  --Kmers.probability arg (=0.1)        Probability that a k-mer is used as a 


  --MinHash.m arg (=4)                  The number of consecutive markers that 

                                        define a MinHash/LowHash feature.

  --MinHash.hashFraction arg (=0.01)    Defines how low a hash has to be to be 

                                        used with the LowHash algorithm.

  --MinHash.minHashIterationCount arg (=10)

                                        The number of MinHash/LowHash 


  --MinHash.maxBucketSize arg (=10)     The maximum bucket size to be used by 

                                        the MinHash/LowHash algoritm.

  --MinHash.minFrequency arg (=2)       The minimum number of times a pair of 

                                        reads must be found by the 

                                        MinHash/LowHash algorithm in order to 

                                        be considered a candidate alignment.

  --Align.maxSkip arg (=30)             The maximum number of markers that an 

                                        alignment is allowed to skip.

  --Align.maxMarkerFrequency arg (=10)  Marker frequency threshold.

  --Align.minAlignedMarkerCount arg (=100)

                                        The minimum number of aligned markers 

                                        for an alignment to be used.

  --Align.maxTrim arg (=30)             The maximum number of trim markers 

                                        tolerated at the beginning and end of 

                                        an alignment.

  --ReadGraph.maxAlignmentCount arg (=6)

                                        The maximum alignments to be kept for 

                                        each read.

  --ReadGraph.minComponentSize arg (=100)

                                        The minimum size (number of oriented 

                                        reads) of a connected component of the 

                                        read graph to be kept.

  --ReadGraph.maxChimericReadDistance arg (=2)

                                        Used for chimeric read detection.

  --MarkerGraph.minCoverage arg (=10)   Minimum number of markers for a marker 

                                        graph vertex.

  --MarkerGraph.maxCoverage arg (=100)  Maximum number of markers for a marker 

                                        graph vertex.

  --MarkerGraph.lowCoverageThreshold arg (=0)

                                        Used during approximate transitive 


  --MarkerGraph.highCoverageThreshold arg (=256)

                                        Used during approximate transitive 


  --MarkerGraph.maxDistance arg (=30)   Used during approximate transitive 


  --MarkerGraph.edgeMarkerSkipThreshold arg (=100)

                                        Used during approximate transitive 


  --MarkerGraph.pruneIterationCount arg (=6)

                                        Number of prune iterations.

  --MarkerGraph.simplifyMaxLength arg (=10,100,1000)

                                        Maximum lengths (in markers) used at 

                                        each iteration of simplifyMarkerGraph.

  --Assembly.markerGraphEdgeLengthThresholdForConsensus arg (=1000)

                                        Controls assembly of long marker graph 


  --Assembly.consensusCaller arg (=SimpleConsensusCaller)

                                        Selects the consensus caller for repeat


                                        SimpleConsensusCaller is the only 

                                        choice currently

                                        supported by the Shasta executable.

                                        Other choices are available with the 

                                        Shasta library.

  --Assembly.useMarginPhase arg (=False)

                                        Used to turn on margin phase.

  --Assembly.storeCoverageData arg (=False)

                                        Used to request storing coverage data.


2019-May-25 01:39:52.307527 Terminated after catching a runtime error exception:

Specify at least one input FASTA file.




docker run -v $PWD:/data tpesout/shasta:latest --input /data/input.fasta

Documentには パフォーマンス改善の方法が記載されています。



Efficient de novo assembly of eleven human genomes using PromethION sequencing and a novel nanopore toolkit

Kishwar Shafin, View ORCID ProfileTrevor Pesout, Ryan Lorig-Roach, Marina Haukness, Hugh E Olsen, Colleen Bosworth, Joel Armstrong, Kristof Tigyi, Nicholas Maurer, Sergey Koren, Fritz J Sedlazeck, Tobias Marschall, Simon Mayes, Vania Costa, Justin M Zook, Kelvin J Liu, Duncan Kilburn, Melanie Sorensen, Katy M Munson, Mitchell R Vollger, Evan E Eichler, Sofie Salama, David Haussler, Richard E Green, Mark Akeson, Adam Phillippy, Karen H Miga, Paolo Carnevali, Miten Jain, Benedict Paten

bioRxiv preprint first posted online Jul. 26, 2019