# ARCs

for details, see <https://github.com/nfdi4plants/ARC-specification>

## ARC directory structure

`/isa.investigation.xlsx`
: main investigation file (in XLSX format), contains top-level information about the investigation and links to studies and assays

`/LICENSE`
: license file for the arc

`/arc.cwl`
: (optional) executes all runs

### Studies

All input material or (external) data resources are considered studies (immutable input data)

`/assays/<yourStudyName>`
: folder for an essay, name is arbitrary

`/assays/<yourStudyName>/resources`
: assay dataset

`/assays/<yourStudyName>/protocols`
: assay protocol as text (e.g SOP)

`/assays/<yourStudyName>/isa.study.xlsx`
: per-assay ISA file, contains only info about this assay (in XLSX format)

### Assays

All measurement (self-generated) datasets are considered assays (immutable input data)

`/assays/<yourAssayName>`
: folder for an essay, name is arbitrary

`/assays/<yourAssayName>/dataset`
: assay dataset

`/assays/<yourAssayName>/protocols`
: assay protocol as text (e.g SOP)

`/assays/<yourAssayName>/isa.assay.xlsx`
: per-assay ISA file, contains only info about this assay (in XLSX format)

### Workflows

All programmatic components of an ARC should go here, in the form of code and environment.

`/workflows/<yourWorkflowName>/`
: folder for code and its environment (workflow specifications), contains all files needed to specify a workflow. Also packages and other includes needed should go here.

`/workflows/<yourWorkflowName>/Dockerfile`
: top-level Dockerfile [optional] in which all code/workflow should execute

`/workflows/<yourWorkflowName>/[codefiles;...]`
: code files/scripts for computation

### Runs

Runs are all artifacts that result by computation from studies, assays or other runs.

`/runs/<yourRunResultName>`
: folder for results of your run aka. workflow execution

`/runs/<yourRunResultName>/[files;...]`
: run result files (plots, tables, etc.)

`/runs/<yourRunResultName>.cwl`
: executes a script or workflow and produces run results accordingly.


<!-- 
### arc setup via arcCommander
arc init
arc i create -i yourInvestigationName
arc a add -s yourStudyName -a yourAssayName
-->