跳到正文

医学公开数据库查询与登记

使用有明确接口的公开数据库查询方法保存请求、筛选、分页与来源,可用于医学文献、临床试验及药物资料检索。

开源精选医疗业务86 个文件50,135 Stars浏览次数 0K-Dense-AI/scientific-agent-skills MIT版本 a1043ef
开始使用

下载前阅读 SKILL.md 中的使用条件,并确认所用工具支持对应能力。

输入资料
指定数据库和查询问题 实际接口、筛选条件及使用范围 阅读本节完整说明
交付内容
可复查的查询资料 请求、分页与来源记录 阅读本节完整说明
  1. 获取完整包,保留配套文件的目录结构。
  2. 按照原文准备所需工具、依赖与输入资料。
  3. 阅读对应使用步骤与输入输出说明,在自己的环境中验证结果。

使用提示摘自原文,配套文件保留来源版本;实际运行条件以各包说明为准。

正文

获取原文件

references/ena.md

Overview

The ENA is Europe's primary nucleotide sequence repository, part of the International Nucleotide Sequence Database Collaboration (INSDC) alongside NCBI GenBank and DDBJ. It stores raw sequencing reads, assembled sequences, genome assemblies, and associated metadata. ENA provides five complementary APIs for different access patterns.

Base URL

https://www.ebi.ac.uk/ena/portal/api

No authentication required. All endpoints are public.

Key Endpoints

Search records

GET /search?result={result_type}&query={query}&fields={fields}&limit={N}&format={format}
Parameter Type Description
result string Required. Data type to search. See Result Types below.
query string Search query using ENA query syntax.
fields string Comma-separated list of fields to return. Use /returnFields to see available fields per result type.
limit int Bound results explicitly; 0 or omission can request the entire result set.
format string json, tsv (default).

Query syntax:

tax_id=9606 AND description="*hemoglobin*"
tax_id=9606 AND library_strategy="RNA-Seq"
accession="PRJEB40665"
scientific_name="Escherichia coli" AND dataclass="STD"
country="United Kingdom" AND first_public>2024-01-01

Operators: =, !=, >, <, >=, <=. Use AND, OR, NOT. Wildcards: *. Enclose values with spaces in double quotes.

Example -- search human RNA-Seq runs:

https://www.ebi.ac.uk/ena/portal/api/search?result=read_run&query=tax_id%3D9606%20AND%20library_strategy%3D%22RNA-Seq%22&fields=run_accession,experiment_accession,sample_accession,study_accession,instrument_platform,library_strategy,read_count,base_count&limit=5&format=json

Example -- search nucleotide sequences by organism:

https://www.ebi.ac.uk/ena/portal/api/search?result=sequence&query=tax_id%3D9606%20AND%20description%3D%22*hemoglobin*%22&fields=accession,description,tax_id,scientific_name,base_count&limit=5&format=json

Response:

[
  {
    "accession": "AA126503",
    "description": "zk94h05.s1 Soares_pregnant_uterus_NbHPU Homo sapiens cDNA clone ...",
    "tax_id": "9606"
  }
]

Count records

GET /count?result={result_type}&query={query}

Returns a plain integer count.

Example:

https://www.ebi.ac.uk/ena/portal/api/count?result=read_run&query=tax_id%3D9606%20AND%20library_strategy%3D%22RNA-Seq%22

List available result types

GET /results?format=json

List searchable fields for a result type

GET /searchFields?result={result_type}

List returnable fields for a result type

GET /returnFields?result={result_type}

Result Types

Result Type Description
sequence Nucleotide sequences
coding Coding sequences (CDS)
noncoding Non-coding sequences
read_run Raw sequencing reads (runs)
read_experiment Sequencing experiments
read_study Studies for raw reads
analysis Analyses
analysis_study Studies for analyses
assembly Genome assemblies
sample Samples
study Studies
taxon Taxonomic classification
wgs_set Genome assembly contig sets (WGS)
tsa_set Transcriptome assembly contig sets (TSA)
tls_set Targeted locus study contig sets (TLS)

2. ENA Browser API (Record Retrieval)

Base URL

https://www.ebi.ac.uk/ena/browser/api

Use this for direct retrieval of records by accession number.

Key Endpoints

Retrieve record in XML format

GET /xml/{accession}

Example:

https://www.ebi.ac.uk/ena/browser/api/xml/PRJEB40665
https://www.ebi.ac.uk/ena/browser/api/xml/SRR12345678
https://www.ebi.ac.uk/ena/browser/api/xml/ERS1234567

Retrieve record in EMBL flat file format

GET /embl/{accession}

Example:

https://www.ebi.ac.uk/ena/browser/api/embl/AY585947

Supports ?lineLimit=N to truncate long records.

Retrieve sequence in FASTA format

GET /fasta/{accession}

Example:

https://www.ebi.ac.uk/ena/browser/api/fasta/AY585947

Response Formats

Endpoint Format Use case
/xml/{accession} XML Full structured metadata for studies, samples, experiments, runs
/embl/{accession} EMBL flat file Annotated sequences with features
/fasta/{accession} FASTA Raw nucleotide/protein sequences

Accession Types

Prefix Entity Example
PRJEB / PRJNA / PRJDB Study/Project PRJEB40665
ERX / SRX / DRX Experiment ERX1234567
ERS / SRS / DRS Sample ERS1234567
ERR / SRR / DRR Run ERR1234567
GCA Genome assembly GCA_000001405.29
Standard INSDC Sequence AY585947, M10051

3. ENA Taxonomy REST API

Base URL

https://www.ebi.ac.uk/ena/taxonomy/rest

Key Endpoints

Lookup by taxonomy ID

GET /tax-id/{taxId}

Example:

https://www.ebi.ac.uk/ena/taxonomy/rest/tax-id/9606

Response:

{
  "taxId": 9606,
  "scientificName": "Homo sapiens",
  "commonName": "human",
  "formalName": true,
  "rank": "species",
  "division": "HUM",
  "lineage": "Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; ...; Homo; ",
  "geneticCode": "1",
  "mitochondrialGeneticCode": "2",
  "submittable": true,
  "binomial": true,
  "metagenome": false,
  "otherNames": [
    {"nameClass": "authority", "name": "Linnaeus, 1758"},
    {"nameClass": "genbank common name", "name": "human"}
  ]
}

Search by scientific name

GET /scientific-name/{name}

Example:

https://www.ebi.ac.uk/ena/taxonomy/rest/scientific-name/Homo%20sapiens

Returns an array of matching taxonomy records.

Search by common name

GET /any-name/{name}

Example:

https://www.ebi.ac.uk/ena/taxonomy/rest/any-name/human

Suggest names (autocomplete)

GET /suggest-for-submission/{partialName}

Example:

https://www.ebi.ac.uk/ena/taxonomy/rest/suggest-for-submission/Homo%20sap

4. ENA Cross Reference Service

Base URL

https://www.ebi.ac.uk/ena/xref/rest

Retrieves links between ENA records and external databases (UniProt, PDB, PubMed, etc.).

Key Endpoints

Search cross-references by accession

GET /json/search?accession={accession}
Parameter Type Description
accession string ENA accession to look up cross-references for.
source string Filter by source database (e.g., UniProtKB).
target string Filter by target type.
limit int Max results.
offset int Pagination offset.

Example:

https://www.ebi.ac.uk/ena/xref/rest/json/search?accession=A00145

Response:

[
  {
    "Source": "EuropePMC",
    "Source Primary Accession": "PMC12345",
    "Source Secondary Accession": "",
    "Source URL": "https://europepmc.org/...",
    "Source Secondary URL": "",
    "Target": "sequence",
    "Target Primary Accession": "A00145",
    "Target Secondary Accession": "",
    "Target URL": "https://www.ebi.ac.uk/ena/...",
    "Has Inferred": "N",
    "Inferred From": ""
  }
]

5. CRAM Reference Registry

Base URL

https://www.ebi.ac.uk/ena/cram

Retrieves reference sequences used in CRAM file compression.

Key Endpoints

Lookup by MD5 checksum

GET /md5/{md5}

Example:

https://www.ebi.ac.uk/ena/cram/md5/b1eba5b6e4440e22e1e02f7e0febd2da

Lookup by SHA1 checksum

GET /sha1/{sha1}

Inspect the CRAM registry response: checksum retrieval can return raw sequence rather than FASTA. Do not pass an unverified body to a FASTA parser. Verify the checksum of the normalized sequence against the requested registry identifier.


Common Search Patterns

# All RNA-Seq runs for a species
result=read_run&query=tax_id=9606 AND library_strategy="RNA-Seq"

# WGS assemblies for an organism
result=assembly&query=tax_id=562 AND assembly_type="primary metagenome"

# Sequences by study accession
result=sequence&query=study_accession="PRJEB40665"

# Samples from a country with collection date
result=sample&query=country="Germany" AND collection_date>=2024-01-01

# Coding sequences for a gene keyword
result=coding&query=description="*BRCA1*" AND tax_id=9606

# Count available datasets
/count?result=read_run&query=tax_id=9606

# Get metadata fields available for a result type
/returnFields?result=read_run
/searchFields?result=read_run

Rate Limits

  • No authentication required
  • No formal published rate limit, but be courteous: avoid more than ~5 concurrent requests
  • Portal /search has no documented offset. A limit can truncate results; use /count to check size and retrieve a complete bounded query or partition by supported indexed fields. Do not repeatedly request an ignored offset.
  • For bulk downloads of sequence data (FASTQ, etc.), use ENA's FTP/Aspera services rather than the REST API

Tips

  • ENA vs SRA: ENA and NCBI SRA mirror each other's data (both are INSDC members). ENA accessions (ERR/ERX/ERS/PRJEB) and NCBI accessions (SRR/SRX/SRS/PRJNA) are cross-referenced. Use whichever API has the query features you need.
  • Portal API for search, Browser API for retrieval: Use the Portal API when you need to search across many records with filters. Use the Browser API when you have a specific accession and want the full record.
  • JSON vs XML: The Portal API returns JSON or TSV. The Browser API primarily returns XML, EMBL, or FASTA.
  • Field discovery: Always check /returnFields?result={type} and /searchFields?result={type} to see what's available for each result type -- fields differ between result types.
  • Cross-references: Use the xref service to find links from ENA records to UniProt, PDB, PubMed, and other databases.

CONTACT HAONAN

联系haonan

医疗 AI · 产品与独立开发

刘浩南

关注医疗 AI 从 demo 到真实落地,聚焦产品化、商业化与院内工作流效率提升。

12年医疗产研经验,大湾区头部医疗AI公司前产品总监,独立开发者

医疗 AI 产品化医疗 AI 商业化院内工作流效率
刘浩南的微信联系二维码
微信扫一扫,联系 haonan