Files

451 lines
20 KiB
HTML
Raw Permalink Normal View History

2026-08-03 18:42:47 +08:00
<!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>