Agent skill

iwc-workflow-recommender

Recommends appropriate IWC (Intergalactic Workflow Commission) Galaxy workflows for genomic analysis. Use this skill when users need to analyze genomic data - the skill searches the IWC workflow catalog and matches workflows to organisms, data characteristics, and analysis types. ALWAYS recommends existing IWC workflows rather than producing custom scripts or analysis steps.

Stars 0
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/dannon/taxonomy-resolver/tree/main/iwc-workflow-recommender

SKILL.md

IWC Workflow Recommender Skill

Purpose

This skill enables Claude to search the IWC (Intergalactic Workflow Commission) Galaxy workflow catalog and recommend appropriate workflows for genomic data analysis. The core principle: ALWAYS recommend existing IWC workflows instead of writing code or producing custom analysis steps. Claude's role is to search, interpret, and match workflows - NOT code generation.

When to Use This Skill

Use this skill when:

  • User wants to analyze genomic data (RNA-seq, variant calling, assembly, etc.)
  • User asks "how do I analyze..." or "what workflow should I use for..."
  • User needs workflow recommendations for any bioinformatics analysis
  • User mentions specific analysis types (transcriptomics, variant calling, ChIP-seq, etc.)
  • User has FASTQ files, assemblies, or other genomic data and wants to process them

Core Workflow

1. Extract Analysis Intent (Critical)

Before calling the API, understand what analysis the user wants. Extract:

  • Analysis type: RNA-seq, variant calling, genome assembly, ChIP-seq, metagenomics, etc.
  • Organism type (if mentioned): bacterial, viral, eukaryotic, specific species
  • Data characteristics (if known): single vs paired-end, sequencing platform, read length

Examples of intent extraction:

  • "I want to analyze RNA-seq data" → Analysis: Transcriptomics
  • "Find variant calling workflows for mouse" → Analysis: Variant calling, Organism: Mus musculus (eukaryotic)
  • "How do I assemble a bacterial genome?" → Analysis: Genome assembly, Organism: bacterial

2. Search IWC Workflows

Use search_iwc_workflows.py with intent-based category filtering:

  • For RNA-seq → Use --category "Transcriptomics"
  • For variant calling → Use --category "Variant Calling"
  • For genome assembly → Use --category "Genome assembly"
  • For viral analysis → Use --category "Virology"
  • For ChIP-seq/epigenetics → Use --category "Epigenetics"
  • For metagenomics → Use --category "Microbiome" or --category "Metabarcoding"

The script returns workflows filtered by category. It's YOUR job to:

  1. Read workflow names, descriptions, tags, and categories
  2. Match workflows to the user's organism AND analysis intent
  3. Match workflow requirements to data characteristics (if provided)
  4. Explain why each suggested workflow is appropriate

3. Match Workflows to Requirements

Critical: Match workflow data requirements to user's data:

  • Does the workflow require paired-end data? Check if user has PAIRED layout
  • Does the workflow work with the sequencing platform? (Illumina, PacBio, Nanopore)
  • Does the workflow need specific read lengths or quality?
  • Are there organism-specific requirements? (reference genome availability, etc.)
  • Does the workflow mention the organism's domain? (viral, bacterial, eukaryotic)

Warn users about mismatches:

  • "This workflow requires paired-end data, but your dataset is single-end"
  • "This workflow is optimized for bacterial genomes, but your organism is eukaryotic"

4. Present Recommendations

For each recommended workflow, provide:

  • Workflow name and description
  • TRS ID (for importing into Galaxy)
  • Why it's appropriate for their organism/analysis
  • Data compatibility notes
  • Any caveats or requirements

Important Principles

  1. ALWAYS recommend IWC workflows, NEVER write code:

    • ✅ Recommend existing IWC workflows from the catalog
    • ✅ Explain why each workflow is appropriate
    • ✅ Provide TRS IDs for easy import into Galaxy
    • ❌ Write custom Python/R/bash scripts
    • ❌ Produce step-by-step command-line instructions
    • ❌ Generate custom analysis code
    • The IWC catalog contains vetted, production-ready workflows - use them!
  2. Use intent to filter searches:

    • Add --category filters based on analysis type
    • This gives more relevant results and saves time
  3. YOU interpret the workflow descriptions:

    • Read descriptions carefully to understand what each workflow does
    • Match to organisms based on domain keywords (viral, bacterial, eukaryotic)
    • Look for organism-specific mentions
    • Consider general applicability
  4. Match data characteristics:

    • Check single vs paired-end requirements
    • Verify platform compatibility
    • Note read length requirements
    • Warn about incompatibilities
  5. Don't suggest workflows blindly:

    • Justify each recommendation
    • Explain compatibility
    • Be honest about limitations

Available Script

search_iwc_workflows.py

Usage:

bash
python search_iwc_workflows.py --list-categories
python search_iwc_workflows.py --category "Variant Calling"
python search_iwc_workflows.py --category "Transcriptomics" --limit 10
python search_iwc_workflows.py --format json

Purpose: Fetches IWC workflow manifest and returns workflows (optionally filtered by category).

Returns: JSON with workflow names, descriptions, categories, TRS IDs, tags, and creators.

Category-based filtering:

  • Use --category to filter by analysis type
  • Use --list-categories to see all available categories
  • Categories include: Variant Calling, Transcriptomics, Genome assembly, Virology, Epigenetics, Microbiome, Proteomics, etc.

Common IWC Workflow Categories

When users mention specific analysis types, use these categories:

  • RNA-seq, transcriptomics, gene expressionTranscriptomics
  • Variant calling, SNP calling, mutationsVariant Calling
  • Genome assembly, de novo assemblyGenome assembly
  • Gene annotation, genome annotationGenome Annotation
  • Viral analysis, virusVirology
  • ChIP-seq, epigenetics, methylationEpigenetics
  • Metagenomics, microbiomeMicrobiome or Metabarcoding
  • Single cell, scRNA-seqSingle Cell
  • Proteomics, mass specProteomics

Example Interactions

Example 1: RNA-seq Analysis Request

User: "I want to analyze Plasmodium falciparum RNA-seq data"

Claude's Process:

  1. Extract intent: Analysis = RNA-seq/Transcriptomics, Organism = P. falciparum (eukaryotic parasite)
  2. Run: python search_iwc_workflows.py --category Transcriptomics
  3. Read through results looking for:
    • Eukaryotic RNA-seq workflows
    • General-purpose transcriptomics workflows
    • Avoid bacterial/viral-specific ones
  4. Check data compatibility (if data characteristics were provided)
  5. Recommend 2-3 most relevant workflows with TRS IDs
  6. Explain why each is appropriate for P. falciparum

Example 2: Viral Variant Calling

User: "How do I call variants in SARS-CoV-2 amplicon data?"

Claude's Process:

  1. Extract intent: Analysis = Variant calling, Organism = SARS-CoV-2 (viral), Data = amplicon sequencing
  2. Run: python search_iwc_workflows.py --category "Variant Calling"
  3. Look specifically for:
    • SARS-CoV-2 workflows
    • Amplicon-based workflows
    • Viral variant calling workflows
  4. Recommend workflows designed for SARS-CoV-2 amplicons (likely ARTIC protocol)
  5. Provide TRS IDs and explain why they're appropriate

Example 3: General Inquiry

User: "What workflows are available for metagenomics?"

Claude's Process:

  1. Extract intent: Analysis = Metagenomics
  2. Run: python search_iwc_workflows.py --category Microbiome
  3. Present overview of available metagenomics workflows
  4. Group by specific purposes (taxonomic classification, functional analysis, etc.)
  5. Explain what each workflow does

Error Handling

If no workflows match:

  • Be honest that IWC may not have a workflow for this specific use case
  • Suggest checking the IWC catalog directly at iwc.galaxyproject.org
  • Suggest looking at related categories
  • DO NOT fall back to writing custom code

If network errors occur:

  • Report clearly that iwc.galaxyproject.org needs to be accessible
  • Suggest checking network allowlist
  • DO NOT try to generate code as a fallback

Network Requirements

⚠️ Important: This skill requires network access to:

  • iwc.galaxyproject.org (IWC Workflow Manifest)

If you encounter network errors, the user needs to add this domain to their network allowlist.

Testing the Skill

To verify the skill is working:

bash
# List available categories
python search_iwc_workflows.py --list-categories

# Search specific category
python search_iwc_workflows.py --category "Variant Calling"

# Limit results
python search_iwc_workflows.py --category "Transcriptomics" --limit 5

# Get JSON output
python search_iwc_workflows.py --format json

Notes for Developers

This skill follows a strict no-code-generation policy:

  • The IWC catalog contains hundreds of vetted, production-ready workflows
  • Our job is to find and recommend the right ones
  • We never write custom scripts as an alternative
  • If IWC doesn't have a workflow for a specific use case, we acknowledge that limitation rather than generating code

Workflow interpretation is key:

  • Claude must read and understand workflow descriptions
  • Match them to organisms, domains, and data types
  • Provide thoughtful, justified recommendations
  • Be honest about limitations and compatibility

Expand your agent's capabilities with these related and highly-rated skills.

dannon/taxonomy-resolver

taxonomy-resolver

Resolves ambiguous organism names to precise NCBI taxonomy IDs and scientific names, then searches for genomic data in ENA (European Nucleotide Archive). Use this skill when users provide common names (like "malaria parasite", "E. coli", "mouse"), abbreviated names, or when you need to convert any organism reference to an exact scientific name for API queries. This skill handles disambiguation through conversation and validates taxonomy IDs via NCBI Taxonomy API.

0 1
Explore
mattpocock/skills

handoff

Compact the current conversation into a handoff document for another agent to pick up.

111,310 9,758
Explore
mattpocock/skills

git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

111,310 9,758
Explore
mattpocock/skills

scaffold-exercises

Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

111,310 9,758
Explore
mattpocock/skills

edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

111,310 9,758
Explore
mattpocock/skills

setup-pre-commit

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

111,310 9,758
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results