Install
$ agentstack add skill-cheatthegod-biohermes-query-geo ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
NCBI GEO Database Query
Query Gene Expression Omnibus for public expression datasets.
When to Use
- User wants to find RNA-seq or microarray datasets
- User asks about gene expression studies for a disease/tissue
- User provides a GEO accession (GSE/GDS) to look up
- User wants to download expression data
How to Execute
from Bio import Entrez
import json
Entrez.email = "bioclaw@example.com"
# 1. Search GEO datasets
def search_geo(query, max_results=10, db="gds"):
handle = Entrez.esearch(db=db, term=query, retmax=max_results, sort="relevance")
record = Entrez.read(handle)
handle.close()
return record
# 2. Get dataset summaries
def geo_summary(id_list, db="gds"):
ids = ",".join(str(i) for i in id_list)
handle = Entrez.esummary(db=db, id=ids, retmode="json")
result = json.loads(handle.read())
handle.close()
return result
# 3. Search for Series (GSE)
def search_gse(keyword, organism="Homo sapiens", max_results=10):
query = f'"{keyword}" AND "{organism}"[Organism] AND gse[ETYP]'
return search_geo(query, max_results)
# Example: Find breast cancer RNA-seq datasets
search = search_gse("breast cancer RNA-seq", max_results=5)
print(f"Found {search['Count']} datasets")
if search['IdList']:
summaries = geo_summary(search['IdList'])
for uid in search['IdList']:
info = summaries['result'].get(str(uid), {})
title = info.get('title', 'N/A')
gse = info.get('accession', 'N/A')
gpl = info.get('gpl', 'N/A')
n_samples = info.get('n_samples', 'N/A')
summary = info.get('summary', 'N/A')[:200]
print(f"\n{gse}: {title}")
print(f" Platform: {gpl}, Samples: {n_samples}")
print(f" Summary: {summary}...")
print(f" URL: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc={gse}")
Search Syntax
- By keyword:
"CRISPR" AND gse[ETYP] - By organism:
"Homo sapiens"[Organism] - By platform:
"Illumina"[Platform] - By date:
"2024/01:2026/12"[PDAT] - Combine:
"breast cancer" AND "RNA-seq" AND "Homo sapiens"[Organism] AND gse[ETYP]
Follow-up Suggestions
- "Want me to download the expression matrix for this dataset?"
- "Should I do differential expression analysis?"
- "Want me to check what genes are differentially expressed?"
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: cheatthegod
- Source: cheatthegod/BioHermes
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.