842. 合成生物学前沿¶
一句话概述:合成生物学 = 用工程化思维设计和构建新的生物系统,生信在其中负责基因线路设计、代谢通路优化和基因组编辑的计算支持。
核心知识点速查表¶
| 方向 | 说明 | 生信角色 |
|---|---|---|
| 基因线路设计 | 设计基因开关、振荡器等 | 数学建模+仿真 |
| 代谢工程 | 优化微生物生产化学品 | 代谢通路分析(FBA) |
| 基因组编辑 | CRISPR设计和脱靶预测 | sgRNA设计+脱靶分析 |
| DNA合成 | 人工合成基因/基因组 | 密码子优化+序列设计 |
| 底盘细胞 | 最小基因组设计 | 必需基因预测 |
| 生物传感器 | 检测环境分子 | 调控元件数据库 |
一、白话理解合成生物学¶
传统生物学 = 观察自然、理解生命
合成生物学 = 设计新的生命功能
类比:
传统生物学 ≈ 研究汽车怎么跑的
合成生物学 ≈ 自己造一辆新车
核心理念:
→ DNA是"生命的代码"
→ 基因是"零件"
→ 调控元件是"开关"
→ 代谢通路是"生产线"
→ 细胞是"工厂"
目标:把这些零件组装起来,让细胞做我们想做的事
→ 让大肠杆菌生产青蒿素(抗疟疾药)
→ 让酵母生产蜘蛛丝蛋白(超级材料)
→ 让细菌检测水中的砷(生物传感器)
二、CRISPR设计(生信核心应用)¶
2.1 sgRNA设计¶
# CRISPR sgRNA设计 —— 生信常见任务
# 方法1:使用CRISPRscan/Azimuth进行评分
# 方法2:使用Python自行设计
def find_crispr_targets(sequence, pam="NGG"):
"""在序列中寻找所有CRISPR靶位点"""
targets = [] # 存储所有靶位点
for i in range(len(sequence) - 23): # 遍历序列
site = sequence[i:i+23] # 20bp guide + 3bp PAM
if site[21:23] == "GG": # 检查PAM (NGG)
guide = site[:20] # 提取20bp引导序列
gc_content = ( # 计算GC含量
guide.count('G') + guide.count('C')
) / len(guide) * 100
if 30 <= gc_content <= 70: # GC含量30-70%为好
targets.append({
'position': i, # 位置
'guide': guide, # 引导序列
'pam': site[20:23], # PAM序列
'gc': gc_content # GC含量
})
return targets
# 使用示例
targets = find_crispr_targets(gene_sequence) # 寻找靶位点
for t in targets[:5]: # 显示前5个
print(f"位置:{t['position']} "
f"序列:{t['guide']} "
f"GC:{t['gc']:.1f}%")
2.2 脱靶分析¶
# Cas-OFFinder —— CRISPR脱靶位点预测
# 准备输入文件
cat input.txt
# /path/to/genome.fa # 参考基因组
# NNNNNNNNNNNNNNNNNNNNNGG # PAM模式
# ATCGATCGATCGATCGATCG NNN 3 # 引导序列 PAM 允许错配数
# 运行脱靶分析
cas-offinder input.txt C output.txt # C=CPU模式
# 输出解读
# 每行:染色体 位置 脱靶序列 方向 错配数
# 错配数越少 → 脱靶风险越高
# 面试考点:为什么CRISPR需要脱靶分析?
# → 防止编辑错误位置导致意外突变
三、代谢工程与通路分析¶
# 基于约束的代谢分析 (FBA - Flux Balance Analysis)
# 用于预测微生物代谢通路的最优流量分布
# COBRApy —— 代谢网络分析工具
import cobra # 导入COBRApy
# 加载代谢模型
model = cobra.io.read_sbml_model( # 读取SBML格式模型
"e_coli_core.xml" # 大肠杆菌核心代谢模型
)
# 查看模型信息
print(f"反应数: {len(model.reactions)}") # 反应数量
print(f"代谢物数: {len(model.metabolites)}")# 代谢物数量
print(f"基因数: {len(model.genes)}") # 基因数量
# 运行FBA(最大化生长速率)
solution = model.optimize() # 优化
print(f"最大生长速率: {solution.objective_value:.4f}")
# 基因敲除模拟
with model: # 使用上下文管理器
model.genes.get_by_id("b1241").knock_out() # 模拟敲除adhE基因
ko_solution = model.optimize() # 重新优化
print(f"敲除后生长速率: {ko_solution.objective_value:.4f}")
# 产物合成优化
with model:
# 设置目标为最大化目标产物
model.objective = "EX_etoh_e" # 最大化乙醇产量
solution = model.optimize()
print(f"最大乙醇产量: {solution.objective_value:.4f}")
四、密码子优化¶
# 密码子优化 —— 让外源基因在宿主中高效表达
from dnachisel import DnaOptimizationProblem # DNA优化库
from dnachisel import CodonOptimize # 密码子优化
problem = DnaOptimizationProblem(
sequence=original_gene_sequence, # 原始基因序列
objectives=[
CodonOptimize( # 密码子优化目标
species='e_coli' # 目标宿主:大肠杆菌
)
],
constraints=[ # 约束条件
# 避免限制性酶切位点
# 避免重复序列
# GC含量控制在40-60%
]
)
problem.resolve_constraints() # 满足约束
problem.optimize() # 优化密码子使用
optimized_sequence = problem.sequence # 获取优化后序列
print(f"优化前CAI: {original_cai}") # 密码子适应指数
print(f"优化后CAI: {optimized_cai}") # 应该接近1.0
五、合成生物学数据库¶
| 数据库 | 内容 | 网址 |
|---|---|---|
| iGEM Registry | 标准生物零件库 | parts.igem.org |
| KEGG | 代谢通路数据库 | kegg.jp |
| BiGG Models | 基因组尺度代谢模型 | bigg.ucsd.edu |
| SynBioHub | 合成生物学设计共享 | synbiohub.org |
| Addgene | 质粒共享平台 | addgene.org |
六、面试高频问题¶
Q: 生信在合成生物学中的角色是什么? A: 计算设计支持——CRISPR靶位点设计和脱靶预测、密码子优化、代谢通路分析(FBA)、基因线路建模仿真。
Q: 什么是FBA? A: 通量平衡分析,基于代谢网络的化学计量矩阵和稳态假设,通过线性规划预测最优代谢通量分布。比如预测敲除某基因后细菌还能不能生长。
Q: CRISPR设计中最重要的考虑是什么? A: 脱靶效应。需要计算工具预测引导RNA在基因组其他位置的可能结合位点,选择脱靶风险最低的靶位点。
常见报错与解决¶
| 问题 | 解决 |
|---|---|
| COBRApy模型不可行(infeasible) | 检查培养基成分设置和模型约束 |
| sgRNA没有靶位点 | 扩大搜索区域或允许更多PAM变体 |
| 密码子优化后表达仍低 | 考虑mRNA二级结构、启动子强度等因素 |
速查表¶
# CRISPR设计工具
在线:CRISPOR, Benchling, Cas-OFFinder
Python:crispr-cas12a, crispr-tools
# 代谢分析
COBRApy: Python代谢网络分析
Escher: 代谢通路可视化
OptFlux: 代谢工程优化
# 密码子优化
DNA Chisel: Python密码子优化
JCat: 在线密码子优化
GenSmart: 在线密码子优化
# 合成生物学 + 生信 核心技能
1. CRISPR sgRNA设计 + 脱靶分析
2. 代谢网络分析(FBA/FVA)
3. 密码子优化
4. 基因线路建模(ODE仿真)
5. DNA序列设计(避免重复/二级结构)