wheatomics-query
WheatOmics 平台(wheatomics.sdau.edu.cn)数据查询技能。当用户需要查询小麦/麦族基因信息、表达谱、共表达、蛋白互作、同源与共线性、序列获取、BLAST、GO/KEGG 富集、变异数据、文献检索或引物设计时使用。
SKILL.mdskills/wheatomics-query/SKILL.md
GitHubWheatOmics 数据查询
WheatOmics(https://wheatomics.sdau.edu.cn)是小麦多组学数据平台,提供 REST API(前缀 /api,交互式文档 https://wheatomics.sdau.edu.cn/api/docs)。本技能提供:
- 本文件:全部 17 个模块、64 个端点的参数/返回/示例说明;
- 零依赖 CLI:
scripts/wheatomics.py(仅 Python 标准库,3.8+),覆盖各模块主要端点。
统一约定:
- 响应信封:多数端点返回
{"success": true, "data": ...};CLI 默认把data部分 pretty-print 到 stdout,success=false时打印错误并以非零码退出。 - 平台地址覆盖:CLI
--base参数或环境变量WHEATOMICS_BASE。 - 超时:CLI 默认 30 秒,
--timeout覆盖;网络错误给出中文报错。 - 退出码:0 成功;1 接口返回错误(success=false / HTTP 错误);2 网络或用法错误;4 异步作业等待超时。
使用铁律(必须遵守,优先级最高)
铁律 1:实时核实,禁止臆测
凡回答涉及具体基因 ID(如 TraesCS...)、通路 ID(GO:... / KEGG map...)、引用文献(PMID / DOI)时,必须实际调用本技能提供的接口实时核实,严禁凭模型记忆、训练数据印象或"大概是这样"作答。
- 没有真正调用接口并拿到返回结果之前,任何基因 ID、通路 ID、文献信息都不得当作既成事实写进结论、报告或对用户的回复;
- 接口返回为空(如
records: []、genes_not_found非空)或报错时,如实告知"查询无结果 / 接口异常",绝不允许编造补全基因名、通路名、PMID 或 DOI; - 本文档中的示例 ID(如
TraesCS5A02G391700)来自官方 API 文档,但用于正式回答前仍须实时调用验证其当前有效性。
铁律 2:结果自动落地保存
凡产生可供用户后续引用或复现的查询结果(基因详情、表达谱、共表达、BLAST、富集分析、变异、文献条目等),必须默认使用 -o 参数写入本地文件,不得只停留在对话上下文中:
python scripts/wheatomics.py gene TraesCS5A02G391700 -o wheatomics_results/gene_TraesCS5A02G391700.json
- 保存内容为接口返回的完整 JSON 原始结果(写盘后 CLI 会打印一行
已保存: <绝对路径>);如需 Markdown 报告,可在 JSON 落地后另行整理生成; - 输出目录约定:对话中的临时查询 → 当前工作目录下
wheatomics_results/;在 TRACE 流程运行目录(RUN 目录)内执行 → 该 RUN 目录下的results/; - 写盘后把文件路径一并告知用户,便于后续引用与复现。
CLI 速览
python scripts/wheatomics.py <子命令> [参数] [-o 输出文件] [--timeout 秒] [--base 平台地址]
- GET 类子命令:必填项多为位置参数或命名参数,另支持
--param KEY=VALUE附加任意 query 参数(可重复); - POST 类子命令:用命名参数(如
--genes、--padj)或--json '<JSON>' / --json @文件构造 JSON body; - 异步作业(BLAST / PrimerServer2):
submit→status→result三个动作;submit --wait自动轮询直到完成(上限--wait-timeout秒,默认 600); - 完整子命令列表见文末「CLI 子命令速查表」,或运行
python scripts/wheatomics.py --help。
1. Known Genes 克隆基因检索(4 端点)
已知功能克隆基因数据库的搜索与详情。
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/genes/known/search |
按关键词模糊搜索克隆基因 |
| GET | /api/genes/known/all |
获取全部已知功能基因列表(约 850 条) |
| GET | /api/genes/known/by-chromosome/{chromosome} |
列出指定染色体上的克隆基因 |
| GET | /api/genes/known/{gene_id} |
单个克隆基因完整信息 |
关键参数:
searchid(query,必填):搜索关键词,在 gene_id / gene_name / chrom_pos / gene_phenotype / gene_species / paper_doi 多字段中部分匹配;chromosome(path,必填):支持5A、chr5A、Chr5A等常见格式;gene_id(path,必填):如TraesCS5A02G391700。
返回结构:
- search:
{query, total, records: [{gene_id, gene_name, chrom_pos, phenotype, species, dois: [...]}]} - 详情:
{gene_id, gene_name, chrom_pos, phenotype, species, paper_title: [...], references: [{doi, title}], key_result: [...], author, submission_date}
示例:
python scripts/wheatomics.py known-search VRN1
python scripts/wheatomics.py known-gene TraesCS5A02G391700 -o wheatomics_results/known_VRN-A1.json
curl "https://wheatomics.sdau.edu.cn/api/genes/known/search?searchid=VRN1"
2. GeneHub 基因详情(1 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/genes/detail/{gene_id} |
基因标准化详细信息 |
关键参数:gene_id(path,必填),支持 IWGSC v1/v2/v3 三种版本格式,如 TraesCS5A02G391700、TraesCS5A02G391700.1、TraesCS5A03G1158600。
返回结构:{query_gene, gene_ids: [v1/v2/v3 对应ID], description, genome, chromosome, start, end, strand, protein_length, molecular_weight, isoelectric_point, functions, jbrowse_links, external_links}(含 JBrowse 基因组浏览器链接与 Ensembl 外链)。
示例:
python scripts/wheatomics.py gene TraesCS5A02G391700 -o wheatomics_results/gene_detail.json
3. PfamSearch 结构域检索(1 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/genes/functions/pfam |
按 PFAM 结构域搜索基因(gene family) |
关键参数:
ID(query,必填):PFAM 结构域 ID,以 PF 开头,如PF00319;table(query,可选,默认Genefunc_table):查询表,可选Genefunc_IWGSC03G_table。
返回结构:{table, domain, count, records: [{chromosome, start_mb, end_mb, gene_primary, ...}]}。
示例:
python scripts/wheatomics.py pfam PF00319 -o wheatomics_results/pfam_PF00319.json
curl "https://wheatomics.sdau.edu.cn/api/genes/functions/pfam?ID=PF00319"
注意:
- 对应网页工具 https://wheatomics.sdau.edu.cn/tools/proteinfamily.html ;
- 实测提醒(2026-08):文档默认表
Genefunc_table在当前线上服务已不存在(报Unknown gene function table)。使用前先用genefunc-tables/genefunc-registry查看当前可用表名(中国春如Genefunc_CS_IWGSCv1.0_table、Genefunc_CS_IWGSC03G_table),再用--table显式指定。
4. IntervalTool 区间工具(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/genes/functions/interval |
按染色体区间搜索基因 |
| GET | /api/genes/functions/tables |
Genefuncdb 全部表名、行数与字段列表 |
| GET | /api/genes/functions/examples |
各基因组的示例 Region/Gene ID/Pfam ID |
| GET | /api/genes/functions/registry |
已注册基因功能表的元数据 |
关键参数(interval):
ID(query,必填):染色体区间,格式chr5A:587000000..587200000;table(query,可选,默认Genefunc_table)。
返回结构(interval):{table, region, count, records: [{chromosome, start_mb, end_mb, gene_primary, ...}]};registry 返回 {count, records: [{table_name, display_name, Subgenome, Polyploidy, chromosome_level, Doi, title, Abstract, example_chr, example_id, ...}]}。
示例:
python scripts/wheatomics.py interval "chr5A:587000000..587200000" --table Genefunc_CS_IWGSCv1.0_table
python scripts/wheatomics.py genefunc-registry
注意:
- 对应网页工具 https://wheatomics.sdau.edu.cn/tools/intervalTools.html ;
- 服务端表名大小写敏感(Linux MySQL
lower_case_table_names=0),查询表名须与 registry 中的table_name完全一致; - 实测提醒(2026-08):文档默认表
Genefunc_table在当前线上服务已不存在(报Unknown gene function table)。使用前先用genefunc-tables/genefunc-registry查看当前可用表名(中国春如Genefunc_CS_IWGSCv1.0_table、Genefunc_CS_IWGSC03G_table),再用--table显式指定。
5. Expression 表达谱(2 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/expression/projects |
获取可用表达谱项目列表 |
| GET | /api/expression/query |
查询基因在指定项目中的表达量 |
关键参数(query):
gene_ids(query,必填):逗号分隔的基因 ID 列表;project(query,可选,默认PRJEB5314_paired_tbl):表达项目表名,如PRJEB25639_tbl、ABA_JA_6BA_DMSO3h_mean_tbl。
返回结构:{project, genes_found, genes_not_found, genes_converted, results: [{gene_id, project, points: [{label, value, std, error_bar}]}]}(points 为各实验条件下的表达量点数据,含误差棒)。
⚠️ 基因 ID 版本说明(重要):
- 表达量数据基于中国春 IWGSC v2.1 注释(基因 ID 含
02G格式); - 输入 v1(
01G)或 v3(03G)格式的 ID 时,API 自动转换为 v2 后再查询,转换结果记录在响应的genes_converted字段; - 转换失败则按原始 ID 查询,大概率返回"基因未找到"(出现在
genes_not_found)。
示例:
python scripts/wheatomics.py expr-projects -o wheatomics_results/expr_projects.json
python scripts/wheatomics.py expr-query --genes TraesCS5A02G391700 --project PRJEB5314_paired_tbl
curl "https://wheatomics.sdau.edu.cn/api/expression/query?gene_ids=TraesCS5A02G391700&project=PRJEB5314_paired_tbl"
6. Coexpression 共表达(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/coexpression/databases |
可用共表达数据库列表 |
| GET | /api/coexpression/query |
查询基因的共表达关系对 |
| GET | /api/coexpression/projects |
bioproject 元数据列表 |
| GET | /api/coexpression/projects/{accession} |
单个 bioproject 元数据(不存在则 404) |
关键参数(query):
gene_ids(query,必填):逗号分隔的基因 ID 列表;database(query,可选,默认CO_PRJEB25639):共表达数据库 ID,来自 databases 端点(如CO_result2、CO_PRJEB25639);filter_value(query,可选,默认300):两种筛选模式——小数(如0.8)按 PCC 筛选,返回|PCC| >= filter_value;整数(如5)按 MR(Mutual Rank)筛选,返回MR <= filter_value。
projects 参数:source(可选,NCBI/ENA/CNGB 过滤)、q(可选,标题/描述/物种子串模糊搜索)。
示例:
python scripts/wheatomics.py coexpr-databases
python scripts/wheatomics.py coexpr-query --genes TraesCS5A02G391700 --database CO_PRJEB25639 --filter 0.9 # PCC 模式
python scripts/wheatomics.py coexpr-query --genes TraesCS5A02G391700 --filter 5 # MR 模式
python scripts/wheatomics.py coexpr-project PRJNA976214
7. PPI 蛋白互作(1 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/ppi/query |
查询蛋白质互作关系(wheatPPI) |
关键参数:
gene_ids(query,必填):逗号分隔的转录本 ID(基因 ID 加.1后缀),如TraesCS6D02G084800.1;table(query,可选,默认PPI_result);min_score(query,可选,默认0.5):CF-MS 互作得分阈值,0.5中等置信度、0.2低置信度、0不筛选返回全部。
返回结构:互作对记录,含互作双方基因 ID、eggNOG ID、功能注释和互作得分 Score。
⚠️ 注意:本模块基于中国春 IWGSC v2.1 注释;输入不带 .1 后缀的基因 ID 将匹配不到结果。
示例:
python scripts/wheatomics.py ppi --genes TraesCS6D02G084800.1 --min-score 0.5
curl "https://wheatomics.sdau.edu.cn/api/ppi/query?gene_ids=TraesCS6D02G084800.1&table=PPI_result&min_score=0.5"
8. 比较基因组:homologs / synteny / id-conversion / blastp(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/homologs/wheat-rice-arabidopsis |
小麦基因在水稻和拟南芥中的同源基因 |
| GET | /api/synteny/search |
小麦与其他麦族物种的共线性信息 |
| GET | /api/id-conversion |
旧版本基因 ID 转换为 IWGSC v1.1(02G) |
| GET | /api/blastp |
小麦族蛋白预计算 blastp 结果 |
关键参数:
- homologs:
gene_id(必填,小麦或其他物种基因 ID);max_targets(可选,默认 3,范围 1-100,每个物种返回上限)。返回{query_gene, count, hits: [{target_gene, description, Qcovs, Identity, E-value, Score, ...}]}; - synteny:
ID(必填,两种模式:基因组区间chr5A:100000-200000或单个基因 ID 精确查找);table(可选,默认CSsymaptbl)。结果为每个基因在 Chinese Spring、Durum wheat、Wild emmer、Triticum urartu、Aegilops tauschii 中的共线性对应关系; - id-conversion:
ID(必填,转录本 ID 带.1后缀,多基因用 URL 编码换行%0D%0A分隔,CLI 用--ids逗号分隔自动处理);gene_version(必填,三选一):MIPS_result(MIPS v2.2,如Traes_1AS_E6058767A.1)/TGACv1_result(如TRIAE_CS42_6BL_TGACv1_501926_AA1621570.1)/IWGSCv1_result(IWGSC v1.0,如TraesCS6B01G342500.1)。返回每个基因的映射结果(reference_gene为 02G 格式、code、length),未找到的列在not_found; - blastp:
gene(必填);limit(可选,默认 5000);offset(可选,默认 0)。在all_protein_blastp表中同时匹配 query_id 和 subject_id,自动处理带.1、transcript:前缀、.cds后缀等多种 ID 格式,结果按 bit_score 降序、evalue 升序排列。可用于同源基因搜索或不同基因组版本/材料间的基因 ID 转换。
示例:
python scripts/wheatomics.py homologs TraesCS5A02G391700 --max-targets 3
python scripts/wheatomics.py synteny TraesCS5A02G391700
python scripts/wheatomics.py id-conversion --ids TraesCS6B01G342500.1 --version IWGSCv1_result
python scripts/wheatomics.py blastp TraesCS5A02G391700 --limit 100
9. OrthoFinder(3 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/orthofinder/search |
按蛋白 ID / orthogroup ID 搜索,物种目录,OG 成员 |
| GET | /api/orthofinder/download |
下载基因树(Newick)或多序列比对(FASTA) |
| GET | /api/orthofinder/neighborhood |
基因上下游邻居及同源簇信息 |
关键参数:
- search:
action(可选,默认search):search/species_catalog/members;q(action=search 时的蛋白/基因/OG ID);og(action=members 必填的 Orthogroup ID);sub(可选,亚基因组过滤 A/B/D,配合 members);species(可选,物种过滤); - download:
og(必填,如OG0001897);type(可选,默认tree,可选alignment);cluster(可选,1-7,0=完整 OG);type_tree(可选,type1/type2,仅 cluster 下载)。返回文件内容(非 JSON); - neighborhood:
q(必填,基因 ID,如TraesCS1A02G219700.1)。返回查询基因 + 上下游各 5 个邻居(共 11 个基因)在 OrthoFinder 分析所有基因组中的 cluster 归属。
示例:
python scripts/wheatomics.py orthofinder --q TraesCS5A02G391700
python scripts/wheatomics.py orthofinder --action members --og OG0001897 --sub A
python scripts/wheatomics.py orthofinder-download --og OG0001897 --type tree -o wheatomics_results/OG0001897.nwk
python scripts/wheatomics.py orthofinder-neighborhood TraesCS1A02G219700.1
10. SynTeny Viewer(5 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/syntenyview/genomes |
可用基因组列表 |
| GET | /api/syntenyview/gene-search |
基因搜索 |
| GET | /api/syntenyview/status |
服务状态 |
| GET | /api/syntenyview/triticeae |
麦族数据 |
| GET | /api/syntenyview/neighborhood |
基因邻域共线性 |
关键参数:
- gene-search:
q(必填);limit(可选,默认 20); - neighborhood:
q(必填,基因 ID);upstream(可选,默认 5);downstream(可选,默认 5);targets(可选,逗号分隔的目标基因组标签);window(可选,默认 5)。
示例:
python scripts/wheatomics.py syntenyview-genomes
python scripts/wheatomics.py syntenyview-gene-search TraesCS5A02G391700
python scripts/wheatomics.py syntenyview-neighborhood TraesCS5A02G391700 --upstream 5 --downstream 5
11. Sequences 序列获取(3 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/sequence/by-gene |
按基因 ID 取基因(CDS)和蛋白序列(FASTA) |
| GET | /api/sequence/by-interval |
按染色体区间取基因组 FASTA |
| GET | /api/sequence/batch |
批量取多个基因/区间的 FASTA |
关键参数:
- by-gene:
gene_id(必填,如TraesCS5A02G391700;不以.1结尾时自动追加.1查找);gene_db(可选,默认all_gene);protein_db(可选,默认all_protein)。返回{gene_id, gene_sequence: ">...\nATG...", protein_sequence: ">...\nMAG..."}; - by-interval:
region(必填,如chr1A:200-500);database(必填,区间查询推荐聚合库all_genomes;另可选all_gene/all_protein)。⚠️ 染色体命名随基因组而异:Chr1A_Abo:200-500(Abbondanza)、chr1A:200-500(Chinese Spring)、chr1H_Barley3:200-500(大麦 v3)、chr1D_Aegilops_tauschii_TA1675:200-500、chr1A_Wild_emmer:200-500(野生二粒小麦),完整列表见 https://wheatomics.sdau.edu.cn/doc/getsequence_search.txt ;全部库名见blast-databases; - batch:
ID(必填,空格分隔多个基因 ID 或区间,URL 中可用%20或+;CLI 用--ids逗号/空格分隔自动处理);database(必填)。基因 ID 自动补.1,区间格式chr:start-end。返回{database, records: [{sequence_id, fasta}]}。
示例:
python scripts/wheatomics.py seq-gene TraesCS5A02G391700 -o wheatomics_results/seq_VRN-A1.json
python scripts/wheatomics.py seq-interval --region chr1A:200-500 --database all_genomes
python scripts/wheatomics.py seq-batch --ids "TraesCS5A02G391700,TraesCS5A02G391701" --database all_gene
12. BLAST 异步比对(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /api/blast/search |
提交 BLAST 搜索(表单),结果生成下载链接 |
| GET | /api/blast/status/{job_id} |
轮询作业状态(wait=false 提交的 job) |
| GET | /api/blast/databases |
可用数据库列表(按蛋白/核酸分组) |
| GET | /api/blast/status |
检查 BLAST 环境 |
⚠️ 异步作业说明:所有 job 由独立的 blast daemon 执行,不受 API worker 回收/重启影响。表单字段 wait=true(服务端默认)时提交后由服务端轮询到完成直接返回 download_url;wait=false 立即返回 job_id,再轮询 status。CLI 固定以 wait=false 提交并自行轮询(blast submit ... --wait),避免长任务撑爆单次 HTTP 超时。
提交表单字段(application/x-www-form-urlencoded):
database(必填):数据库名,多个用逗号分隔,如Fielder_protein,AK58_protein.fasta;query(必填):FASTA 格式查询序列(CLI 支持--query @文件);program(可选,默认blastp):blastp / blastn / blastx / tblastn / tblastx;evalue(可选,默认 10,范围 0-1000);max_target_seqs(可选,默认 1000,范围 1-50000);word_size、matrix(可选);outfmt(可选,默认tabular,另有traditional/both)。
状态返回:{success, job_id, status: pending|running|done|error|stale, message, download_urls};done 时 download_urls 填充,error/stale 看 message。⚠️ job_id 必须为 uuid4 格式,否则 404。
示例:
python scripts/wheatomics.py blast-databases --program blastp
python scripts/wheatomics.py blast submit --database Fielder_protein --query @seq.fa --wait -o wheatomics_results/blast_job.json
python scripts/wheatomics.py blast status <job_id>
python scripts/wheatomics.py blast result <job_id>
curl -X POST "https://wheatomics.sdau.edu.cn/api/blast/search" -d "program=blastp" -d "database=Fielder_protein" --data-urlencode "query=>test
MSSSTG..."
13. GO/KEGG 富集(4 端点,POST)
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /api/go-kegg/go |
GO 富集分析 |
| POST | /api/go-kegg/kegg |
KEGG 通路富集分析 |
| GET | /api/go-kegg/go-genes |
查询列表中匹配某 GO term 的基因 |
| GET | /api/go-kegg/kegg-genes |
查询列表中匹配某 KEGG 通路的基因 |
请求体(JSON):{"genes": ["TraesCS1A02G045300.1", ...], "padj_threshold": 0.05},genes 必填,padj_threshold 默认 0.05。
统计方法与背景:
- 超几何检验 + Benjamini-Hochberg FDR 多重检验校正;
- GO 背景集:
wheat_function.gene_go中所有有 GO 注释的基因;KEGG 背景集:wheat_function.gene_kegg,映射链 gene_id → KO → pathway; - ⚠️ 输入基因 ID 为 IWGSC RefSeq v1.1 格式(如
TraesCS1A02G045300.1,带.1转录本后缀)。
返回结构:{N, n, gene_count, results: [{id, term, ontology, k, K, ratio, pvalue, padj}]}(N=背景基因数,n=输入有效基因数,K=背景中该 term 基因数,k=输入中命中数)。
go-genes / kegg-genes 参数:go_id / pathway(必填),genes(可选,逗号分隔的查询列表)。
示例:
python scripts/wheatomics.py enrich-go --genes TraesCS1A02G045300.1,TraesCS1A02G104700.1,TraesCS1A02G118400.1 -o wheatomics_results/go_enrich.json
python scripts/wheatomics.py enrich-kegg --json '{"genes": ["TraesCS1A02G045300.1"], "padj_threshold": 0.05}'
python scripts/wheatomics.py go-genes GO:0043425 --genes TraesCS1A02G045300.1
14. VariantHub 变异数据(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/VariantHub/datasets |
VCF 数据集列表(按参考基因组分组) |
| GET | /api/VariantHub/dataset_info |
数据集的 VCF 头(## meta 行)与样本 ID |
| GET | /api/VariantHub/samples |
数据集样本元数据(可按字段过滤) |
| GET | /api/VariantHub/query |
按基因组区间或变异 ID 查询变异 |
关键参数:
- dataset_info / samples / query 均需
dataset(数据集 key,来自 datasets 端点); - samples:任意额外 query 参数视为元数据过滤(精确匹配、不区分大小写),如
&country=Turkey&status=Landrace或&group=LR(CLI 用--param country=Turkey); - query:
region(如chr1A:1000-50000)与variant_id(ID 列精确匹配)二选一必填;samples(可选,逗号分隔样本 ID,缺省全部);limit(默认 200)、offset(默认 0)。
⚠️ 注意:region 查询走 tabix 索引(快);variant_id 查询是全文件扫描,大群体 VCF 上可能很慢;samples 显式指定与元数据过滤两种方式互斥。
示例:
python scripts/wheatomics.py variant-datasets
python scripts/wheatomics.py variant-dataset-info <dataset_key>
python scripts/wheatomics.py variant-samples <dataset_key> --param country=Turkey
python scripts/wheatomics.py variant-query <dataset_key> --region chr1A:1000-50000 --limit 200
15. Triticeae Papers 文献(4 端点)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/papers |
搜索麦族论文元数据 |
| GET | /api/papers/{pubmedid} |
按 PMID 取单篇论文元数据 |
| GET | /api/papers/{pmid}/annotation |
按 PMID 取 LLM 细粒度标注 |
| GET | /api/papers/stats |
数据集聚合统计 |
关键参数(/api/papers,均为可选):
q全文关键词(title/abstract/journal/authors/pubmed_keywords/ai_tags/function_gene_tags);title/abstract/journal/authors/pubmed_keywords/ai_tags/function_gene_tags/gene_name字段级模糊匹配;pmid精确匹配;functional_gene_flag/functional_gene_source/function_gene_flag论文级功能基因标记过滤;pub_date_start/pub_date_end发布年份范围;since_days按入库时间(papers.created_at)过滤最近 N 天(用于"本周新增论文");limit(默认 20)、offset(默认 0);默认排序 paper_created_at DESC(最近入库优先);- NOT 语义:所有文本参数支持
<参数>_exclude形式(如q_exclude、title_exclude),CLI 用--param q_exclude=xxx传递。
annotation 返回:标注层全部字段(is_functional_gene, confidence, gene_name, gene_type, trait_label, function_summary, evidence_type, new_tags, llm_reason, source_method, review_status 等);无论文标注时返回 has_annotation: false。stats 返回年份分布、期刊 top-20、AI 标签 top-30、功能基因比例、审核状态分布。
示例:
python scripts/wheatomics.py papers --q "vernalization" --limit 20 -o wheatomics_results/papers_vrn.json
python scripts/wheatomics.py papers --gene-name VRN1 --pub-date-start 2020
python scripts/wheatomics.py paper 42105133
python scripts/wheatomics.py paper-annotation 42105133
python scripts/wheatomics.py papers-stats
16. PrimerServer2 引物设计(12 端点,异步作业)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/PrimerServer2/config |
公共配置(输入限制、系统标志) |
| GET | /api/PrimerServer2/databases |
可用特异性检查数据库(分组、文件名与别名) |
| GET | /api/PrimerServer2/server-info |
服务器时间与外部工具版本(samtools/blastn/primer3) |
| POST | /api/PrimerServer2/jobs |
提交引物设计+特异性检查作业,返回 jobId |
| POST | /api/PrimerServer2/jobs/check |
提交仅特异性检查作业,返回 jobId |
| GET | /api/PrimerServer2/jobs/{job_id} |
作业状态与元数据 |
| DELETE | /api/PrimerServer2/jobs/{job_id} |
终止并删除作业 |
| GET | /api/PrimerServer2/jobs/{job_id}/progress |
完成百分比与当前阶段 |
| GET | /api/PrimerServer2/jobs/{job_id}/result |
最终结果(job_type=design 或 check) |
| POST | /api/PrimerServer2/jobs/cleanup |
手动清理过期作业目录 |
| GET | /api/PrimerServer2/jobs/{job_id}/result-html |
原始 HTML 结果页 |
| GET | /api/PrimerServer2/jobs/{job_id}/specificity/{filename} |
下载特异性结果文件(如比对图) |
⚠️ 异步作业流程:提交返回 jobId(UUID)→ 轮询 jobs/{job_id}(status: pending/running/done/error/stopped)或 progress({total, finished, percent, stage})→ result 取结果。CLI primer submit --wait 自动完成全流程。各端点支持可选请求头 x-api-key(CLI --api-key)。
设计作业请求体(DesignJobRequest,JSON)关键字段:
- 必填:
app-type: "design"、selectTemplate(模板数据库名,如primer_Chinese_Spring2.1.genome,或custom配合custom-template-sequences); template-regions(selectTemplate 非 custom 时必填):每行一个区域TemplateID TargetPos TargetLength [ProductSizeMin] [ProductSizeMax];selected-databases:特异性检查库文件名列表(来自 databases 端点),默认["primer_Chinese_Spring2.1.genome"];可含custom配合custom-db-sequences;- 产物与位点:
product_size_min(默认 100)/product_size_max(默认 1000)、region_type(默认SEQUENCE_TARGET,另有SEQUENCE_INCLUDED_REGION/FORCE_END); - Primer3 参数(默认值):
PRIMER_MIN_SIZE=18 / PRIMER_OPT_SIZE=20 / PRIMER_MAX_SIZE=23、PRIMER_MIN_TM=57 / PRIMER_OPT_TM=60 / PRIMER_MAX_TM=63、PRIMER_PAIR_MAX_DIFF_TM=3、PRIMER_MIN_GC=35 / PRIMER_OPT_GC_PERCENT=50 / PRIMER_MAX_GC=65、PRIMER_NUM_RETURN=30等; - 特异性检查参数(默认值):
size_start=50、size_stop=5000、min_Tm_diff=20、retain=10、blast_e_value=30000、blast_word_size=7、blast_identity=60。
检查作业请求体(CheckJobRequest):必填 app-type: "check"、check-primers(每行一组 PrimerID LeftSeq RightSeq [AdditionalSeq ...]),其余特异性参数同上。
示例(提交 JSON 可用 --json @文件 从文件读取):
python scripts/wheatomics.py primer-config
python scripts/wheatomics.py primer-databases
python scripts/wheatomics.py primer submit --json '{
"app-type": "design",
"selectTemplate": "primer_Chinese_Spring2.1.genome",
"template-regions": "chr1A 100000 200\nchr1B 200000 300 150 800",
"selected-databases": ["primer_Chinese_Spring2.1.genome"],
"product_size_min": 150,
"product_size_max": 800
}' --wait -o wheatomics_results/primer_design.json
python scripts/wheatomics.py primer submit-check --json '{"app-type": "check", "check-primers": "Primer1 TTCGATGCTGAGGAAGGCTG AGGAGAGAACGGAGACGAAG"}' --wait
python scripts/wheatomics.py primer status <jobId>
python scripts/wheatomics.py primer result <jobId> --job-type design
17. 平台信息(about / health / track)
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/about |
应用名称、版本、文档地址、API 前缀、服务器时间 |
| GET | /api/health |
服务健康检查(探活/监控) |
| POST | /api/track/visit |
记录一次页面访问(同一 ip+UA 当日幂等),body {"page": "..."} |
| GET | /api/track/stats |
公开访问统计:今日 PV/UV、累计 PV/UV、当前在线 |
示例:
python scripts/wheatomics.py health
python scripts/wheatomics.py about
python scripts/wheatomics.py track-stats
CLI 子命令速查表
| 子命令 | 对应端点 | 说明 |
|---|---|---|
about |
GET /api/about | 应用基本信息 |
health |
GET /api/health | 健康检查 |
track-stats |
GET /api/track/stats | 访问统计 |
known-search <关键词> |
GET /api/genes/known/search | 克隆基因模糊搜索 |
known-all |
GET /api/genes/known/all | 全部克隆基因 |
known-chrom <5A> |
GET /api/genes/known/by-chromosome/{chr} | 按染色体列出 |
known-gene <gene_id> |
GET /api/genes/known/{gene_id} | 克隆基因详情 |
gene <gene_id> |
GET /api/genes/detail/{gene_id} | GeneHub 基因详情(v1/v2/v3) |
pfam <PF00319> [--table] |
GET /api/genes/functions/pfam | PFAM 结构域搜基因 |
interval <chr:start..end> [--table] |
GET /api/genes/functions/interval | 区间搜基因 |
genefunc-tables |
GET /api/genes/functions/tables | Genefuncdb 表信息 |
genefunc-examples |
GET /api/genes/functions/examples | 各基因组示例 |
genefunc-registry |
GET /api/genes/functions/registry | 功能表注册元数据 |
expr-projects |
GET /api/expression/projects | 表达项目列表 |
expr-query --genes ... [--project] |
GET /api/expression/query | 表达量查询(02G 自动转换) |
coexpr-databases |
GET /api/coexpression/databases | 共表达库列表 |
coexpr-query --genes ... [--database] [--filter] |
GET /api/coexpression/query | 共表达查询(PCC/MR) |
coexpr-projects [--source] [--q] |
GET /api/coexpression/projects | bioproject 列表 |
coexpr-project <accession> |
GET /api/coexpression/projects/{acc} | 单个 bioproject |
ppi --genes <.1 ID> [--min-score] |
GET /api/ppi/query | 蛋白互作查询 |
homologs <gene_id> [--max-targets] |
GET /api/homologs/wheat-rice-arabidopsis | 水稻/拟南芥同源基因 |
synteny <基因ID或区间> [--table] |
GET /api/synteny/search | 麦族共线性 |
id-conversion --ids ... --version ... |
GET /api/id-conversion | 旧版 ID 转 02G |
blastp <gene_id> [--limit] [--offset] |
GET /api/blastp | 预计算 blastp 结果 |
orthofinder [--q] [--action] [--og] [--sub] |
GET /api/orthofinder/search | OrthoFinder 搜索 |
orthofinder-download --og ... [--type] |
GET /api/orthofinder/download | 下载基因树/比对 |
orthofinder-neighborhood <gene_id> |
GET /api/orthofinder/neighborhood | 邻居基因与同源簇 |
syntenyview-genomes |
GET /api/syntenyview/genomes | 基因组列表 |
syntenyview-gene-search <q> [--limit] |
GET /api/syntenyview/gene-search | 基因搜索 |
syntenyview-status |
GET /api/syntenyview/status | 服务状态 |
syntenyview-triticeae |
GET /api/syntenyview/triticeae | 麦族数据 |
syntenyview-neighborhood <gene_id> [...] |
GET /api/syntenyview/neighborhood | 邻域共线性 |
seq-gene <gene_id> [--gene-db] [--protein-db] |
GET /api/sequence/by-gene | 基因+蛋白 FASTA |
seq-interval --region ... --database ... |
GET /api/sequence/by-interval | 区间基因组 FASTA |
seq-batch --ids ... --database ... |
GET /api/sequence/batch | 批量 FASTA |
blast-databases [--program] |
GET /api/blast/databases | BLAST 库列表 |
blast-env |
GET /api/blast/status | 检查 BLAST 环境 |
blast submit --database ... --query ... [--wait] |
POST /api/blast/search | 提交 BLAST(异步) |
blast status <job_id> |
GET /api/blast/status/{job_id} | 轮询 BLAST 状态 |
blast result <job_id> |
GET /api/blast/status/{job_id} | 取 BLAST 结果(download_urls) |
enrich-go --genes ... [--padj] |
POST /api/go-kegg/go | GO 富集 |
enrich-kegg --genes ... [--padj] |
POST /api/go-kegg/kegg | KEGG 富集 |
go-genes <GO:...> [--genes] |
GET /api/go-kegg/go-genes | GO term 命中基因 |
kegg-genes <pathway> [--genes] |
GET /api/go-kegg/kegg-genes | 通路命中基因 |
variant-datasets |
GET /api/VariantHub/datasets | VCF 数据集列表 |
variant-dataset-info <dataset> |
GET /api/VariantHub/dataset_info | VCF 头与样本 |
variant-samples <dataset> [--param k=v] |
GET /api/VariantHub/samples | 样本元数据 |
| `variant-query <dataset> (--region | --variant-id)` | GET /api/VariantHub/query |
papers [--q] [--limit] [...] |
GET /api/papers | 论文搜索 |
paper <pmid> |
GET /api/papers/{pmid} | 单篇论文元数据 |
paper-annotation <pmid> |
GET /api/papers/{pmid}/annotation | LLM 标注 |
papers-stats |
GET /api/papers/stats | 聚合统计 |
primer-config |
GET /api/PrimerServer2/config | 服务器配置 |
primer-databases |
GET /api/PrimerServer2/databases | 特异性检查库 |
primer-server-info |
GET /api/PrimerServer2/server-info | 运行时信息 |
primer submit --json ... [--wait] |
POST /api/PrimerServer2/jobs | 提交设计作业 |
primer submit-check --json ... [--wait] |
POST /api/PrimerServer2/jobs/check | 提交检查作业 |
primer status <jobId> |
GET /api/PrimerServer2/jobs/{id} | 作业状态 |
primer progress <jobId> |
GET .../jobs/{id}/progress | 作业进度 |
primer result <jobId> [--job-type] |
GET .../jobs/{id}/result | 作业结果 |
primer delete <jobId> |
DELETE /api/PrimerServer2/jobs/{id} | 终止并删除 |
primer result-html <jobId> |
GET .../jobs/{id}/result-html | HTML 结果页 |
通用选项(所有子命令):-o/--output 文件(完整 JSON 写盘,自动建父目录)、--timeout 秒(默认 30)、--base 地址(或环境变量 WHEATOMICS_BASE)、--api-key(x-api-key 请求头)、--param KEY=VALUE(附加 query 参数,可重复)。