界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

tooluniverse-bioinformatics-resource-discovery

tooluniverse-bioinformatics-resource-discovery

【数据与研究】Discover which bioinformatics software tool, biomedical REST API, R/Bioconductor package, CRAN package, or training material exists for a task, before writing analysis code or building a pipeline. Covers ELIXIR bio.tools (30,000+ software tools/databases by keyword, EDAM topic, or EDAM operation), SmartAPI (biomedical API registry, incl. NCATS Transl…

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: tooluniverse-bioinformatics-resource-discovery description: "Discover which bioinformatics software tool, biomedical REST API, R/Bioconductor package, CRAN package, or training material exists for a task, before writing analysis code or building a pipeline. Covers ELIXIR bio.tools (30,000+ software tools/databases by keyword, EDAM topic, or EDAM operation), SmartAPI (biomedical API registry, incl. NCATS Translator components), ELIXIR TeSS (bioinformatics training materials/events), Bioconductor (R packages for computational biology), and CRAN (general R packages). Use when someone asks 'is there an existing tool/package for X', 'what software does [analysis]', 'find an API for Y', or 'is there a tutorial on Z'." disable-model-invocation: true

Bioinformatics Resource Discovery

Answers "what already exists for this task" — software, APIs, R packages, or training material — before writing new analysis code, choosing an nf-core pipeline, or wrapping a new REST API by hand.

LOOK UP, DON'T GUESS: Never assert that a tool/package/API does or doesn't exist for a task from memory. These 5 registries are live and current — search them.

When to Use This Skill

  • "Is there existing software for [bioinformatics task]?" -> bio.tools
  • "What biomedical APIs exist for [domain], and where's the base URL/spec?" -> SmartAPI
  • "Is there a tutorial/course on [technique]?" -> ELIXIR TeSS
  • "What R package does [analysis] in Bioconductor?" -> Bioconductor
  • "What does CRAN package X do / what version / what does it depend on?" -> CRAN

NOT for: actually running an nf-core pipeline once you've picked one (-> tooluniverse-nfcore-pipelines); resolving IDs between databases (-> tooluniverse-sequence-retrieval's Bioregistry/Identifiers.org/TogoID section); retrieving biological data itself (sequences, structures, expression) rather than software/APIs about it.

1. bio.tools — Bioinformatics Software & Database Registry

ELIXIR's registry of 30,000+ bioinformatics tools, web services, and databases.

ToolUse forKey params
BioTools_searchFree-text keyword search across name/description/topicsq, page, size (max 50)
BioTools_get_toolFull record for a known tool by its bio.tools IDbiotoolsID
BioTools_search_by_topicFilter by EDAM scientific topic (e.g. "Genomics", "Proteomics")topic, page, size
BioTools_search_by_operationFilter by EDAM operation — what the tool DOES (e.g. "Sequence alignment", "Variant calling")operation, page, size
BioTools_search_by_typeFilter by resource typetoolType (e.g. "Database portal"), q, page, size

Which tool for "what software does X?": start with BioTools_search (free text). Results are relevance-ranked (sort=score): q="blast" returns BLAST first and q="variant calling" returns the GATK tools first. The _by_topic / _by_operation / _by_type filters are for narrowing and counting: they return the exact EDAM set (multi-word terms are sent as exact phrases, so operation="Variant calling" matches 1,015 tools, not the 4,165 a loose match gives), but upstream's ordering within a filter is not by relevance, so do not read the first few hits as "the best tools". Combine both: read the count from a filter, then rank with a text query.

Verified live: BioTools_search {"q": "RNA-seq", "size": 3} -> 6,081 total matches. BioTools_get_tool {"biotoolsID": "blast"} -> the real BLAST record (homepage, EDAM operations, full description). BioTools_search_by_topic {"topic": "Genomics"} -> 10,165 matches; BioTools_search_by_operation {"operation": "Sequence alignment"} -> 5,890 matches; BioTools_search_by_type {"toolType": "Database portal"} -> 2,597 matches — note toolType is the required param name, not tool_type, and topic/operation searches return a real, differently-sized result set per filter even when the very top-ranked item coincides across filters (bio.tools' own relevance/recency ranking, not a wrapper bug) — always check count and page through more than the first result.

2. SmartAPI — Biomedical API Registry

~270 OpenAPI-described biomedical web APIs, many of them NCATS Biomedical Data Translator components (BioThings APIs, knowledge-provider APIs).

ToolUse forKey params
SmartAPI_search_apisKeyword or field-scoped Lucene search (e.g. tags.name:translator)query, limit (max 100)
SmartAPI_get_apiFull spec for one API: base URLs, endpoint list, contactapi_id

Verified live: SmartAPI_search_apis {"query": "biothings", "limit": 3} -> real APIs including "Biothings Therapeutic Target Database API" (base_url: https://biothings.transltr.io/ttd) and "MyGeneset.info API". Feeding that api_id into SmartAPI_get_api returns base_urls (prod/test/CI variants), endpoint_count: 5, and the actual endpoint paths (/query, /metadata, /association/{id}, ...).

Use this to find an API not yet wrapped as a dedicated ToolUniverse tool — resolve its base URL and endpoints here, then either call it directly (if simple/one-off) or use tooluniverse-create-tool/devtu-create-tool to wrap it properly. Also useful for resolving an API mentioned in a paper's methods section to its actual current base URL.

3. ELIXIR TeSS — Training Materials & Events

Aggregates bioinformatics/life-science tutorials, courses, webinars, and events from ELIXIR nodes and partners.

ToolUse forKey params
ELIXIRTeSS_search_materialsFind tutorials/courses/webinarsq, scientific_topics (EDAM), target_audience, difficulty_level, licence, page_size, page
ELIXIRTeSS_search_eventsFind live/scheduled training eventsq, plus similar filters

Verified live: ELIXIRTeSS_search_materials {"q": "RNA-seq", "page_size": 3} -> real materials, e.g. "A practical introduction to bioinformatics and RNA-seq using Galaxy". ELIXIRTeSS_search_events {"q": "bioinformatics"} -> real upcoming events (e.g. a 2026-09-21 SIB Swiss Institute of Bioinformatics course, "Feature Selection for Bioinformatics with Python"). A query with zero matches (e.g. q: "CRISPR" at time of testing) returns a clean empty list, not an error — confirmed by re-running with a broader query and an empty-query call, both of which returned real, different, non-empty result sets, so treat an empty result as "nothing currently listed for that exact term," not a broken call.

4. Bioconductor — R Packages for Computational Biology

2,200+ R packages for RNA-seq, single-cell, proteomics, epigenomics, and more, indexed via the R-universe search API.

ToolUse forKey params
Bioconductor_search_packagesKeyword/topic searchq, limit (max 100)
Bioconductor_get_packageFull metadata for a known packagepackage_name (exact, case-sensitive)

Verified live: Bioconductor_search_packages {"q": "differential expression", "limit": 3} -> real packages ranked by relevance score (_score), e.g. compcodeR. Bioconductor_get_package {"package_name": "DESeq2"} -> the real current DESeq2 record (Version: "1.53.3", full author list, description) — note the param is package_name, not package (that name is reserved for the separate CRAN tools below; passing package to this tool fails validation).

5. CRAN — General R Package Registry

20,000+ general R packages (via the crandb mirror) — use for R packages outside Bioconductor's bio-specific scope (stats, viz, data wrangling, and bio-adjacent packages like survival).

ToolUse forKey params
CRAN_get_packageCurrent metadata: version, description, license, dependenciespackage (exact, case-sensitive)
CRAN_get_package_versionsFull release historypackage

Verified live: CRAN_get_package {"package": "ggplot2"} -> real current metadata (Version: "4.0.3", full author list, license). CRAN_get_package_versions {"package": "ggplot2"} -> full version history back to 0.5 (2007-01-01) with each version's own metadata snapshot.

Choosing Among the Five Resources

ResourceWhat it holdsExample question
bio.tools (Sec. 1)Bioinformatics software/services/databases, catalogued by EDAM topic & operation"What tools do variant calling from BAM files?"
SmartAPI (Sec. 2)Live biomedical REST APIs with machine-readable specs"What's the base URL and endpoints for the BioThings TTD API?"
ELIXIR TeSS (Sec. 3)Training materials and events"Is there a beginner RNA-seq course I can point someone to?"
Bioconductor (Sec. 4)R packages specifically for computational biology"What Bioconductor package does differential expression on RNA-seq counts?"
CRAN (Sec. 5)General-purpose R packages (incl. bio-adjacent)"What does the survival package's current version support?"

A Bioconductor_search_packages hit and a CRAN_get_package hit can both resolve for a genuinely bio-relevant R package (e.g. survival lives on CRAN, not Bioconductor) — try Bioconductor first for a task that sounds computational-biology-specific, and fall back to CRAN if it's a general statistics/viz need or Bioconductor returns nothing relevant.

Common Pitfalls

  • Parameter name mismatches across similarly-shaped tools: Bioconductor_get_package takes package_name; CRAN_get_package/CRAN_get_package_versions take package; BioTools_search_by_type takes toolType (camelCase), not tool_type. Don't assume a shared convention across these 5 resources — check each tool's own schema.
  • A shared top result across different filters on bio.tools is not a bug — verify by checking the count field, which does differ, and by paging further if the very top hit looks generic.
  • An empty ELIXIR TeSS result is a real "nothing listed," not a broken call — retry with a broader query before concluding the tool is down.
我的收藏