SHASTA(1)
๐ shasta ๐
okay bestie, so this is the manual page for shasta, the nanopore whole genome assembly tool, hanging out in the User Commands section of the manual. it's a whole โจexperienceโจ, so buckle up ๐
๐ธ NAME ๐ธ
shasta โ nanopore whole genome assembly tool ๐งฌโจ
๐ DESCRIPTION ๐
so basically this is where we lay out all the options, bestie. there's two flavors: the ones you can only drop on the command line, and the ones you can put on the command line or tuck into the config file. iykyk ๐
๐ซถ Options allowed only on the command line:
-h,--helpโ drops a help message. your lil "what do i do" bestie ๐-v,--versionโ tells you which Shasta version you're running. identity check โจ--configarg โ the name of the configuration file. ๐--inputarg โ names of the input files that have the reads in them. you gotta specify at least one, no skipping this one bestie ๐ซ--assemblyDirectoryarg (=ShastaRun) โ name of the output directory. heads up: if the command isassemble, this directory must not already exist. ๐--commandarg (=assemble) โ which command to run. has to be one of:assemble,saveBinaryData,cleanupBinaryData,explore,createBashCompletionScript. pick your fighter ๐--memoryModearg (=anonymous) โ tells it whether the allocated memory is anonymous or backed by a filesystem. allowed values:anonymous,filesystem. ๐--memoryBackingarg (=4K) โ the type of pages used to back memory. allowed values:disk,4K,2M(this one gives the best performance, slay). every combination of (memoryMode,memoryBacking) is allowed except (anonymous,disk). some combos need root privilege, which it grabs usingsudo, and depending on yoursudosetup that might pop a password prompt at you ๐ญ--threadsarg (=0) โ number of threads. set it to0and it uses one thread per virtual processor. maximal vibes โก--exploreAccessarg (=user) โ sets the allowed access for--command explore. allowed values:user,local,unrestricted.
๐จ DO NOT CHANGE FROM DEFAULT VALUE WITHOUT UNDERSTANDING THE SECURITY IMPLICATIONS. like fr fr, don't be chaotic about this one ๐
--portarg (=17100) โ the port the http server uses (for command--explore). ๐
๐ Options allowed on the command line and in the config file:
--Reads.minReadLengtharg (=10000) โ read length cutoff. anything shorter gets yeeted into the void ๐๏ธ--Reads.noCacheโ if you set this, it skips the Linux cache when loading reads. how? by specifying theO_DIRECTflag when opening the input files that hold reads. no caching, just vibes โจ--Reads.palindromicReads.skipFlaggingโ skips flagging palindromic reads. but bestie listen โ Oxford Nanopore reads should be flagged for better results. so maybe don't ๐--Reads.palindromicReads.maxSkiparg (=100) โ used for palindromic read detection. ๐--Reads.palindromicReads.maxDriftarg (=100) โ used for palindromic read detection. ๐--Reads.palindromicReads.maxMarkerFrequencyarg (=10) โ used for palindromic read detection. ๐--Reads.palindromicReads.alignedFractionThresholdarg (=0.1) โ used for palindromic read detection. ๐--Reads.palindromicReads.nearDiagonalFractionThresholdarg (=0.1) โ used for palindromic read detection. ๐--Reads.palindromicReads.deltaThresholdarg (=100) โ used for palindromic read detection. ๐--Kmers.generationMethodarg (=0) โ the method used to generate marker k-mers:0= random,1= random but excluding globally overenriched ones,2= random but excluding ones that are overenriched even in a single read,3= read from file. pick your method ๐ฒ--Kmers.karg (=10) โ length of the marker k-mers (measured in run-length space). ๐--Kmers.probabilityarg (=0.1) โ fraction of k-mers used as a marker. ๐ฏ--Kmers.enrichmentThresholdarg (=100.) โ enrichment threshold forKmers.generationMethod1and2. ๐ฅ--Kmers.filearg โ the absolute path of a file containing the k-mers to be used as markers, one per line. a relative path is not accepted, so don't try it ๐. only used ifKmers.generationMethodis3. ๐--MinHash.versionarg (=0) โ controls which version of the LowHash algorithm to use. can be0(default) or1(experimental ๐ฉโ๐ฌ).--MinHash.marg (=4) โ the number of consecutive markers that define a MinHash/LowHash feature. โจ--MinHash.hashFractionarg (=0.01) โ defines how low a hash has to be to be used with the LowHash algorithm. ๐--MinHash.minHashIterationCountarg (=10) โ the number of MinHash/LowHash iterations, or0to let--MinHash.alignmentCandidatesPerReadcontrol the number of iterations. ๐--MinHash.alignmentCandidatesPerReadarg (=20) โ if--MinHash.minHashIterationCountis0, MinHash iteration stops once the average number of alignment candidates each read is involved in hits this value. if--MinHash.minHashIterationCountis not0, this one just sits there unused, no cap ๐--MinHash.minBucketSizearg (=0) โ the minimum bucket size used by the LowHash algorithm. ๐ชฃ--MinHash.maxBucketSizearg (=10) โ the maximum bucket size used by the LowHash algorithm. ๐ชฃ--MinHash.minFrequencyarg (=2) โ the minimum number of times a pair of reads must be found by the MinHash/LowHash algorithm before it counts as a candidate alignment. ๐--MinHash.allPairsโ skips the MinHash algorithm entirely and marks all pairs of reads as alignment candidates, in both orientations. โ ๏ธ only use this for experimentation on very small runs, because it is very time consuming. like, don't. it's giving "i have all weekend" energy ๐ญ--Align.alignMethodarg (=3) โ the alignment method used to create the read graph and the marker graph.0= old Shasta method,1= SeqAn (slow ๐),3= banded SeqAn. โจ--Align.maxSkiparg (=30) โ the maximum number of markers an alignment is allowed to skip. โญ๏ธ--Align.maxDriftarg (=30) โ the maximum amount of marker drift an alignment is allowed to tolerate between successive markers. ใฐ๏ธ--Align.maxTrimarg (=30) โ the maximum number of unaligned markers tolerated at the beginning and end of an alignment. โ๏ธ--Align.maxMarkerFrequencyarg (=10) โ marker frequency threshold. markers more frequent than this value in either of two oriented reads being aligned get discarded and are not used to compute the alignment. ๐ฎ--Align.minAlignedMarkerCountarg (=100) โ the minimum number of aligned markers for an alignment to actually be used. โ--Align.minAlignedFractionarg (=0) โ the minimum fraction of aligned markers for an alignment to be used. โ--Align.matchScorearg (=6) โ match score for marker alignments (only used for alignment methods1and3). ๐--Align.mismatchScorearg (=-1) โ mismatch score for marker alignments (only used for alignment methods1and3). โค๏ธ--Align.gapScorearg (=-1) โ gap score for marker alignments (only used for alignment methods1and3). ๐ณ๏ธ--Align.downsamplingFactorarg (=0.10000000000000001) โ downsampling factor (only used for alignment method3). ๐--Align.bandExtendarg (=10) โ how much to extend the downsampled band (only used for alignment method3). ๐--Align.sameChannelReadAlignment.suppressDeltaThresholdarg (=0) โ if this is not zero, alignments between reads from the same nanopore channel that are close in time get suppressed. it checks the"read"meta data fields from the FASTA or FASTQ header. if their difference, in absolute value, is less than this option's value, the alignment is suppressed. this can help you dodge assembly artifact ๐ก๏ธ. this check only happens if the two reads have identical meta data fields"runid","sampleid", and"ch". if any of those meta data fields are missing, the check is suppressed and this option does absolutely nothing ๐--Align.suppressContainmentsโ suppresses containment alignments, meaning alignments where one read is entirely contained inside another read, except possibly for up tomaxTrimmarkers at the beginning and end. ๐ซ--ReadGraph.creationMethodarg (=0) โ the method used to create the read graph (0= undirected, which is the default;1= directed, experimental ๐ฉโ๐ฌ).--ReadGraph.maxAlignmentCountarg (=6) โ the maximum number of alignments to keep for each read. ๐๏ธ--ReadGraph.minComponentSizearg (=100) โ the minimum size (number of oriented reads) of a connected component of the read graph that gets kept. heads up, this is currently ignored ๐--ReadGraph.maxChimericReadDistancearg (=2) โ used for chimeric read detection. ๐งช--ReadGraph.crossStrandMaxDistancearg (=6) โ maximum distance (in edges) forflagCrossStrandReadGraphEdges. set it to zero to entirely suppressflagCrossStrandReadGraphEdges. ๐ซ--ReadGraph.containedNeighborCountarg (=6) โ maximum number of alignments to keep for each contained read (only used whencreationMethodis1). ๐ฆ--ReadGraph.uncontainedNeighborCountPerDirectionarg (=3) โ maximum number of alignments to keep in each direction (forward, backward) for each uncontained read (only used whencreationMethodis1). โ๏ธ--ReadGraph.removeConflictsโ removes conflicts from the read graph. โ ๏ธ experimental โ do not use. seriously, bestie, don't ๐--MarkerGraph.minCoveragearg (=10) โ minimum number of markers for a marker graph vertex. ๐ป--MarkerGraph.maxCoveragearg (=100) โ maximum number of markers for a marker graph vertex. ๐บ--MarkerGraph.lowCoverageThresholdarg (=0) โ used during approximate transitive reduction. marker graph edges with coverage lower than this value are always marked as removed, regardless of reachability. โ๏ธ--MarkerGraph.highCoverageThresholdarg (=256) โ used during approximate transitive reduction. marker graph edges with coverage higher than this value are never marked as removed, regardless of reachability. ๐ก๏ธ--MarkerGraph.maxDistancearg (=30) โ used during approximate transitive reduction. ๐--MarkerGraph.edgeMarkerSkipThresholdarg (=100) โ used during approximate transitive reduction. โญ๏ธ--MarkerGraph.pruneIterationCountarg (=6) โ number of prune iterations. ๐ฟ--MarkerGraph.simplifyMaxLengtharg (=10,100,1000) โ maximum lengths (in markers) used at each iteration ofsimplifyMarkerGraph. ๐--MarkerGraph.crossEdgeCoverageThresholdarg (=0) โ experimental. cross edge coverage threshold. if this isn't zero, assembly graph cross-edges with average edge coverage less than this value get removed, together with the corresponding marker graph edges. a cross edge is defined as an edgev0->v1without-degree(v0)>1,in-degree(v1)>1. ๐ฉโ๐ฌ--MarkerGraph.refineThresholdarg (=0) โ experimental. length threshold, in markers, for the marker graph refinement step, or0to turn the refinement step off. ๐ฌ--MarkerGraph.reverseTransitiveReductionโ performs approximate reverse transitive reduction of the marker graph. ๐--Assembly.crossEdgeCoverageThresholdarg (=3) โ maximum average edge coverage for a cross edge of the assembly graph to be removed. โ๏ธ
...bestie this page keeps going, don't go anywhere ๐
--Assembly.markerGraphEdgeLengthThresholdForConsensus arg (=1000)โ bestie this one is the vibe check for assembling those long marker graph edges โจ it controls how that assembly goes down, and the default is1000in case you were wondering ๐--Assembly.consensusCaller arg (=Bayesian:guppy-2.3.5-a)โ picks the consensus caller for repeat counts ๐ the default is literallyBayesian:guppy-2.3.5-aand no I did not make that name up ๐ wanna know what other choices exist? go read the documentation, it's all in there ๐--Assembly.storeCoverageDataโ not me asking for the coverage data to be stored in binary format ๐ that's literally all it does, it's a request, no arg, no drama ๐ธ--Assembly.storeCoverageDataCsvLengthThreshold arg (=0)โ okay so this sets the minimum length of an assembled segment that has to be hit before coverage data gets stored in csv format โญ default is0, and heads up: when it's0, no coverage data in csv format is stored at all, zero, nada, none ๐ญ--Assembly.writeReadsByAssembledSegmentโ this one asks shasta to write out the reads that contributed to assembling each segment ๐ซถ like a little receipt of who did what, love that for us ๐ง--Assembly.detangleMethod arg (=0)โ โ ๏ธ experimental โ ๏ธ this specifies the method used to detangle the assembly graph and the options are:0= no detangling ๐1= basic detangling โจ
default is 0, so if you do nothing, nothing gets detangled, iconic honestly ๐
and that's a wrap on this one, bestie ๐ this page comes from shasta, dated August 2020, sitting pretty in section SHASTA(1) of the manual ๐ฆ go forth and assemble, you absolute main character ๐๐
๐ฆ where this page comes from
- debian bookworm: shasta 0.11.1-1+b1 ยท MIT
- debian trixie: shasta 0.12.0-1+b2 ยท MIT
- ubuntu jammy: shasta 0.8.0-2ubuntu1 ยท MIT
- ubuntu noble: shasta 0.11.1-4build4 ยท MIT
- ubuntu questing: shasta 0.12.0-1build1
- ubuntu resolute: shasta 0.14.0-1ubuntu2 ยท MIT
- ubuntu stonking: shasta 0.14.0-1ubuntu2 ยท MIT
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms