add nextflow d30e48d
This commit is contained in:
1
nextflow/docs/developer/diagrams/.gitignore
vendored
Normal file
1
nextflow/docs/developer/diagrams/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
nextflow-merged.mmd
|
||||
17
nextflow/docs/developer/diagrams/README.md
Normal file
17
nextflow/docs/developer/diagrams/README.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Class Diagrams
|
||||
|
||||
This directory contains class diagrams of the Nextflow source code, abridged and annotated for relevance and ease of use.
|
||||
|
||||
Each node is a class. Fields are selectively documented in order to show only core data structures and the classes that "own" them. Methods are not explicitly documented, but they are mentioned in certain links where appropriate.
|
||||
|
||||
Links between classes denote one of the following relationships:
|
||||
|
||||
- Inheritance (`A <|-- B`): `B` is a subclass of `A`
|
||||
- Composition (`A --* B`): `A` contains `B`
|
||||
- Instantiation (`A --> B : f`): `A` creates instance(s) of `B` at runtime via `A::f()`
|
||||
|
||||
Some links are commented out or not included at all, in order to focus on the most important classes and relationships. You can view these "hidden" links by simply uncommenting them, but I have found that their significance is sufficiently clear from the description files.
|
||||
|
||||
A separate diagram description is provided for each package. These files are interoperable, which means that you can combine any subset of files into a larger diagram description. The `merge-diagrams.sh` can create a merged file for you automatically, and it includes a sensible default set of packages.
|
||||
|
||||
You can use the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor/edit) or the [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli) to render the diagram in a variety of image formats.
|
||||
35
nextflow/docs/developer/diagrams/merge-diagrams.sh
Executable file
35
nextflow/docs/developer/diagrams/merge-diagrams.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
packages=()
|
||||
packages+=("nextflow")
|
||||
# packages+=("nextflow.ast")
|
||||
packages+=("nextflow.cache")
|
||||
packages+=("nextflow.cli")
|
||||
# packages+=("nextflow.cloud.aws")
|
||||
# packages+=("nextflow.cloud.aws.nio")
|
||||
# packages+=("nextflow.cloud.azure")
|
||||
# packages+=("nextflow.cloud.google")
|
||||
packages+=("nextflow.config")
|
||||
# packages+=("nextflow.container")
|
||||
packages+=("nextflow.dag")
|
||||
# packages+=("nextflow.executor")
|
||||
# packages+=("nextflow.extension")
|
||||
# packages+=("nextflow.ga4gh")
|
||||
# packages+=("nextflow.k8s")
|
||||
# packages+=("nextflow.plugin")
|
||||
packages+=("nextflow.processor")
|
||||
# packages+=("nextflow.scm")
|
||||
packages+=("nextflow.script")
|
||||
# packages+=("nextflow.secret")
|
||||
# packages+=("nextflow.trace")
|
||||
|
||||
outfile="nextflow-merged.mmd"
|
||||
|
||||
echo "classDiagram" > ${outfile}
|
||||
|
||||
for package in "${packages[@]}"; do
|
||||
echo "${package}"
|
||||
|
||||
tail -n +2 "${package}.mmd" >> ${outfile}
|
||||
echo >> ${outfile}
|
||||
done
|
||||
7
nextflow/docs/developer/diagrams/nextflow.ast.mmd
Normal file
7
nextflow/docs/developer/diagrams/nextflow.ast.mmd
Normal file
@@ -0,0 +1,7 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.ast
|
||||
%%
|
||||
ScriptParser --> NextflowDSLImpl : parse
|
||||
ScriptParser --> NextflowXformImpl : parse
|
||||
ScriptParser --> OpXformImpl : parse
|
||||
22
nextflow/docs/developer/diagrams/nextflow.cache.mmd
Normal file
22
nextflow/docs/developer/diagrams/nextflow.cache.mmd
Normal file
@@ -0,0 +1,22 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cache
|
||||
%%
|
||||
Session --* CacheDB
|
||||
|
||||
CacheDB --* CacheStore
|
||||
|
||||
CacheStore <|-- DefaultCacheStore
|
||||
CacheStore <|-- CloudCacheStore
|
||||
|
||||
class DefaultCacheStore {
|
||||
uniqueId : UUID
|
||||
runName : String
|
||||
baseDir : Path
|
||||
}
|
||||
|
||||
class CloudCacheStore {
|
||||
uniqueId : UUID
|
||||
runName : String
|
||||
basePath : Path
|
||||
}
|
||||
29
nextflow/docs/developer/diagrams/nextflow.cli.mmd
Normal file
29
nextflow/docs/developer/diagrams/nextflow.cli.mmd
Normal file
@@ -0,0 +1,29 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cli
|
||||
%%
|
||||
class Launcher {
|
||||
cliOptions : CliOptions
|
||||
command : CmdBase
|
||||
}
|
||||
Launcher --* CliOptions
|
||||
Launcher --* CmdBase
|
||||
|
||||
%% CmdBase <|-- CmdClean
|
||||
%% CmdBase <|-- CmdClone
|
||||
%% CmdBase <|-- CmdConfig
|
||||
CmdBase <|-- CmdConsole
|
||||
%% CmdBase <|-- CmdDrop
|
||||
%% CmdBase <|-- CmdFs
|
||||
CmdBase <|-- CmdHelp
|
||||
CmdBase <|-- CmdInfo
|
||||
%% CmdBase <|-- CmdKubeRun
|
||||
%% CmdBase <|-- CmdList
|
||||
%% CmdBase <|-- CmdLog
|
||||
%% CmdBase <|-- CmdNode
|
||||
%% CmdBase <|-- CmdPlugin
|
||||
%% CmdBase <|-- CmdPull
|
||||
CmdBase <|-- CmdRun
|
||||
%% CmdBase <|-- CmdSecret
|
||||
%% CmdBase <|-- CmdSelfUpdate
|
||||
%% CmdBase <|-- CmdView
|
||||
21
nextflow/docs/developer/diagrams/nextflow.cloud.aws.mmd
Normal file
21
nextflow/docs/developer/diagrams/nextflow.cloud.aws.mmd
Normal file
@@ -0,0 +1,21 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cloud.aws
|
||||
%%
|
||||
Executor <|-- AwsBatchExecutor
|
||||
TaskHandler <|-- AwsBatchTaskHandler
|
||||
BashWrapperBuilder <|-- AwsBatchScriptLauncher
|
||||
|
||||
AwsBatchExecutor --* AwsOptions
|
||||
AwsOptions --* AwsConfig
|
||||
AwsConfig --* AwsBatchConfig
|
||||
AwsConfig --* AwsS3Config
|
||||
|
||||
AwsBatchExecutor --> ParallelPollingMonitor : init
|
||||
AwsBatchExecutor --> AwsBatchTaskHandler : submit
|
||||
AwsBatchTaskHandler --> AwsBatchScriptLauncher : submit
|
||||
|
||||
%% TaskPollingMonitor <|-- ParallelPollingMonitor
|
||||
|
||||
SimpleFileCopyStrategy <|-- AwsBatchFileCopyStrategy
|
||||
AwsBatchScriptLauncher --* AwsBatchFileCopyStrategy
|
||||
33
nextflow/docs/developer/diagrams/nextflow.cloud.aws.nio.mmd
Normal file
33
nextflow/docs/developer/diagrams/nextflow.cloud.aws.nio.mmd
Normal file
@@ -0,0 +1,33 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cloud.aws.nio
|
||||
%%
|
||||
FileSystemProvider <|-- S3FileSystemProvider
|
||||
|
||||
S3FileSystemProvider --> S3FileSystem : newFileSystem
|
||||
|
||||
class S3FileSystem {
|
||||
client : S3Client
|
||||
endpoint : String
|
||||
}
|
||||
S3FileSystem --* S3Client
|
||||
|
||||
class S3Client {
|
||||
client : AmazonS3
|
||||
cannedAcl : CannedAccessControlList
|
||||
kmsKeyId : String
|
||||
storageEncryption : SSEAlgorithm
|
||||
transferManager : TransferManager
|
||||
transferPool : ExecutorService
|
||||
uploadChunkSize : Long
|
||||
uploadMaxThreads : Integer
|
||||
}
|
||||
|
||||
Path <|-- S3Path
|
||||
|
||||
class S3Path {
|
||||
bucket : String
|
||||
parts : List~String~
|
||||
fileSystem : S3FileSystem
|
||||
}
|
||||
S3Path --* S3FileSystem
|
||||
17
nextflow/docs/developer/diagrams/nextflow.cloud.azure.mmd
Normal file
17
nextflow/docs/developer/diagrams/nextflow.cloud.azure.mmd
Normal file
@@ -0,0 +1,17 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cloud.azure
|
||||
%%
|
||||
Executor <|-- AzBatchExecutor
|
||||
TaskHandler <|-- AzBatchTaskHandler
|
||||
BashWrapperBuilder <|-- AzBatchScriptLauncher
|
||||
|
||||
AzBatchExecutor --* AzConfig
|
||||
AzBatchExecutor --> AzBatchService : register
|
||||
|
||||
AzBatchExecutor --> TaskPollingMonitor : init
|
||||
AzBatchExecutor --> AzBatchTaskHandler : submit
|
||||
AzBatchTaskHandler --> AzBatchScriptLauncher : submit
|
||||
|
||||
SimpleFileCopyStrategy <|-- AzFileCopyStrategy
|
||||
AzBatchScriptLauncher --* AzFileCopyStrategy
|
||||
13
nextflow/docs/developer/diagrams/nextflow.cloud.google.mmd
Normal file
13
nextflow/docs/developer/diagrams/nextflow.cloud.google.mmd
Normal file
@@ -0,0 +1,13 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.cloud.google
|
||||
%%
|
||||
Executor <|-- GoogleBatchExecutor
|
||||
TaskHandler <|-- GoogleBatchTaskHandler
|
||||
BashWrapperBuilder <|-- GoogleBatchScriptLauncher
|
||||
|
||||
GoogleBatchExecutor --* BatchConfig
|
||||
|
||||
GoogleBatchExecutor --> TaskPollingMonitor : init
|
||||
GoogleBatchExecutor --> GoogleBatchTaskHandler : submit
|
||||
GoogleBatchTaskHandler --> GoogleBatchScriptLauncher : submit
|
||||
7
nextflow/docs/developer/diagrams/nextflow.config.mmd
Normal file
7
nextflow/docs/developer/diagrams/nextflow.config.mmd
Normal file
@@ -0,0 +1,7 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.config
|
||||
%%
|
||||
Session --* ConfigMap
|
||||
CmdRun --> ConfigBuilder : run
|
||||
ConfigBuilder --> ConfigMap : build
|
||||
16
nextflow/docs/developer/diagrams/nextflow.container.mmd
Normal file
16
nextflow/docs/developer/diagrams/nextflow.container.mmd
Normal file
@@ -0,0 +1,16 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.container
|
||||
%%
|
||||
direction LR
|
||||
|
||||
BashWrapperBuilder --> ContainerBuilder : build
|
||||
|
||||
ContainerBuilder <|-- CharliecloudBuilder
|
||||
ContainerBuilder <|-- DockerBuilder
|
||||
ContainerBuilder <|-- PodmanBuilder
|
||||
ContainerBuilder <|-- ShifterBuilder
|
||||
ContainerBuilder <|-- SingularityBuilder
|
||||
ContainerBuilder <|-- UdockerBuilder
|
||||
|
||||
SingularityBuilder <|-- ApptainerBuilder
|
||||
33
nextflow/docs/developer/diagrams/nextflow.dag.mmd
Normal file
33
nextflow/docs/developer/diagrams/nextflow.dag.mmd
Normal file
@@ -0,0 +1,33 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.dag
|
||||
%%
|
||||
Session --* DAG
|
||||
|
||||
class DAG {
|
||||
vertices : List~Vertex~
|
||||
edges : List~Edge~
|
||||
}
|
||||
DAG "1" --* "*" Vertex
|
||||
DAG "1" --* "*" Edge
|
||||
|
||||
class Vertex {
|
||||
label : String
|
||||
type : Type
|
||||
operators : List~DataflowProcessor~
|
||||
process : TaskProcessor
|
||||
}
|
||||
|
||||
class Edge {
|
||||
channel : Object
|
||||
from : Vertex
|
||||
to : Vertex
|
||||
label : String
|
||||
}
|
||||
|
||||
%% DagRenderer <|-- CytoscapeHtmlRenderer
|
||||
%% DagRenderer <|-- CytoscapeJsRenderer
|
||||
%% DagRenderer <|-- DotRenderer
|
||||
%% DagRenderer <|-- GexfRenderer
|
||||
%% DagRenderer <|-- GraphvizRenderer
|
||||
%% DagRenderer <|-- MermaidRenderer
|
||||
66
nextflow/docs/developer/diagrams/nextflow.executor.mmd
Normal file
66
nextflow/docs/developer/diagrams/nextflow.executor.mmd
Normal file
@@ -0,0 +1,66 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.executor
|
||||
%%
|
||||
ExecutorFactory --> Executor : getExecutor
|
||||
|
||||
class Executor {
|
||||
name : String
|
||||
monitor : TaskMonitor
|
||||
}
|
||||
Executor --* TaskMonitor
|
||||
Executor --> TaskHandler : submit
|
||||
|
||||
TaskMonitor <|-- TaskPollingMonitor
|
||||
|
||||
class TaskPollingMonitor {
|
||||
capacity : int
|
||||
submitRateLimit : RateLimiter
|
||||
pollIntervalMillis : long
|
||||
dumpInterval : Duration
|
||||
}
|
||||
|
||||
TaskPollingMonitor <|-- LocalPollingMonitor
|
||||
|
||||
class LocalPollingMonitor {
|
||||
maxCpus : int
|
||||
maxMemory : long
|
||||
}
|
||||
|
||||
Executor <|-- AbstractGridExecutor
|
||||
Executor <|-- LocalExecutor
|
||||
%% Executor <|-- NopeExecutor
|
||||
%% AbstractGridExecutor <|-- CondorExecutor
|
||||
%% AbstractGridExecutor <|-- HyperQueueExecutor
|
||||
%% AbstractGridExecutor <|-- LsfExecutor
|
||||
%% AbstractGridExecutor <|-- MoabExecutor
|
||||
%% AbstractGridExecutor <|-- NqsiiExecutor
|
||||
%% AbstractGridExecutor <|-- OarExecutor
|
||||
%% AbstractGridExecutor <|-- PbsExecutor
|
||||
%% AbstractGridExecutor <|-- SgeExecutor
|
||||
%% AbstractGridExecutor <|-- SlurmExecutor
|
||||
%% PbsExecutor <|-- PbsProExecutor
|
||||
%% SgeExecutor <|-- CrgExecutor
|
||||
|
||||
%% TaskHandler <|-- CachedTaskHandler
|
||||
TaskHandler <|-- GridTaskHandler
|
||||
TaskHandler <|-- LocalTaskHandler
|
||||
TaskHandler <|-- NativeTaskHandler
|
||||
%% TaskHandler <|-- NopeTaskHandler
|
||||
%% TaskHandler <|-- StoredTaskHandler
|
||||
|
||||
class BashWrapperBuilder {
|
||||
bean : TaskBean
|
||||
copyStrategy : ScriptFileCopyStrategy
|
||||
}
|
||||
BashWrapperBuilder --* TaskBean
|
||||
BashWrapperBuilder --* ScriptFileCopyStrategy
|
||||
|
||||
ScriptFileCopyStrategy <|-- SimpleFileCopyStrategy
|
||||
|
||||
class SimpleFileCopyStrategy {
|
||||
stageinMode : String
|
||||
stageoutMode : String
|
||||
targetDir : Path
|
||||
workDir : Path
|
||||
}
|
||||
30
nextflow/docs/developer/diagrams/nextflow.extension.mmd
Normal file
30
nextflow/docs/developer/diagrams/nextflow.extension.mmd
Normal file
@@ -0,0 +1,30 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.extension
|
||||
%%
|
||||
direction LR
|
||||
|
||||
ChannelEx --> DumpOp : dump
|
||||
Nextflow --> GroupKey : groupKey
|
||||
|
||||
OperatorImpl --> BranchOp : branch
|
||||
OperatorImpl --> BufferOp : buffer
|
||||
OperatorImpl --> CollectFileOp : collectFile
|
||||
OperatorImpl --> CollectOp : collect
|
||||
OperatorImpl --> CombineOp : combine
|
||||
OperatorImpl --> ConcatOp : concat
|
||||
OperatorImpl --> CrossOp : cross
|
||||
OperatorImpl --> GroupTupleOp : groupTuple
|
||||
OperatorImpl --> JoinOp : join
|
||||
OperatorImpl --> MapOp : map
|
||||
OperatorImpl --> MergeOp : merge
|
||||
OperatorImpl --> MixOp : mix
|
||||
OperatorImpl --> MultiMapOp : multiMap
|
||||
OperatorImpl --> RandomSampleOp : randomSample
|
||||
OperatorImpl --> SplitOp : splitCsv, splitFasta, splitFastq, splitText
|
||||
OperatorImpl --> TakeOp : take
|
||||
OperatorImpl --> ToListOp : toList, toSortedList
|
||||
OperatorImpl --> TransposeOp : transpose
|
||||
OperatorImpl --> UntilOp : until
|
||||
|
||||
WorkflowBinding --> OpCall : invokeMethod
|
||||
14
nextflow/docs/developer/diagrams/nextflow.ga4gh.mmd
Normal file
14
nextflow/docs/developer/diagrams/nextflow.ga4gh.mmd
Normal file
@@ -0,0 +1,14 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.ga4gh
|
||||
%%
|
||||
Executor <|-- TesExecutor
|
||||
%% TaskHandler <|-- TesTaskHandler
|
||||
%% BashWrapperBuilder <|-- TesBashBuilder
|
||||
|
||||
TesExecutor --> TaskPollingMonitor : init
|
||||
TesExecutor --> TesTaskHandler : submit
|
||||
TesTaskHandler --> TesBashBuilder : submit
|
||||
|
||||
%% ScriptFileCopyStrategy <|-- TesFileCopyStrategy
|
||||
TesBashBuilder --* TesFileCopyStrategy
|
||||
57
nextflow/docs/developer/diagrams/nextflow.k8s.mmd
Normal file
57
nextflow/docs/developer/diagrams/nextflow.k8s.mmd
Normal file
@@ -0,0 +1,57 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.k8s
|
||||
%%
|
||||
Executor <|-- K8sExecutor
|
||||
TaskHandler <|-- K8sTaskHandler
|
||||
BashWrapperBuilder <|-- K8sWrapperBuilder
|
||||
|
||||
K8sExecutor --> TaskPollingMonitor : init
|
||||
K8sExecutor --> K8sTaskHandler : submit
|
||||
K8sExecutor --* K8sClient
|
||||
K8sTaskHandler --> K8sWrapperBuilder : submit
|
||||
|
||||
CmdKubeRun --> K8sDriverLauncher : run
|
||||
|
||||
class K8sDriverLauncher {
|
||||
args : List~String~
|
||||
cmd : CmdKubeRun
|
||||
config : ConfigObject
|
||||
configMapName : String
|
||||
headCpus : int
|
||||
headImage : String
|
||||
headMemory : String
|
||||
headPreScript : String
|
||||
paramsFile : String
|
||||
pipelineName : String
|
||||
runName : String
|
||||
}
|
||||
K8sDriverLauncher --* K8sClient
|
||||
K8sDriverLauncher --* K8sConfig
|
||||
|
||||
K8sClient --* ClientConfig
|
||||
%% ConfigDiscovery --> ClientConfig : discover
|
||||
|
||||
class K8sConfig {
|
||||
target : Map
|
||||
podOptions : PodOptions
|
||||
}
|
||||
K8sConfig --* PodOptions
|
||||
|
||||
class PodOptions {
|
||||
affinity : Map
|
||||
annotations : Map
|
||||
automountServiceAccountToken : boolean
|
||||
configMaps : Collection~PodMountConfig~
|
||||
envVars : Collection~PodEnv~
|
||||
imagePullPolicy : String
|
||||
imagePullSecret : String
|
||||
labels : Map
|
||||
nodeSelector : PodNodeSelector
|
||||
priorityClassName : String
|
||||
privileged : Boolean
|
||||
secrets : Collection~PodMountSecret~
|
||||
securityContext : PodSecurityContext
|
||||
tolerations : List~Map~
|
||||
volumeClaims : Collection~PodVolumeClaim~
|
||||
}
|
||||
21
nextflow/docs/developer/diagrams/nextflow.mmd
Normal file
21
nextflow/docs/developer/diagrams/nextflow.mmd
Normal file
@@ -0,0 +1,21 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow
|
||||
%%
|
||||
class Nextflow
|
||||
class Channel
|
||||
class Session {
|
||||
baseDir : Path
|
||||
binding : ScriptBinding
|
||||
cache : CacheDB
|
||||
commandLine : String
|
||||
commitId : String
|
||||
config : Map
|
||||
configFiles : List~Path~
|
||||
dag : DAG
|
||||
profile : String
|
||||
runName : String
|
||||
script : BaseScript
|
||||
uniqueId : UUID
|
||||
workDir : Path
|
||||
}
|
||||
14
nextflow/docs/developer/diagrams/nextflow.plugin.mmd
Normal file
14
nextflow/docs/developer/diagrams/nextflow.plugin.mmd
Normal file
@@ -0,0 +1,14 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.plugin
|
||||
%%
|
||||
CmdRun --> Plugins : run
|
||||
|
||||
Plugins --> PluginsFacade : init
|
||||
|
||||
PluginsFacade "1" --> "*" PluginRef : load
|
||||
|
||||
class PluginRef {
|
||||
id : String
|
||||
version : String
|
||||
}
|
||||
44
nextflow/docs/developer/diagrams/nextflow.processor.mmd
Normal file
44
nextflow/docs/developer/diagrams/nextflow.processor.mmd
Normal file
@@ -0,0 +1,44 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.processor
|
||||
%%
|
||||
%% ProcessDef --> TaskProcessor : run
|
||||
|
||||
class TaskProcessor {
|
||||
config : ProcessConfig
|
||||
executor : Executor
|
||||
id : int
|
||||
name : String
|
||||
operator : DataflowProcessor
|
||||
taskBody : BodyDef
|
||||
}
|
||||
TaskProcessor --> TaskRun : invokeTask
|
||||
TaskProcessor --> PublishDir : finalizeTask
|
||||
|
||||
class TaskRun {
|
||||
config : TaskConfig
|
||||
context : TaskContext
|
||||
hash : HashCode
|
||||
id : TaskId
|
||||
index : int
|
||||
inputs : Map
|
||||
name : String
|
||||
outputs : Map
|
||||
runType : RunType
|
||||
type : ScriptType
|
||||
workDir : Path
|
||||
}
|
||||
TaskRun --* TaskConfig
|
||||
TaskRun --* TaskContext
|
||||
TaskRun --> TaskBean : toTaskBean
|
||||
|
||||
class TaskConfig {
|
||||
target : Map
|
||||
binding : Map
|
||||
}
|
||||
|
||||
class TaskContext {
|
||||
holder : Map
|
||||
script : Script
|
||||
name : String
|
||||
}
|
||||
65
nextflow/docs/developer/diagrams/nextflow.scm.mmd
Normal file
65
nextflow/docs/developer/diagrams/nextflow.scm.mmd
Normal file
@@ -0,0 +1,65 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.scm
|
||||
%%
|
||||
direction LR
|
||||
|
||||
CmdRun --> AssetManager : run
|
||||
|
||||
class AssetManager {
|
||||
project : String
|
||||
mainScript : String
|
||||
provider : RepositoryProvider
|
||||
strategy : RepositoryStrategy
|
||||
hub : String
|
||||
providerConfigs : List~ProviderConfig~
|
||||
}
|
||||
|
||||
class RepositoryStrategyType {
|
||||
<<enumeration>>
|
||||
LEGACY
|
||||
MULTI_REVISION
|
||||
}
|
||||
|
||||
AssetManager --> RepositoryStrategyType
|
||||
AssetManager "1" --o "1" RepositoryStrategy
|
||||
AssetManager "1" --o "1" RepositoryProvider
|
||||
AssetManager "1" --* "*" ProviderConfig
|
||||
|
||||
class RepositoryStrategy {
|
||||
<<interface>>
|
||||
}
|
||||
class AbstractRepositoryStrategy {
|
||||
<<abstract>>
|
||||
project : String
|
||||
provider : RepositoryProvider
|
||||
root : File
|
||||
}
|
||||
class LegacyRepositoryStrategy {
|
||||
localPath : File
|
||||
}
|
||||
class MultiRevisionRepositoryStrategy {
|
||||
revision : String
|
||||
bareRepo : File
|
||||
commitPath : File
|
||||
revisionSubdir : File
|
||||
}
|
||||
|
||||
RepositoryStrategy <|-- AbstractRepositoryStrategy
|
||||
AbstractRepositoryStrategy <|-- LegacyRepositoryStrategy
|
||||
AbstractRepositoryStrategy <|-- MultiRevisionRepositoryStrategy
|
||||
|
||||
class RepositoryProvider {
|
||||
<<abstract>>
|
||||
}
|
||||
|
||||
RepositoryStrategy --> RepositoryProvider
|
||||
|
||||
RepositoryProvider <|-- AzureRepositoryProvider
|
||||
RepositoryProvider <|-- BitbucketRepositoryProvider
|
||||
RepositoryProvider <|-- BitbucketServerRepositoryProvider
|
||||
RepositoryProvider <|-- GiteaRepositoryProvider
|
||||
RepositoryProvider <|-- GithubRepositoryProvider
|
||||
RepositoryProvider <|-- GitlabRepositoryProvider
|
||||
RepositoryProvider <|-- LocalRepositoryProvider
|
||||
|
||||
130
nextflow/docs/developer/diagrams/nextflow.script.mmd
Normal file
130
nextflow/docs/developer/diagrams/nextflow.script.mmd
Normal file
@@ -0,0 +1,130 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.script
|
||||
%%
|
||||
CmdRun --> ScriptRunner : run
|
||||
|
||||
class ScriptRunner {
|
||||
scriptFile : ScriptFile
|
||||
session : Session
|
||||
}
|
||||
ScriptRunner --* ScriptFile
|
||||
ScriptRunner --> ScriptParser : execute
|
||||
ScriptParser --> BaseScript : parse
|
||||
|
||||
class ScriptFile {
|
||||
source : Path
|
||||
main : Path
|
||||
repository : String
|
||||
revisionInfo : AssetManager.RevisionInfo
|
||||
localPath : Path
|
||||
projectName : String
|
||||
}
|
||||
|
||||
class BaseScript {
|
||||
meta : ScriptMeta
|
||||
entryFlow : WorkflowDef
|
||||
}
|
||||
BaseScript --* ScriptBinding
|
||||
BaseScript --* ScriptMeta
|
||||
BaseScript --> IncludeDef : include
|
||||
|
||||
IncludeDef --> ScriptParser : load0
|
||||
|
||||
class ScriptBinding {
|
||||
scriptPath : Path
|
||||
args : List~String~
|
||||
params : ParamsMap
|
||||
configEnv : Map
|
||||
entryName : String
|
||||
}
|
||||
|
||||
class ScriptMeta {
|
||||
scriptPath : Path
|
||||
definitions : Map
|
||||
imports : Map
|
||||
module : boolean
|
||||
}
|
||||
ScriptMeta "1" --* "*" ComponentDef : definitions
|
||||
ScriptMeta "1" --* "*" ComponentDef : imports
|
||||
|
||||
ComponentDef <|-- FunctionDef
|
||||
ComponentDef <|-- ProcessDef
|
||||
ComponentDef <|-- WorkflowDef
|
||||
|
||||
class FunctionDef {
|
||||
target : Object
|
||||
name : String
|
||||
alias : String
|
||||
}
|
||||
|
||||
class ProcessDef {
|
||||
processName : String
|
||||
simpleName : String
|
||||
baseName : String
|
||||
rawBody : Closure~BodyDef~
|
||||
}
|
||||
ProcessDef --* ProcessConfig
|
||||
ProcessDef --* BodyDef
|
||||
ProcessDef --* ChannelOut
|
||||
|
||||
class WorkflowDef {
|
||||
name : String
|
||||
body : BodyDef
|
||||
declaredInputs : List~String~
|
||||
declaredOutputs : List~String~
|
||||
variableNames : Set~String~
|
||||
}
|
||||
WorkflowDef --* BodyDef
|
||||
WorkflowDef --* WorkflowBinding
|
||||
WorkflowDef --* ChannelOut
|
||||
|
||||
class ProcessConfig {
|
||||
configProperties : Map
|
||||
inputs : InputsList
|
||||
outputs : OutputsList
|
||||
}
|
||||
ProcessConfig --* InputsList
|
||||
ProcessConfig --* OutputsList
|
||||
|
||||
class BodyDef {
|
||||
closure : Closure
|
||||
source : String
|
||||
type : ScriptType
|
||||
isShell : boolean
|
||||
}
|
||||
|
||||
class ChannelOut {
|
||||
target : List~DataflowWriteChannel~
|
||||
channels : Map
|
||||
}
|
||||
|
||||
class WorkflowBinding {
|
||||
vars : Map
|
||||
}
|
||||
|
||||
class InputsList {
|
||||
target : List~InParam~
|
||||
}
|
||||
InputsList "1" --* "*" InParam
|
||||
|
||||
class OutputsList {
|
||||
target : List~OutParam~
|
||||
}
|
||||
OutputsList "1" --* "*" OutParam
|
||||
|
||||
%% InParam <|-- BaseInParam
|
||||
%% BaseInParam <|-- EachInParam
|
||||
%% BaseInParam <|-- EnvInParam
|
||||
%% BaseInParam <|-- FileInParam
|
||||
%% BaseInParam <|-- StdInParam
|
||||
%% BaseInParam <|-- TupleInParam
|
||||
%% BaseInParam <|-- ValueInParam
|
||||
|
||||
%% OutParam <|-- BaseOutParam
|
||||
%% BaseOutParam <|-- EachOutParam
|
||||
%% BaseOutParam <|-- EnvOutParam
|
||||
%% BaseOutParam <|-- FileOutParam
|
||||
%% BaseOutParam <|-- StdOutParam
|
||||
%% BaseOutParam <|-- TupleOutParam
|
||||
%% BaseOutParam <|-- ValueOutParam
|
||||
12
nextflow/docs/developer/diagrams/nextflow.secret.mmd
Normal file
12
nextflow/docs/developer/diagrams/nextflow.secret.mmd
Normal file
@@ -0,0 +1,12 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.secret
|
||||
%%
|
||||
ConfigBuilder --> SecretsLoader : build
|
||||
BaseScript --> SecretsLoader : run
|
||||
BashWrapperBuilder --> SecretsLoader : build
|
||||
|
||||
SecretsLoader --> SecretsProvider : load
|
||||
SecretsProvider --> Secret : getSecret
|
||||
SecretsProvider <|-- LocalSecretsProvider
|
||||
Secret <|-- SecretImpl
|
||||
13
nextflow/docs/developer/diagrams/nextflow.trace.mmd
Normal file
13
nextflow/docs/developer/diagrams/nextflow.trace.mmd
Normal file
@@ -0,0 +1,13 @@
|
||||
classDiagram
|
||||
%%
|
||||
%% nextflow.trace
|
||||
%%
|
||||
Session --> TraceObserverFactory : init
|
||||
|
||||
TraceObserverFactory "1" --> "*" TraceObserver : create
|
||||
TraceObserver <|-- AnsiLogObserver
|
||||
TraceObserver <|-- GraphObserver
|
||||
TraceObserver <|-- ReportObserver
|
||||
TraceObserver <|-- TimelineObserver
|
||||
TraceObserver <|-- TraceFileObserver
|
||||
TraceObserver <|-- WorkflowStatsObserver
|
||||
69
nextflow/docs/developer/diagrams/overview.mmd
Normal file
69
nextflow/docs/developer/diagrams/overview.mmd
Normal file
@@ -0,0 +1,69 @@
|
||||
flowchart TB
|
||||
subgraph Launcher
|
||||
subgraph CmdRun
|
||||
subgraph AssetManager
|
||||
ScriptFile
|
||||
end
|
||||
subgraph ConfigBuilder
|
||||
ConfigParser([ConfigParser])
|
||||
ConfigBase([ConfigBase])
|
||||
end
|
||||
subgraph ScriptRunner
|
||||
subgraph Session
|
||||
ConfigMap
|
||||
DAG
|
||||
ExecutorFactory([ExecutorFactory])
|
||||
subgraph TaskProcessor
|
||||
TaskRun
|
||||
end
|
||||
subgraph Executor
|
||||
subgraph TaskMonitor
|
||||
TaskHandler
|
||||
end
|
||||
TaskBean
|
||||
BashWrapperBuilder([BashWrapperBuilder])
|
||||
end
|
||||
TraceRecord
|
||||
CacheFactory([CacheFactory])
|
||||
CacheDB
|
||||
TraceObserver([TraceObserver])
|
||||
end
|
||||
ScriptParser([ScriptParser])
|
||||
BaseScript([BaseScript])
|
||||
subgraph ScriptMeta
|
||||
WorkflowDef([WorkflowDef])
|
||||
ProcessDef([ProcessDef])
|
||||
FunctionDef([FunctionDef])
|
||||
end
|
||||
IncludeDef([IncludeDef])
|
||||
OpCall([OpCall])
|
||||
end
|
||||
ConfigParser --> ConfigBase
|
||||
ConfigBase --> ConfigMap
|
||||
ScriptFile --> ScriptParser
|
||||
ScriptParser --> BaseScript
|
||||
BaseScript --> WorkflowDef
|
||||
BaseScript --> ProcessDef
|
||||
BaseScript --> FunctionDef
|
||||
BaseScript --> IncludeDef
|
||||
IncludeDef --> ScriptParser
|
||||
WorkflowDef --> OpCall
|
||||
OpCall --> DAG
|
||||
ProcessDef --> DAG
|
||||
DAG --> TaskRun
|
||||
TaskRun --> DAG
|
||||
ExecutorFactory --> Executor
|
||||
ConfigMap --> Executor
|
||||
ProcessDef --> TaskProcessor
|
||||
ConfigMap --> TaskProcessor
|
||||
TaskRun --> TaskHandler
|
||||
TaskRun --> TaskBean
|
||||
TaskBean --> BashWrapperBuilder
|
||||
BashWrapperBuilder --> TaskHandler
|
||||
CacheFactory --> CacheDB
|
||||
TaskHandler --> CacheDB
|
||||
TaskHandler --> TraceRecord
|
||||
TraceRecord --> CacheDB
|
||||
TaskHandler --> TraceObserver
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user