siRNA Design(自动化设计流水线)
这是什么
一套 16 步全自动 siRNA 设计流水线(Python):从靶基因出发,输出候选 siRNA + 安全性检查(脱靶/变异/家族/多物种)+ 与已上市药物对标。
- 参数与规则运行前锁定(pre-registered):算法、阈值、评分框架全部固定,见
references/sop.md - 计算只做筛选,候选最终需湿实验验证
前置条件
- Python 3.9+
- 依赖安装:
pip install -r requirements.txt(viennarna、openpyxl) - 使用前请先开启 VPN / 代理(BLAST 步骤需访问 NCBI,国内网络尤其)
- 网络:需访问 NCBI / siDirect / Ensembl / gnomAD / UniProt / ChEMBL
- BLAST 步骤会自动选择可用通道(含本地代理自动探测),通常无需配置(详见
references/troubleshooting.md)
- BLAST 步骤会自动选择可用通道(含本地代理自动探测),通常无需配置(详见
快速开始(一条命令跑完 16 步)
python scripts/pipeline_sirna.py <基因名> <转录本ID> <CDS起始> <目标关键词> [选项]
示例:
# 最小用法
python scripts/pipeline_sirna.py APOC3 ENST00000227667 48 "apolipoprotein C3" -workdir ./out
# 含家族分析 + 对标药物
python scripts/pipeline_sirna.py PCSK9 ENST00000261751 291 "proprotein convertase" -family "Q8NBP7" -drug "inclisiran" -workdir ./out
| 选项 | 说明 |
|---|---|
-workdir <目录> |
输出目录(默认 ./sirna_work) |
-prefix <名> |
输出前缀(默认 = 基因名) |
-family <UniProt,...> |
家族成员(Step 12;靶 UniProt 自动推导) |
-drug <名> |
对标药物(Step 15-16) |
-species <a,b> |
多物种(默认 小鼠/大鼠/猕猴) |
运行前先与用户确认输出目录(
-workdir,默认./sirna_work)——由 agent 询问用户;脚本保持非交互,便于自动化与批量调用。
16 步与脚本对照(可单独运行)
| Step | 脚本 | 作用 | 单独运行 |
|---|---|---|---|
| 1 | step01_fetch_sequence.py |
NCBI 获取 RefSeq mRNA | python scripts/step01_fetch_sequence.py <基因> <out.fasta> |
| 2 | step02_sidirect_design.py |
siDirect 设计(API,含 Step 3 提取 / Step 7 specificity) | python scripts/step02_sidirect_design.py <fasta> <out.csv> [-loose] [-spe mm_refseq230] |
| 4 | step04_thermo.py |
seed Tm / duplex MFE | python scripts/step04_thermo.py <candidates.csv> <out.csv> |
| 5 | step05_accessibility.py |
可及性评分 | python scripts/step05_accessibility.py <candidates.csv> <mrna.fasta> <out.csv> |
| 6 | step06_mirna_seed.py |
miRNA seed 检查 | python scripts/step06_mirna_seed.py <candidates.csv> assets/mirgenedb_hsa_mature.fa <out.csv> |
| 7 | step07_specificity.py |
脱靶确认:解析 siDirect 网页导出的 Excel(手动路线;文件由用户提供) | python scripts/step07_specificity.py <xlsx> |
| 8 | step08_offtarget_hits.py + step08_offtarget_score.py |
BLAST XML -> 脱靶表 -> 评分 | 见流水线(或 step08_offtarget_score.py csv <hits.csv> <out.csv>) |
| 9 | step09_genome_coords.py |
cDNA -> 基因组坐标(Ensembl) | python scripts/step09_genome_coords.py <ENST> <区域> [out.csv] |
| 10 | step10_snp.py |
gnomAD 变异查询 | python scripts/step10_snp.py <chr> <start> <stop> <out.csv> |
| 11 | step11_variant.py |
变异靶向检查 | python scripts/step11_variant.py <cand_genome.csv> <gnomAD.csv> <out.csv> |
| 12 | step12_family.py |
家族保守性 | python scripts/step12_family.py <UniProt> <成员,...> <aa起> <aa止> [out.csv] |
| 13 | step13_multispecies.py |
多物种 BLAST(也用于 Step 8 人 BLAST) | python scripts/step13_multispecies.py <guide DNA> <前缀> ["物种"] |
| 14 | step14_score.py |
21 参数综合评分 | python scripts/step14_score.py <candidates.csv> <out.csv> [cds_start] [变异CSV] |
| 15 | step15_chembl.py + step15_patent.py |
药物序列(ChEMBL / NCBI 专利) | python scripts/step15_chembl.py <药物名> <out.csv> |
| 16 | step16_compare.py |
对标药物靶区 | python scripts/step16_compare.py <mrna.fasta> <药物guide> [cds_start] [cds_end] |
关键参数(pre-registered)
| 参数 | 值 | 依据 |
|---|---|---|
| siDirect 算法 | Ui-Tei + Reynolds + Amarzguioui | 多证据交叉 |
| siDirect seed Tm | 21.5 C | Ui-Tei 2008 |
| GC 范围 | 30-70%(筛选);36-52%(评分) | 宽筛 + Reynolds |
| 脱靶阈值 | 0mm <= 1;1mm <= 10;2mm <= 50 | siRNAforge |
| 综合评分 | 21 参数(序列 0-17 + 安全性 0-2 = 19) | Fakhr 2016 + 扩展 |
完整参数、决策规则、湿实验清单见 references/sop.md。
输出
默认输出到 <workdir>/,命名 <前缀>_<步骤名>.csv|.fasta|.xml:
*_step02_candidates.csv:候选(position/靶序列/guide/passenger/算法/特异)*_step04_thermo.csv、*_step05_accessibility.csv、*_step06_mirna_seed.csv*_step09_coords.csv、*_step10_variants_*.csv、*_step11_variant_check.csv*_step14_scored.csv:综合评分排序(最终候选表)*_step15_chembl.csv/*_step15_patent.csv:对标药物序列
CSV 均为 UTF-8-SIG(Excel 可直接打开)。
故障排除
- 网络/代理/速率限制/常见错误:
references/troubleshooting.md - 完整 SOP:
references/sop.md