Skip to content
cccskills
FreePublished on GitHub

bioservices

Unified Python access to 40+ bioinformatics web services; use when you need to query multiple databases (e.g., UniProt/KEGG/ChEMBL/Reactome) with one consistent API in a single workflow, especially for cross-database analysis and identifier mapping.

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (9)

  • SKILL.md6.8 KB
  • bioservices_audit_result_v1.json12.1 KB
  • references/identifier_mapping.md18.0 KB
  • references/services_reference.md13.6 KB
  • references/workflow_patterns.md20.6 KB
  • scripts/batch_id_converter.py11.0 KB
  • scripts/compound_cross_reference.py11.4 KB
  • scripts/pathway_analysis.py9.6 KB
  • scripts/protein_analysis_workflow.py12.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Source: https://github.com/aipoch/medical-research-skills

When to Use

  • You need to retrieve and combine biological data from multiple databases (e.g., UniProt + KEGG + GO) in one Python workflow.
  • You need cross-database identifier mapping (e.g., UniProt ↔ KEGG, KEGG compound ↔ ChEMBL) as part of downstream analysis.
  • You want to programmatically explore pathways and networks (e.g., KEGG pathway parsing, exporting interactions to SIF).
  • You need service-agnostic access across many providers (REST and SOAP/WSDL) without writing custom clients per service.
  • You are building integrated bioinformatics pipelines (protein → sequence → BLAST → pathways → interactions) that span multiple resources.

Key Features

  • Unified API for ~40+ bioinformatics services (single Python package, consistent patterns).
  • Transparent protocol handling (REST and SOAP/WSDL).
  • Protein-centric workflows via UniProt (search, retrieve, ID mapping).
  • Pathway discovery and parsing via KEGG (KGML parsing, relations extraction, SIF export).
  • Compound lookup and cross-referencing (e.g., KEGG compounds + UniChem mapping to ChEMBL).
  • Sequence analysis integrations (e.g., NCBI BLAST asynchronous jobs).
  • Ontology and annotation queries (e.g., QuickGO).
  • Protein–protein interaction queries via PSICQUIC-compatible services.

Dependencies

  • python >= 3.9
  • bioservices (install via pip/uv; version depends on your environment)

Optional (commonly used alongside returned formats):

  • pandas >= 1.5 (TSV/tabular outputs)
  • beautifulsoup4 >= 4.11 (XML parsing)
  • lxml >= 4.9 (faster XML parsing)
  • networkx >= 2.8 (network analysis of interactions)
  • biopython >= 1.81 (sequence handling for FASTA outputs)

Example Usage

A single runnable script that demonstrates a cross-service workflow:

  1. UniProt search + FASTA retrieval
  2. UniProt → KEGG ID mapping
  3. KEGG pathway lookup and KGML relation extraction
  4. QuickGO annotation query
  5. PSICQUIC interaction query
  6. KEGG compound lookup + UniChem mapping to ChEMBL
"""
Run:
  uv pip install bioservices pandas
  python bioservices_example.py

Notes:
- Some services may rate-limit or be temporarily unavailable.
- NCBI BLAST requires an email; this example does not run BLAST to stay lightweight.
"""

from bioservices import UniProt, KEGG, QuickGO, PSICQUIC, UniChem


def main():
    # --- UniProt: search + retrieve ---
    u = UniProt(verbose=False)

    # Search by entry name (example: ZAP70 human)
    tab = u.search("ZAP70_HUMAN", frmt="tab", columns="id,entry name,genes,organism")
    print("UniProt search (tab):")
    print(tab.splitlines()[0:3], "\n")  # show header + first rows

    uniprot_ac = "P43403"  # ZAP70_HUMAN accession
    fasta = u.retrieve(uniprot_ac, "fasta")
    print("UniProt FASTA header:")
    print(fasta.splitlines()[0], "\n")

    # --- UniProt: identifier mapping (UniProt -> KEGG) ---
    mapping = u.mapping(fr="UniProtKB_AC-ID", to="KEGG", query=uniprot_ac)
    print("UniProt -> KEGG mapping:")
    print(mapping, "\n")

    # --- KEGG: pathway discovery + parsing ---
    k = KEGG(verbose=False)
    k.organism = "hsa"

    # Example gene: ZAP70 is KEGG gene hsa:7535
    pathways = k.get_pathway_by_gene("7535", "hsa")
    print("KEGG pathways containing hsa:7535:")
    print(pathways, "\n")

    pathway_id = "hsa04660"  # T cell receptor signaling pathway (example)
    kgml_relations = k.parse_kgml_pathway(pathway_id).get("relations", [])
    print(f"KEGG KGML relations count for {pathway_id}: {len(kgml_relations)}\n")

    # Export to SIF (useful for network tools)
    sif = k.pathway2sif(pathway_id)
    print(f"KEGG SIF preview for {pathway_id}:")
    print("\n".join(sif.splitlines()[:5]), "\n")

    # --- QuickGO: GO annotations for a UniProt protein ---
    g = QuickGO(verbose=False)
    ann = g.Annotation(protein=uniprot_ac, format="tsv")
    print("QuickGO annotation TSV header:")
    print(ann.splitlines()[0], "\n")

    # --- PSICQUIC: interaction query (database name may vary by availability) ---
    p = PSICQUIC(verbose=False)
    # Example query: ZAP70 interactions in human
    # Choose a database that is active in your environment; "intact" is commonly available.
    interactions = p.query("intact", "ZAP70 AND species:9606")
    print("PSICQUIC query result preview:")
    print("\n".join(interactions.splitlines()[:3]), "\n")

    # --- Compound workflow: KEGG compound -> UniChem -> ChEMBL ---
    # Example: Geldanamycin
    cpd_hits = k.find("compound", "Geldanamycin")
    print("KEGG compound find('Geldanamycin'):")
    print(cpd_hits, "\n")

    # If you already know the KEGG compound ID:
    kegg_compound_id = "C11222"
    uc = UniChem(verbose=False)
    chembl_id = uc.get_compound_id_from_kegg(kegg_compound_id)
    print(f"UniChem KEGG {kegg_compound_id} -> ChEMBL:")
    print(chembl_id, "\n")


if __name__ == "__main__":
    main()

Implementation Details

  • Service objects: Each remote resource is exposed as a Python class (e.g., UniProt, KEGG, QuickGO, PSICQUIC, NCBIblast). You instantiate a client and call methods that wrap the underlying endpoints.
  • Protocols: BioServices abstracts REST and SOAP/WSDL services behind similar method calls; returned payloads may be text (TSV), XML, JSON-like dicts, or FASTA.
  • Common parameters
    • verbose: toggles HTTP/request logging (verbose=False is recommended for scripts).
    • TIMEOUT: per-service timeout control (useful for slow networks or large responses).
    • Service-specific parameters (examples):
      • UniProt: search(query, frmt=..., columns=...), retrieve(accession, format), mapping(fr=..., to=..., query=...)
      • KEGG: find(db, query), get(entry_id), parse(raw), parse_kgml_pathway(pathway_id), pathway2sif(pathway_id)
      • NCBI BLAST: asynchronous job model (run(...) → getStatus(jobid) → getResult(jobid, ...))
  • Data handling guidance
    • TSV/tabular outputs: load into pandas.read_csv(io.StringIO(text), sep="\t")
    • XML outputs: parse with BeautifulSoup or lxml
    • Network exports (SIF): import into NetworkX/Cytoscape-compatible tooling
  • Operational considerations
    • Many endpoints are rate-limited; implement retries/backoff for production pipelines.
    • Some services require contact information (e.g., NCBI BLAST email) and may enforce usage policies.
    • Availability varies by provider; design workflows to degrade gracefully (try/except, fallbacks).

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Transform lengthy academic papers into concise, structured 250-word abstracts.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

Precision editing tool that reduces abstract word count through intelligent compression techniques, maintaining scientific rigor while meeting strict journal and conference requirements.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

Refines long medical academic texts into SCI-style unstructured Chinese and English abstracts; use when you need to condense drafts/reports/summaries into bilingual abstracts and generate Summary_Report.md.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

Generates submission-ready Elsevier/SCI Highlights from manuscript text or extracted PDF/DOCX/TXT content. Use when a user needs 3-5 concise, evidence-grounded highlight bullets for a research paper, review, meta-analysis, case report, or bioinformatics manuscript.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

Generates complete FAERS pharmacovigilance study designs for multi-drug or class-level safety comparison inside one predefined SOC or AE family using active comparators, disproportionality analysis, subgroup characterization, and reviewer-facing evidence control.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

Analyze data with `adme-property-predictor` using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

The English summary is being prepared. Showing the original description.

aipoch/medical-research-skills2KUpdated Sep 17, 2026

See all skills by aipoch

Report a problem with this skill