Files
PlantAI-dev/docs/analysis_routes_flowchart.html
T
2026-08-03 18:42:47 +08:00

451 lines
20 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>bbav5 分析路线流程图</title>
<style>
:root {
--bg: #f6f7f9;
--ink: #1f2933;
--muted: #657282;
--line: #c8d1dc;
--panel: #ffffff;
--data: #e8f3ff;
--core: #eaf7ef;
--tree: #fff4df;
--plot: #f0ecff;
--rna: #ffeef1;
--util: #eef1f4;
--warn: #fff8e8;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: Arial, "Microsoft YaHei", sans-serif;
line-height: 1.45;
}
header {
padding: 28px 36px 18px;
background: #17212f;
color: #fff;
}
h1 { margin: 0 0 8px; font-size: 26px; letter-spacing: 0; }
header p { margin: 0; color: #d5dde7; font-size: 14px; }
main { max-width: 1320px; margin: 0 auto; padding: 24px 28px 42px; }
.legend, .route {
background: var(--panel);
border: 1px solid #dfe5ec;
border-radius: 8px;
padding: 18px;
margin-bottom: 18px;
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
h2 {
margin: 0 0 12px;
font-size: 18px;
border-bottom: 1px solid #e5eaf0;
padding-bottom: 10px;
}
.note {
margin: 8px 0 0;
color: var(--muted);
font-size: 13px;
}
.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tag {
display: inline-flex;
align-items: center;
gap: 6px;
border: 1px solid #d6dde6;
border-radius: 999px;
padding: 5px 10px;
font-size: 12px;
color: #2f3b48;
background: #fff;
}
.dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.flow {
display: flex;
flex-wrap: wrap;
align-items: stretch;
gap: 10px;
margin-top: 10px;
}
.node {
min-width: 150px;
max-width: 210px;
border: 1px solid #cfd8e3;
border-radius: 8px;
padding: 10px 12px;
background: #fff;
position: relative;
}
.node strong {
display: block;
font-size: 14px;
margin-bottom: 4px;
}
.node span {
display: block;
color: var(--muted);
font-size: 12px;
}
.data { background: var(--data); }
.core { background: var(--core); }
.tree { background: var(--tree); }
.plot { background: var(--plot); }
.rna { background: var(--rna); }
.util { background: var(--util); }
.warn { background: var(--warn); }
.arrow {
align-self: center;
color: #6c7a89;
font-weight: 700;
font-size: 18px;
padding: 0 1px;
}
.branch {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
gap: 10px;
margin-top: 12px;
}
.branch-card {
border: 1px dashed #bcc8d6;
border-radius: 8px;
padding: 12px;
background: #fbfcfd;
}
.branch-card h3 {
margin: 0 0 8px;
font-size: 14px;
}
.mini-flow {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.mini {
border: 1px solid #d4dde7;
border-radius: 7px;
padding: 7px 9px;
background: #fff;
font-size: 12px;
}
.matrix {
width: 100%;
border-collapse: collapse;
margin-top: 8px;
font-size: 12px;
}
.matrix th, .matrix td {
border: 1px solid #dfe5ec;
padding: 8px;
text-align: left;
vertical-align: top;
}
.matrix th { background: #f0f3f7; }
code {
background: #eef2f6;
border-radius: 4px;
padding: 1px 5px;
font-family: Consolas, "Courier New", monospace;
font-size: 12px;
}
@media (max-width: 700px) {
header { padding: 22px 18px 14px; }
main { padding: 16px; }
.node { min-width: 100%; max-width: none; }
.arrow { width: 100%; text-align: center; transform: rotate(90deg); }
}
</style>
</head>
<body>
<header>
<h1>bbav5 分析路线流程图</h1>
<p>按当前代码依赖关系整理。每条路线单独列出,避免把基因家族、功能图、共线性和 RNA-seq 混成一张大图。</p>
</header>
<main>
<section class="legend">
<h2>颜色说明</h2>
<div class="tags">
<span class="tag"><i class="dot" style="background:#b9dcff"></i>数据准备</span>
<span class="tag"><i class="dot" style="background:#bde8c9"></i>基因家族核心</span>
<span class="tag"><i class="dot" style="background:#ffe0a3"></i>树与分类</span>
<span class="tag"><i class="dot" style="background:#d7cdfd"></i>图形/结构/功能</span>
<span class="tag"><i class="dot" style="background:#ffc9d3"></i>RNA-seq</span>
<span class="tag"><i class="dot" style="background:#dde3ea"></i>工具/可选输入</span>
</div>
<p class="note">执行时会先检查 manifest 和产物;缺上游阶段时,应按该路线自动补齐依赖。</p>
</section>
<section class="route">
<h2>路线 1:数据准备路线</h2>
<div class="flow">
<div class="node data"><strong>config.xlsx / 上传文件</strong><span>物种、角色、family、genome/gff/cds/pep</span></div>
<div class="arrow">→</div>
<div class="node data"><strong>prepare_organize</strong><span>整理输入文件</span></div>
<div class="arrow">→</div>
<div class="node data"><strong>prepare_normalize_gff</strong><span>统一 GFF/GFF3 格式</span></div>
<div class="arrow">→</div>
<div class="node data"><strong>prepare_longest_transcript</strong><span>选择最长转录本</span></div>
<div class="arrow">→</div>
<div class="node data"><strong>prepare_extract_pep / cds</strong><span>必要时由 genome + GFF 提取</span></div>
<div class="arrow">→</div>
<div class="node data"><strong>genome_prepare</strong><span>输出 *_final.gff3、*.pep.fasta、*.cds.fasta</span></div>
</div>
<p class="note">这条路线为后续 identify、structure、promoter、synteny、RNA-seq 注释背景等提供基础文件。</p>
</section>
<section class="route">
<h2>路线 2:参考家族序列准备路线</h2>
<div class="flow">
<div class="node util"><strong>ID 列表 / NCBI 查询</strong><span>例如 At.SPL.ids</span></div>
<div class="arrow">→</div>
<div class="node util"><strong>ncbi_fetch_sequences</strong><span>下载参考蛋白/CDS</span></div>
<div class="arrow">→</div>
<div class="node util"><strong>{Species}.{Family}.pep.fa</strong><span>必要时创建软链接统一命名</span></div>
<div class="arrow">→</div>
<div class="node core"><strong>identify 可复用</strong><span>作为参考 seed / family pep</span></div>
</div>
<p class="note">例如 NCBI 结果可保留原文件,同时软链接为 <code>At.SPL.pep.fa</code> 供后续识别和参考分类复用。</p>
</section>
<section class="route">
<h2>路线 3:基因家族成员鉴定路线</h2>
<div class="flow">
<div class="node data"><strong>genome_prepare 产物</strong><span>目标物种 whole-proteome pep</span></div>
<div class="arrow">+</div>
<div class="node util"><strong>HMM / Pfam</strong><span>HMM 文件或 required_pfams</span></div>
<div class="arrow">+</div>
<div class="node util"><strong>参考家族 pep</strong><span>如 At.SPL.pep.fa</span></div>
<div class="arrow">→</div>
<div class="node core"><strong>identify</strong><span>HMMER/BLAST 鉴定候选成员</span></div>
<div class="arrow">→</div>
<div class="node core"><strong>InterProScan 复核</strong><span>默认 Pfam + CDD</span></div>
<div class="arrow">→</div>
<div class="node core"><strong>identify_refine</strong><span>按 domain review / curated id 生成最终成员</span></div>
</div>
<p class="note">输出包括合并成员 <code>Target.SPL.final_members.pep.fa</code>,以及单物种成员如 <code>Target.Dl.SPL.final_members.pep.fa</code>。</p>
</section>
<section class="route">
<h2>路线 4:系统发育树与参考亚家族分类路线</h2>
<div class="flow">
<div class="node core"><strong>identify / identify_refine</strong><span>最终成员蛋白</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>phylogeny</strong><span>MAFFT + IQ-TREE,生成 tree.nwk</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>reference_classification</strong><span>参考亚家族迁移与置信度</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>subfamily_confirm</strong><span>确认后的亚家族标签</span></div>
</div>
<div class="branch">
<div class="branch-card">
<h3>目标物种单独树</h3>
<div class="mini-flow">
<span class="mini">target_only</span><span>→</span><span class="mini">Target 成员树</span>
</div>
</div>
<div class="branch-card">
<h3>目标 + 参考联合树</h3>
<div class="mini-flow">
<span class="mini">target_plus_reference</span><span>→</span><span class="mini">At + Target 联合树</span><span>→</span><span class="mini">亚家族分类</span><span>→</span><span class="mini">用户确认</span>
</div>
</div>
</div>
<p class="note">多智能体规划中,“预测亚家族/亚家族分类”对应 <code>reference_classification</code>,“确认亚家族/亚家族确认”对应 <code>subfamily_confirm</code>。参考分类必须有同一 scope 的 phylogeny 树和参考亚家族文件,例如 <code>At.SPL.subfamily</code>;确认后生成 <code>{prefix}.confirmed_subfamily.tsv</code> 供后续绘图复用。</p>
</section>
<section class="route">
<h2>路线 5:结构 / Motif / Domain / 组合图路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>成员 ID 和 pep</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>phylogeny</strong><span>树排序和联合展示基础</span></div>
</div>
<div class="branch">
<div class="branch-card">
<h3>基因结构</h3>
<div class="mini-flow"><span class="mini">structure</span><span>依赖 final_members.id + *_final.gff3</span></div>
</div>
<div class="branch-card">
<h3>Motif</h3>
<div class="mini-flow"><span class="mini">motif</span><span>MEME motif 识别与绘图</span></div>
</div>
<div class="branch-card">
<h3>Domain</h3>
<div class="mini-flow"><span class="mini">domain</span><span>Pfam/domain 结构域图</span></div>
</div>
<div class="branch-card">
<h3>联合图</h3>
<div class="mini-flow"><span class="mini">combo</span><span>tree + structure + motif + domain</span></div>
</div>
</div>
<p class="note">亚家族判断阶段建议同时参考 tree、structure、motif、domain,而不是只看树;确认后的亚家族标签会优先用于后续 structure、motif、domain、combo、promoter 和树图标注。</p>
</section>
<section class="route">
<h2>路线 6:启动子与顺式作用元件路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>成员 ID</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>phylogeny</strong><span>用于排序/分组展示</span></div>
<div class="arrow">+</div>
<div class="node data"><strong>genome + *_final.gff3</strong><span>提取上游序列</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>promoter</strong><span>启动子提取、PlantCARE/顺式元件图</span></div>
</div>
</section>
<section class="route">
<h2>路线 7:共线性 / 核型图 / KaKs 路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>家族成员</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>synteny</strong><span>种内共线性</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>karyotype</strong><span>染色体定位和核型图</span></div>
</div>
<div class="flow">
<div class="node core"><strong>identify</strong><span>目标/比较/参考成员</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>interspecies_synteny</strong><span>种间共线性</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>kaks</strong><span>重复基因对 Ka/Ks</span></div>
</div>
<p class="note">种间共线性需要多个物种 whole-genome pep 和非空 GFF;Ka/Ks 还依赖可用 CDS。</p>
</section>
<section class="route">
<h2>路线 8:同源基因与 PPI 路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>成员蛋白</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>phylogeny</strong><span>辅助筛选和展示</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>ortholog</strong><span>同源关系</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>ppi</strong><span>STRING / 同源映射 PPI</span></div>
</div>
<p class="note">当前后端也支持以 <code>identify + interspecies_synteny</code> 作为 PPI 的依赖来源;前端旧依赖中还保留 <code>ortholog</code> 路线。</p>
</section>
<section class="route">
<h2>路线 9:表达矩阵路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>家族成员 ID</span></div>
<div class="arrow">→</div>
<div class="node tree"><strong>phylogeny</strong><span>用于热图排序/分组</span></div>
<div class="arrow">+</div>
<div class="node util"><strong>表达矩阵 / GEO</strong><span>上传矩阵或 fetch_expression</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>expression</strong><span>家族表达热图和表达表</span></div>
</div>
</section>
<section class="route">
<h2>路线 10:PEP 理化性质路线</h2>
<div class="flow">
<div class="node core"><strong>identify</strong><span>最终成员蛋白</span></div>
<div class="arrow">→</div>
<div class="node plot"><strong>pep</strong><span>理化性质、亚细胞/特征统计</span></div>
</div>
</section>
<section class="route">
<h2>路线 11:RNA-seq 主流程路线</h2>
<div class="flow">
<div class="node rna"><strong>samples.yaml / FASTQ</strong><span>样本、分组、比较设计</span></div>
<div class="arrow">→</div>
<div class="node rna"><strong>rnaseq_qc</strong><span>FastQC + Cutadapt</span></div>
<div class="arrow">→</div>
<div class="node rna"><strong>rnaseq_align</strong><span>HISAT2 / BAM</span></div>
<div class="arrow">→</div>
<div class="node rna"><strong>rnaseq_quant</strong><span>featureCounts / count、FPKM、TPM</span></div>
<div class="arrow">→</div>
<div class="node rna"><strong>rnaseq_sample_qc</strong><span>PCA、相关性、样本 QC</span></div>
</div>
<div class="branch">
<div class="branch-card">
<h3>差异表达主线</h3>
<div class="mini-flow">
<span class="mini">rnaseq_sample_qc</span><span>→</span><span class="mini">rnaseq_de</span>
</div>
</div>
<div class="branch-card">
<h3>WGCNA 分支</h3>
<div class="mini-flow">
<span class="mini">rnaseq_sample_qc</span><span>→</span><span class="mini">rnaseq_wgcna</span>
</div>
</div>
</div>
</section>
<section class="route">
<h2>路线 12:RNA-seq 差异后分析路线</h2>
<div class="flow">
<div class="node rna"><strong>rnaseq_de</strong><span>DESeq2 差异表达结果</span></div>
<div class="arrow">→</div>
<div class="node rna"><strong>rnaseq_go_enrich</strong><span>GO 富集</span></div>
<div class="arrow">/</div>
<div class="node rna"><strong>rnaseq_kegg_enrich</strong><span>KEGG 富集</span></div>
<div class="arrow">/</div>
<div class="node rna"><strong>rnaseq_fgsea</strong><span>排序富集</span></div>
<div class="arrow">/</div>
<div class="node rna"><strong>rnaseq_candidate_family</strong><span>候选家族筛选</span></div>
</div>
<div class="branch">
<div class="branch-card">
<h3>背景注释路线</h3>
<div class="mini-flow">
<span class="mini">annotation</span><span>→</span><span class="mini">gene2go / gene2ko</span><span>→</span><span class="mini">rnaseq_enrich / fgsea</span>
</div>
</div>
<div class="branch-card">
<h3>候选家族联动</h3>
<div class="mini-flow">
<span class="mini">rnaseq_de</span><span>+</span><span class="mini">annotation</span><span>+</span><span class="mini">WGCNA 可选</span><span>→</span><span class="mini">candidate_family</span>
</div>
</div>
</div>
</section>
<section class="route">
<h2>路线 13:汇总报告路线</h2>
<div class="flow">
<div class="node core"><strong>已完成基因家族阶段</strong><span>identify / tree / motif / domain / structure / synteny...</span></div>
<div class="arrow">+</div>
<div class="node rna"><strong>已完成 RNA-seq 阶段</strong><span>qc / align / quant / de / enrich / wgcna...</span></div>
<div class="arrow">→</div>
<div class="node warn"><strong>summary</strong><span>读取已有 manifest 和 final 产物生成总报告</span></div>
</div>
<p class="note">summary 的定位应是汇总和解释已完成结果,不应默认强制重跑所有阶段。</p>
</section>
<section class="route">
<h2>当前后端依赖速查</h2>
<table class="matrix">
<thead>
<tr><th>路线</th><th>阶段顺序</th><th>关键输入/说明</th></tr>
</thead>
<tbody>
<tr><td>预测/确认亚家族</td><td><code>identify → phylogeny → reference_classification → subfamily_confirm</code></td><td>规划器先补齐同一 scope 的 tree;reference_classification 预测亚家族,subfamily_confirm 固化用户确认标签</td></tr>
<tr><td>联合图</td><td><code>identify → phylogeny → motif/domain/structure → combo</code></td><td>结构、motif、domain 可并行后合图,并优先读取 confirmed_subfamily 标签</td></tr>
<tr><td>种内共线性</td><td><code>identify → synteny → karyotype</code></td><td>whole-genome pep + GFF</td></tr>
<tr><td>种间共线性/KaKs</td><td><code>identify → interspecies_synteny → kaks</code></td><td>多物种 pep/GFF/CDS</td></tr>
<tr><td>RNA-seq 主线</td><td><code>rnaseq_qc → rnaseq_align → rnaseq_quant → rnaseq_sample_qc</code></td><td>FASTQ、样本配置、基因组索引/注释</td></tr>
<tr><td>RNA-seq 终端分析</td><td><code>rnaseq_sample_qc → rnaseq_de → enrich/fgsea/candidate_family</code></td><td>DE 结果和 GO/KEGG 背景</td></tr>
<tr><td>WGCNA</td><td><code>rnaseq_sample_qc → rnaseq_wgcna</code></td><td>表达矩阵和样本性状表</td></tr>
</tbody>
</table>
</section>
</main>
</body>
</html>