<< All versions
Skill v1.0.1
currentAutomated scan100/100internscience/scp/gene-expression-atlas
1 files
──Details
PublishedJune 12, 2026 at 11:32 PM
Content Hashsha256:d1af848d08fa14b6...
Git SHAcea539856403
Bump Typepatch
──Files
Files (1 file, 4.4 KB)
SKILL.md4.4 KBactive
SKILL.md · 116 lines · 4.4 KB
version: "1.0.1" name: gene_expression_atlas description: "Gene Expression Atlas - Build gene expression atlas: TCGA cancer expression, NCBI gene info, Ensembl gene details, and literature search. Use this skill for transcriptomics tasks involving get gene expression across cancers get gene metadata by gene name get lookup symbol search literature. Combines 4 tools from 4 SCP server(s)."
Gene Expression Atlas
Discipline: Transcriptomics | Tools Used: 4 | Servers: 4
Description
Build gene expression atlas: TCGA cancer expression, NCBI gene info, Ensembl gene details, and literature search.
Tools Used
- `get_gene_expression_across_cancers` from
tcga-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/11/Origene-TCGA - `get_gene_metadata_by_gene_name` from
ncbi-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI - `get_lookup_symbol` from
ensembl-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl - `search_literature` from
server-1(sse) -https://scp.intern-ai.org.cn/api/v1/mcp/1/VenusFactory
Workflow
- Get TCGA expression profile
- Get NCBI gene metadata
- Get Ensembl gene info
- Search recent literature
Test Case
Input
json
{"gene": "EGFR","species": "human"}
Expected Steps
- Get TCGA expression profile
- Get NCBI gene metadata
- Get Ensembl gene info
- Search recent literature
Usage Example
Note: Replace<YOUR_SCP_HUB_API_KEY>with your own SCP Hub API Key. You can obtain one from the SCP Platform.
python
import asyncioimport jsonfrom mcp import ClientSessionfrom mcp.client.streamable_http import streamablehttp_clientfrom mcp.client.sse import sse_clientSERVERS = {"tcga-server": "https://scp.intern-ai.org.cn/api/v1/mcp/11/Origene-TCGA","ncbi-server": "https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI","ensembl-server": "https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl","server-1": "https://scp.intern-ai.org.cn/api/v1/mcp/1/VenusFactory"}async def connect(url, transport_type):transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "<YOUR_SCP_HUB_API_KEY>"})read, write, _ = await transport.__aenter__()ctx = ClientSession(read, write)session = await ctx.__aenter__()await session.initialize()return session, ctx, transportdef parse(result):try:if hasattr(result, 'content') and result.content:c = result.content[0]if hasattr(c, 'text'):try: return json.loads(c.text)except: return c.textreturn str(result)except: return str(result)async def main():# Connect to required serverssessions = {}sessions["tcga-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/11/Origene-TCGA", "streamable-http")sessions["ncbi-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI", "streamable-http")sessions["ensembl-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl", "streamable-http")sessions["server-1"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/1/VenusFactory", "sse")# Execute workflow steps# Step 1: Get TCGA expression profileresult_1 = await sessions["tcga-server"].call_tool("get_gene_expression_across_cancers", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Get NCBI gene metadataresult_2 = await sessions["ncbi-server"].call_tool("get_gene_metadata_by_gene_name", arguments={})data_2 = parse(result_2)print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")# Step 3: Get Ensembl gene inforesult_3 = await sessions["ensembl-server"].call_tool("get_lookup_symbol", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Search recent literatureresult_4 = await sessions["server-1"].call_tool("search_literature", arguments={})data_4 = parse(result_4)print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}")# Cleanupprint("Workflow complete!")if __name__ == "__main__":asyncio.run(main())