技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
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 快照 · 自动分类 · 以原作者文档为准
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.
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.
ELIXIR's registry of 30,000+ bioinformatics tools, web services, and databases.
| Tool | Use for | Key params |
|---|---|---|
BioTools_search | Free-text keyword search across name/description/topics | q, page, size (max 50) |
BioTools_get_tool | Full record for a known tool by its bio.tools ID | biotoolsID |
BioTools_search_by_topic | Filter by EDAM scientific topic (e.g. "Genomics", "Proteomics") | topic, page, size |
BioTools_search_by_operation | Filter by EDAM operation — what the tool DOES (e.g. "Sequence alignment", "Variant calling") | operation, page, size |
BioTools_search_by_type | Filter by resource type | toolType (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.
~270 OpenAPI-described biomedical web APIs, many of them NCATS Biomedical Data Translator components (BioThings APIs, knowledge-provider APIs).
| Tool | Use for | Key params |
|---|---|---|
SmartAPI_search_apis | Keyword or field-scoped Lucene search (e.g. tags.name:translator) | query, limit (max 100) |
SmartAPI_get_api | Full spec for one API: base URLs, endpoint list, contact | api_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.
Aggregates bioinformatics/life-science tutorials, courses, webinars, and events from ELIXIR nodes and partners.
| Tool | Use for | Key params |
|---|---|---|
ELIXIRTeSS_search_materials | Find tutorials/courses/webinars | q, scientific_topics (EDAM), target_audience, difficulty_level, licence, page_size, page |
ELIXIRTeSS_search_events | Find live/scheduled training events | q, 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.
2,200+ R packages for RNA-seq, single-cell, proteomics, epigenomics, and more, indexed via the R-universe search API.
| Tool | Use for | Key params |
|---|---|---|
Bioconductor_search_packages | Keyword/topic search | q, limit (max 100) |
Bioconductor_get_package | Full metadata for a known package | package_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).
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).
| Tool | Use for | Key params |
|---|---|---|
CRAN_get_package | Current metadata: version, description, license, dependencies | package (exact, case-sensitive) |
CRAN_get_package_versions | Full release history | package |
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.
| Resource | What it holds | Example 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.
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.count field, which does differ, and by paging further if the very top hit looks generic.