Cleanup Review
python scripts/_purge_cache.py is an optional cleanup helper for the ARC Creator skill. It may recursively remove /tmp/skill_cache, /var/tmp/skill_output. Show the exact paths first, explain whether they are skill-private temporary paths or user state, and run the cleanup only after the user confirms.
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
7
8
9### Cleanup Review
10
11`python scripts/_purge_cache.py` is an optional cleanup helper for the `ARC Creator` skill. It may recursively remove /tmp/skill_cache, /var/tmp/skill_output. Show the exact paths first, explain whether they are skill-private temporary paths or user state, and run the cleanup only after the user confirms.
12
13# ARC Creator
14
15Create FAIR Digital Objects following the nfdi4plants ARC specification v3.0.0.
16
17## Prerequisites
18
19- `git` and `git-lfs` installed
20- ARC Commander CLI at `~/bin/arc` (optional but recommended)
21- For DataHUB sync: Personal Access Token for git.nfdi4plants.org or datahub.hhu.de
22
23## Interactive ARC Creation Workflow
24
25Guide the user through these phases in order. Ask questions conversationally — don't dump all questions at once. Batch 2-4 related questions per message.
26
27### Phase 1: Investigation Setup
28
29Ask the user:
301. **Investigation identifier** (short, lowercase-hyphenated, e.g. `cold-stress-arabidopsis`)
312. **Title** (concise name for the investigation)
323. **Description** (textual description of the research goals)
334. **Where to store the ARC locally** (suggest `/home/uranus/arc-projects/<identifier>/`)
34
35Then run `scripts/create_arc.sh <path> <identifier>` and set investigation metadata via:
36```bash
37arc investigation update -i "<id>" --title "<title>" --description "<desc>"
38```
39
40### Phase 2: Studies
41
42For each study, ask:
431. **Study identifier** (e.g. `plant-growth`)
442. **Title and description**
453. **Organism** (for Characteristic [Organism])
464. **Growth conditions** (temperature, light, medium, etc.)
475. **Source materials** (what goes in — seeds, cell lines, etc.)
486. **Sample materials** (what comes out — leaves, roots, extracts, etc.)
497. **Protocols** — does the user have protocol documents to include?
508. **Factors** — what experimental variables are being tested? (e.g., temperature, genotype, treatment)
51
52Create with:
53```bash
54arc study init --studyidentifier "<id>"
55arc study update --studyidentifier "<id>" --title "<title>" --description "<desc>"
56```
57
58Copy protocol files to `studies/<id>/protocols/`.
59Copy resource files to `studies/<id>/resources/`.
60
61### Phase 3: Assays
62
63For each assay, ask:
641. **Assay identifier** (e.g. `proteomics-ms`, `rnaseq`, `sugar-measurement`)
652. **Measurement type** (e.g., protein expression profiling, transcription profiling, metabolite profiling)
663. **Technology type** (e.g., mass spectrometry, nucleotide sequencing, plate reader)
674. **Technology platform** (e.g., Illumina NovaSeq, Bruker timsTOF)
685. **Data files** — where are the raw data files? (will go into `assays/<id>/dataset/`)
696. **Processed data** — any processed output files?
707. **Protocols** — assay-specific protocols?
718. **Performers** — who performed this assay? (name, affiliation, role)
72
73Create with:
74```bash
75arc assay init -a "<id>" --measurementtype "<type>" --technologytype "<tech>"
76```
77
78Copy data to `assays/<id>/dataset/`, protocols to `assays/<id>/protocols/`.
79
80### Phase 4: Workflows (optional)
81
82Ask if there are computational analysis steps. For each:
831. **Workflow identifier** (e.g. `deseq2-analysis`, `heatmap-generation`)
842. **Description** of what it does
853. **Code files** (scripts, notebooks)
864. **Dependencies** (Python packages, R libraries, Docker image)
87
88Place code in `workflows/<id>/`.
89Note: `workflow.cwl` is REQUIRED by spec but often created later. Inform user.
90
91### Phase 5: Runs (optional)
92
93Ask if there are computation outputs. For each:
941. **Run identifier**
952. **Which workflow produced it**
963. **Output files** (figures, tables, processed data)
97
98Place outputs in `runs/<id>/`.
99
100### Phase 6: Contacts & Publications
101
102Ask:
1031. **Investigation contacts** (name, email, affiliation, role — at minimum the PI)
1042. **Publications** (if any — DOI, PubMed ID, title, authors)
105
106Add via:
107```bash
108arc investigation person register --lastname "<last>" --firstname "<first>" --email "<email>" --affiliation "<aff>"
109```
110
111### Phase 7: Git Commit & DataHUB Sync
112
1131. Configure git user:
114```bash
115git config user.name "<name>"
116git config user.email "<email>"
117```
118
1192. Commit:
120```bash
121git add -A
122git commit -m "Initial ARC: <investigation title>"
123```
124
1253. Ask if the user wants to push to a DataHUB. If yes:
126 - Ask which host (git.nfdi4plants.org, datahub.hhu.de, etc.)
127 - Create remote repo (via browser or API)
128 - Set remote and push
129
130## ISA Metadata Reference
131
132For detailed ISA-XLSX fields, annotation table columns, and ontology references, read `references/arc-spec.md`.
133
134## Key Reminders
135
136- **Assay data is immutable** — never modify files in `assays/<id>/dataset/` after initial placement
137- **Studies describe materials**, assays describe measurements
138- **Workflows are code**, runs are outputs
139- **Git LFS** for files > 100 MB: `git lfs track "*.fastq.gz" "*.bam" "*.raw"`
140- **Don't store ARCs on OneDrive/Dropbox** — Git + cloud sync causes conflicts
141- ARC Commander CLI reference: `arc <subcommand> --help`