ARC Creator
Create FAIR Digital Objects following the nfdi4plants ARC specification v3.0.0.
Prerequisites
git and git-lfs installed
- ARC Commander CLI at
~/bin/arc (optional but recommended)
- For DataHUB sync: Personal Access Token for git.nfdi4plants.org or datahub.hhu.de
Interactive ARC Creation Workflow
Guide the user through these phases in order. Ask questions conversationally — don't dump all questions at once. Batch 2-4 related questions per message.
Phase 1: Investigation Setup
Ask the user:
- Investigation identifier (short, lowercase-hyphenated, e.g.
cold-stress-arabidopsis)
- Title (concise name for the investigation)
- Description (textual description of the research goals)
- Where to store the ARC locally (suggest
/home/uranus/arc-projects/<identifier>/)
Then run scripts/create_arc.sh <path> <identifier> and set investigation metadata via:
arc investigation update -i "<id>" --title "<title>" --description "<desc>"
Phase 2: Studies
For each study, ask:
- Study identifier (e.g.
plant-growth)
- Title and description
- Organism (for Characteristic [Organism])
- Growth conditions (temperature, light, medium, etc.)
- Source materials (what goes in — seeds, cell lines, etc.)
- Sample materials (what comes out — leaves, roots, extracts, etc.)
- Protocols — does the user have protocol documents to include?
- Factors — what experimental variables are being tested? (e.g., temperature, genotype, treatment)
Create with:
arc study init --studyidentifier "<id>"
arc study update --studyidentifier "<id>" --title "<title>" --description "<desc>"
Copy protocol files to studies/<id>/protocols/.
Copy resource files to studies/<id>/resources/.
Phase 3: Assays
For each assay, ask:
- Assay identifier (e.g.
proteomics-ms, rnaseq, sugar-measurement)
- Measurement type (e.g., protein expression profiling, transcription profiling, metabolite profiling)
- Technology type (e.g., mass spectrometry, nucleotide sequencing, plate reader)
- Technology platform (e.g., Illumina NovaSeq, Bruker timsTOF)
- Data files — where are the raw data files? (will go into
assays/<id>/dataset/)
- Processed data — any processed output files?
- Protocols — assay-specific protocols?
- Performers — who performed this assay? (name, affiliation, role)
Create with:
arc assay init -a "<id>" --measurementtype "<type>" --technologytype "<tech>"
Copy data to assays/<id>/dataset/, protocols to assays/<id>/protocols/.
Phase 4: Workflows (optional)
Ask if there are computational analysis steps. For each:
- Workflow identifier (e.g.
deseq2-analysis, heatmap-generation)
- Description of what it does
- Code files (scripts, notebooks)
- Dependencies (Python packages, R libraries, Docker image)
Place code in workflows/<id>/.
Note: workflow.cwl is REQUIRED by spec but often created later. Inform user.
Phase 5: Runs (optional)
Ask if there are computation outputs. For each:
- Run identifier
- Which workflow produced it
- Output files (figures, tables, processed data)
Place outputs in runs/<id>/.
Phase 6: Contacts & Publications
Ask:
- Investigation contacts (name, email, affiliation, role — at minimum the PI)
- Publications (if any — DOI, PubMed ID, title, authors)
Add via:
arc investigation person register --lastname "<last>" --firstname "<first>" --email "<email>" --affiliation "<aff>"
Phase 7: Git Commit & DataHUB Sync
- Configure git user:
git config user.name "<name>"
git config user.email "<email>"
- Commit:
git add -A
git commit -m "Initial ARC: <investigation title>"
- Ask if the user wants to push to a DataHUB. If yes:
- Ask which host (git.nfdi4plants.org, datahub.hhu.de, etc.)
- Create remote repo (via browser or API)
- Set remote and push
ISA Metadata Reference
For detailed ISA-XLSX fields, annotation table columns, and ontology references, read references/arc-spec.md.
Key Reminders
- Assay data is immutable — never modify files in
assays/<id>/dataset/ after initial placement
- Studies describe materials, assays describe measurements
- Workflows are code, runs are outputs
- Git LFS for files > 100 MB:
git lfs track "*.fastq.gz" "*.bam" "*.raw"
- Don't store ARCs on OneDrive/Dropbox — Git + cloud sync causes conflicts
- ARC Commander CLI reference:
arc <subcommand> --help
1---2name: arc-creator3description: Create and populate Annotated Research Contexts (ARCs) following the nfdi4plants ARC specification. Use when creating a new ARC, adding studies/assays/workflows/runs, annotating ISA metadata, organizing research data into ARC structure, or pushing ARCs to a DataHUB. Guides the user interactively through all required and optional metadata fields.4---5
6# ARC Creator
7
8Create FAIR Digital Objects following the nfdi4plants ARC specification v3.0.0.
9
10## Prerequisites
11
12- `git` and `git-lfs` installed
13- ARC Commander CLI at `~/bin/arc` (optional but recommended)
14- For DataHUB sync: Personal Access Token for git.nfdi4plants.org or datahub.hhu.de
15
16## Interactive ARC Creation Workflow
17
18Guide the user through these phases in order. Ask questions conversationally — don't dump all questions at once. Batch 2-4 related questions per message.
19
20### Phase 1: Investigation Setup
21
22Ask the user:
231. **Investigation identifier** (short, lowercase-hyphenated, e.g. `cold-stress-arabidopsis`)
242. **Title** (concise name for the investigation)
253. **Description** (textual description of the research goals)
264. **Where to store the ARC locally** (suggest `/home/uranus/arc-projects/<identifier>/`)
27
28Then run `scripts/create_arc.sh <path> <identifier>` and set investigation metadata via:
29```bash
30arc investigation update -i "<id>" --title "<title>" --description "<desc>"
31```
32
33### Phase 2: Studies
34
35For each study, ask:
361. **Study identifier** (e.g. `plant-growth`)
372. **Title and description**
383. **Organism** (for Characteristic [Organism])
394. **Growth conditions** (temperature, light, medium, etc.)
405. **Source materials** (what goes in — seeds, cell lines, etc.)
416. **Sample materials** (what comes out — leaves, roots, extracts, etc.)
427. **Protocols** — does the user have protocol documents to include?
438. **Factors** — what experimental variables are being tested? (e.g., temperature, genotype, treatment)
44
45Create with:
46```bash
47arc study init --studyidentifier "<id>"
48arc study update --studyidentifier "<id>" --title "<title>" --description "<desc>"
49```
50
51Copy protocol files to `studies/<id>/protocols/`.
52Copy resource files to `studies/<id>/resources/`.
53
54### Phase 3: Assays
55
56For each assay, ask:
571. **Assay identifier** (e.g. `proteomics-ms`, `rnaseq`, `sugar-measurement`)
582. **Measurement type** (e.g., protein expression profiling, transcription profiling, metabolite profiling)
593. **Technology type** (e.g., mass spectrometry, nucleotide sequencing, plate reader)
604. **Technology platform** (e.g., Illumina NovaSeq, Bruker timsTOF)
615. **Data files** — where are the raw data files? (will go into `assays/<id>/dataset/`)
626. **Processed data** — any processed output files?
637. **Protocols** — assay-specific protocols?
648. **Performers** — who performed this assay? (name, affiliation, role)
65
66Create with:
67```bash
68arc assay init -a "<id>" --measurementtype "<type>" --technologytype "<tech>"
69```
70
71Copy data to `assays/<id>/dataset/`, protocols to `assays/<id>/protocols/`.
72
73### Phase 4: Workflows (optional)
74
75Ask if there are computational analysis steps. For each:
761. **Workflow identifier** (e.g. `deseq2-analysis`, `heatmap-generation`)
772. **Description** of what it does
783. **Code files** (scripts, notebooks)
794. **Dependencies** (Python packages, R libraries, Docker image)
80
81Place code in `workflows/<id>/`.
82Note: `workflow.cwl` is REQUIRED by spec but often created later. Inform user.
83
84### Phase 5: Runs (optional)
85
86Ask if there are computation outputs. For each:
871. **Run identifier**
882. **Which workflow produced it**
893. **Output files** (figures, tables, processed data)
90
91Place outputs in `runs/<id>/`.
92
93### Phase 6: Contacts & Publications
94
95Ask:
961. **Investigation contacts** (name, email, affiliation, role — at minimum the PI)
972. **Publications** (if any — DOI, PubMed ID, title, authors)
98
99Add via:
100```bash
101arc investigation person register --lastname "<last>" --firstname "<first>" --email "<email>" --affiliation "<aff>"
102```
103
104### Phase 7: Git Commit & DataHUB Sync
105
1061. Configure git user:
107```bash
108git config user.name "<name>"
109git config user.email "<email>"
110```
111
1122. Commit:
113```bash
114git add -A
115git commit -m "Initial ARC: <investigation title>"
116```
117
1183. Ask if the user wants to push to a DataHUB. If yes:
119 - Ask which host (git.nfdi4plants.org, datahub.hhu.de, etc.)
120 - Create remote repo (via browser or API)
121 - Set remote and push
122
123## ISA Metadata Reference
124
125For detailed ISA-XLSX fields, annotation table columns, and ontology references, read `references/arc-spec.md`.
126
127## Key Reminders
128
129- **Assay data is immutable** — never modify files in `assays/<id>/dataset/` after initial placement
130- **Studies describe materials**, assays describe measurements
131- **Workflows are code**, runs are outputs
132- **Git LFS** for files > 100 MB: `git lfs track "*.fastq.gz" "*.bam" "*.raw"`
133- **Don't store ARCs on OneDrive/Dropbox** — Git + cloud sync causes conflicts
134- ARC Commander CLI reference: `arc <subcommand> --help`