From meta-skills
Canonical institutional context for the Functional Genomics Center Zurich (FGCZ). This skill should be used at the start of any FGCZ-related task to ground subsequent skills in the shared substrate — what FGCZ is, the tech stack (B-Fabric, SUSHI, ezRun, Draugr, gStore, SLURM, GitLab, ShinyProxy), the canonical data flow, user personas, and FGCZ-specific conventions (paths, modules, environments). Other skills in this marketplace assume this context implicitly; loading it explicitly prevents context re-discovery in every session.
How this skill is triggered — by the user, by Claude, or both
Slash command
/meta-skills:fgcz-contextThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is a **substrate**, not a workflow. It does not perform an action — it tells the agent what world the FGCZ skills operate in. Load it once per session when working on FGCZ tasks, and the institutional facts below become available to subsequent skill activations.
This skill is a substrate, not a workflow. It does not perform an action — it tells the agent what world the FGCZ skills operate in. Load it once per session when working on FGCZ tasks, and the institutional facts below become available to subsequent skill activations.
/srv/gstore/projects/, /srv/GT/analysis/), a host (fgcz-r-029, fgcz-c-051), a module (Dev/R/4.5.0), or a conda environment (gi_py3.11.5) and the agent needs to know what these are.Do not use as a primary how-to source. This skill describes the world; operational skills (fgcz-infrastructure, bfabric-lims, etc.) describe how to act in it.
Functional Genomics Center Zurich (FGCZ) — joint genomics, transcriptomics, proteomics, and metabolomics core facility of the University of Zurich (UZH) + ETH Zurich, located in Zürich, Switzerland.
pXXXXX (project) / oXXXXX (order) IDs in B-Fabric.https://fgcz-bfabric.uzh.ch — LIMShttps://fgcz-sushi.uzh.ch — workflow framework (production)https://shiny.fgcz.uzh.ch — public ShinyProxyhttps://gitlab.bfabric.org — self-hosted GitLab| Layer | Component | Notes |
|---|---|---|
| LIMS / metadata | B-Fabric | fgcz-bfabric.uzh.ch. Python: bfabric + btools. Credentials at ~/.bfabricpy.yml. Conda env gi_py3.11.5. |
| Workflow framework | SUSHI | Ruby on Rails + Python job manager + MySQL. 4 instances: prod / demo / course / test. App pattern = Ruby parameter class + R/Rmd backend via ezRun. |
| Analysis backend | ezRun R package | Source under ~/git/ezRun / ~/git/ezRun-scmultiomics. |
| Demultiplexing | Draugr v2.5.5+ | FGCZ-internal Python tool. Cron-driven (populate_queue.py + monitor_runs.py), wraps bcl2fastq / bases2fastq. |
| Compute | SLURM on Debian 12 + Lmod | Named hosts: fgcz-r-029 (reference builds), fgcz-c-041/043/044/051/053/054/176 (compute). GPU: NVIDIA L40S, Blackwell. Common partition: employee. |
| Environment management | Pixi + Lmod modules + conda envs | Pixi for project-local rapidsai/conda-forge. module load Dev/R/4.5.0 style. Production envs (gi_* prefix) are read-only; use _dev variants for installable. |
| Storage | gStore | Long-term delivery: /srv/gstore/projects/pXXXXX/ (read-only after copy). Working: /srv/GT/analysis/pXXXXX/. References: /srv/GT/reference/. Databases: /srv/GT/databases/. Raw BCL: /export/local/data/. Copy semantics: g-req copynow / gstore-list. |
| SCM / CI | Self-hosted GitLab | gitlab.bfabric.org. PAT-only auth (OAuth disabled). Manage via glab CLI. |
| App delivery | ShinyProxy | Two instances: private (LDAP against B-Fabric users) + public. Containerized via fgcz_base_image Docker base. |
| Pipelines | Nextflow / nf-core | rnaseq, sarek, atacseq. Coexists with SUSHI. |
| 10x tools | CellRanger / -ARC / -ATAC / multi, SpaceRanger, XeniumRanger | FGCZ-specific Sample2Barcode CSV format (differs from upstream 10x). |
| Single-cell stack | Seurat v5, scVI/scANVI/totalVI/MultiVI, RAPIDS singlecell, scRepertoire, RCTD (R + GPU py), CellChat, Slingshot, SCEVAN, SComatic, CytoTRACE 2, clusterProfiler, infercnvpy, STalign | Multi-language (R + Python), qs2 serialization standard. |
| Reporting | R Markdown + ezRun templates | Institutional style: 300 DPI, polychrome palette, coord_fixed UMAPs, ezInteractiveTableRmd. |
These are the institutional tool packages an agent should distinguish. Generic tools (SLURM, Lmod, Pixi, Nextflow, GitLab) are not listed here.
The central LIMS for FGCZ. Web UI at https://fgcz-bfabric.uzh.ch. Exposes a SOAP API for programmatic access. Stores projects (pXXXXX), orders (oXXXXX), samples, workunits, datasets, resources, users, lineage.
Owned by: IT group.
The canonical Python interface to B-Fabric. Provides Bfabric class for direct API calls. Credentials in ~/.bfabricpy.yml (sections like PRODUCTION, TEST). Used by all higher-level Python tools and by user scripts.
When to use: any Python code that needs B-Fabric read or write access.
A set of command-line tools (e.g. register_sushi_dataset_into_bfabric, update_resource_status, delete_workunit_by_dataset_id, get_project_id_from_order, check_dataset_bfabric) that internally use bfabricPy to talk to the B-Fabric SOAP API. Source: ~/git/btools.
When to use: shell-level B-Fabric operations, especially registration of analysis outputs back into B-Fabric lineage.
Relationship to bfabricPy: btools = CLI surface; bfabricPy = library. They are layered, not parallel.
FGCZ-internal pipeline submission framework. Ruby on Rails web frontend + Python job manager daemon (the 2024-era replacement of legacy workflow_manager) + MySQL DB. Apps are defined as Ruby parameter class + R/Rmd backend via ezRun. Jobs dispatch to SLURM. Four instances: prod / demo / course / test.
Web entry: https://fgcz-sushi.uzh.ch
CLI: sushi_fabric
Source: ~/git/sushi/master
Owned by: Genome Informatics group.
R package providing the analysis layer that SUSHI apps call into. Encodes the FGCZ report templates (300 DPI, polychrome, ezInteractiveTableRmd), helper functions (ezLoadPackage, ezWrite.table, setwdNew, ezSystem), and per-method analysis modules. Source: ~/git/ezRun (and forks like ~/git/ezRun-scmultiomics).
Owned by: Genome Informatics group.
FGCZ-internal Python tool (v2.5.5+, Python 3.12+) that wraps bcl2fastq / bases2fastq, polls B-Fabric for new runs, demuxes, and archives FASTQ to gStore. Cron-driven via populate_queue.py + monitor_runs.py (screen-based daemon).
Owned by: Genome Informatics group.
A package of CLI tools (commands include g-req, gstore-list, …) for interacting with the gStore file server (/srv/gstore/). gStore is read-only at the POSIX level for safety (prevents accidental deletion of long-term project deliverables). The only sanctioned way to write to gStore is via gtools, which logs operations and enforces permissions.
g-req copynow <src> <dst> — copy a file or directory into gStore. The source must be on a working filesystem (typically /srv/GT/analysis/...). gStore-side dst is created by the daemon.gstore-list — list / poll gStore contents.Why this design exists: gStore holds the canonical, billable deliverables that are referenced by B-Fabric lineage. A rm -rf mistake there breaks audit chains. gtools mediation prevents both accidental deletes and silent overwrite of audit-tracked files.
Agent rule: never propose rm, mv, or direct cp into /srv/gstore/projects/. Always route writes through g-req.
Open-source app server (not FGCZ-built, but configured with FGCZ-specific topology). Two instances: private (LDAP-authenticated against B-Fabric users, https://shiny.fgcz.uzh.ch) + public. Hosts R Shiny / Python (Gradio, Streamlit) / Quarto apps in Docker containers based on fgcz_base_image. Used to deliver interactive viewers (e.g. exploreSC, BD Rhapsody dashboards).
Owned by: Genome Informatics group (deployment) + IT group (LDAP / cert / infrastructure).
B-Fabric (LIMS + SOAP API)
↑ ↑
│ └── bfabricPy ──── btools (CLI)
│ │
│ └─ used by Draugr, SUSHI, custom scripts
│
└── SUSHI (Rails + job manager + MySQL)
│
├── dispatches → SLURM ──── runs ezRun (R) on compute nodes
│
└── inputs from gStore, outputs back to gStore via gtools
Draugr ── reads B-Fabric runs ── writes FASTQ to gStore via gtools
ShinyProxy ── reads gStore (read-only mount) ── authenticates via B-Fabric LDAP
B-Fabric sample/order metadata
↓
sequencing → BCL on /export/local/data/
↓
Draugr demux + B-Fabric integration
↓
FASTQ archived to gStore /srv/gstore/projects/pXXXXX/
↓
SUSHI app submission (CellRanger / SpaceRanger / nf-core / custom)
↓
analysis under /srv/GT/analysis/pXXXXX/
↓
Rmd/HTML reports + qs2 objects
↓
g-req copy back to gStore
↓
B-Fabric dataset registration (with lineage)
↓
(optional) custom Rmd → SUSHI-shaped artefact (Hubert blueprint)
FGCZ is organized into 5 groups:
| Group | Role | Skills user? |
|---|---|---|
| Genomics & Transcriptomics group | Wet-lab — sample prep, library construction, sequencing runs | Indirect (sees B-Fabric / SUSHI web UI) |
| Genome Informatics group | Manages and develops genomics infrastructure (ezRun, SUSHI, Draugr) + analyzes user data | Primary skills user |
| Proteomics group | Wet-lab + bioinformatics for proteomics | Primary skills user (bioinformaticians) |
| Metabolomics group | Wet-lab + bioinformatics for LC-MS metabolomics | Primary skills user (bioinformaticians) |
| IT group | B-Fabric and infrastructure operations | Uses bfabric-lims, fgcz-infrastructure |
Primary skills users (the core audience): bioinformaticians in Genome Informatics + Proteomics + Metabolomics groups. When in doubt about the intended audience of a skill, assume one of these three groups.
These are task shapes — a single person typically wears several of these hats depending on the project.
| Persona | Typical skill use | Task shape | Primary group |
|---|---|---|---|
| Pipeline / infrastructure developer | sushi-framework, fgcz-sushi-app-dev, fgcz-modules, fgcz-gitlab, shinyproxy-deployment, scmultiomics-analysis | Build / maintain SUSHI apps, ezRun backends, deployment | Genome Informatics |
| Demux / sequencing operations | draugr-demultiplexing, sample2barcode-generation | Routine demux monitoring, base-mask config, queue triage | Genome Informatics |
| Single-cell / spatial analyst | seurat-analysis, cellranger-fgcz, scvi-tools, cellchat, slingshot, cytotrace2, clusterprofiler, rctd, scevan, scomatic, screpertoire | Per-project analysis pipeline, repeatable template, FGCZ-styled Rmd | Genome Informatics |
| Spatial specialist | spaceranger-fgcz, xenium-ccf-registration, insitucnv, split-purification | Method-heavy Visium/VisiumHD/Xenium work | Genome Informatics |
| ML / GPU specialist | rapids-gpu-analysis, scvi-tools, rctd-py | >500K cells, Pixi envs, GPU SBATCH | Genome Informatics |
| Custom analysis / project delivery | autonomous-render, fgcz-custom-analysis-register, bfabric-tools | One-off Rmd → SUSHI-shaped artefact (Hubert blueprint); register back to lineage | Genome Informatics |
| Metabolomics analyst | metabolomics-curation | LC-MS feature QC (100-300 features) | Metabolomics |
| LIMS / dataset admin | bfabric-query, bfabric-tools | Registration, lineage tracing, metadata export | IT + Genome Informatics |
| External / GEO reanalysis (occasional) | nextflow-development | Self-service nf-core on public data — aspirational; actual primary user is staff doing the same | Any |
gitlab.bfabric.org PAT-only, ShinyProxy LDAP, FGCZ-internal Draugr tool, gStore read-only-after-copy semantics.cellranger-fgcz); CellChat 21 lessons; Draugr base masks; Seurat v5 object changes.autonomous-render collapses iterative render-debug cycles into one agent invocation. AI-shaped, not human-shaped./srv/gstore/projects/pNNNNN/. Working space is /srv/GT/analysis/pNNNNN/. gStore is POSIX-read-only by design (safety against accidental deletion of long-term deliverables). Never propose rm, mv, or direct cp to /srv/gstore/. Write to /srv/GT/analysis/, then deliver via g-req copynow (the gtools-mediated path is the only sanctioned write route).oNNNNN is distinct from project ID pNNNNN. Both are B-Fabric concepts./home/{username}/, Analyses_{Name}/, ps_{name} conda envs. Treat these as templates, not literal paths — substitute the current user's equivalents.pip install into them. Use _dev variants or Pixi.--constraint=L40S (or Blackwell) over --nodelist=fgcz-r-NNN to avoid queue-forever when a specific node is busy.coord_fixed() for UMAP, qs2 (not qs) for serialization.~/.bfabricpy.yml. MySQL: --defaults-file=~/.my.cnf or MYSQL_PWD env var from secret. GitLab: PAT via glab auth login (not from agent session).The following are not encoded in this skill and should be treated as ambiguous until clarified for a given task:
scmultiomics-analysis. Coverage uneven.This context was constructed on 2026-05-22 by independent skim + integration from 4 LLMs (Claude Opus 4.7 Agent persona, Claude Opus 4.6, Codex GPT-5.5, Cursor Composer 2.5) reviewing the fgcz-skills marketplace at v1.3.2. 4/4 reviewers agreed on all items above with no factual conflicts. Tech stack items are evidenced from the marketplace itself. Governance/funding items marked above are inferred from public domain evidence (*.uzh.ch, [email protected]).
This skill is a snapshot. FGCZ infrastructure evolves (Job Manager 2024 architecture shift, new GPU nodes). When this skill's content conflicts with current operational reality, current reality wins — and the conflict should be flagged for skill update.
meta-skills/multi-llm-review — workflow to refresh / verify this context against the current state of the marketplace.meta-skills/skill-audit — deterministic linter that uses conventions from this skill as baseline.fgcz-infrastructure/* — operational skills that assume this context.bfabric-lims/* — LIMS operations.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub cpanse/skills --plugin meta-skills