brenda-database by davila7/claude-code-templates
npx skills add https://github.com/davila7/claude-code-templates --skill brenda-databaseBRENDA(BRaunschweig ENzyme DAtabase)是全球最全面的酶信息数据库,包含来自科学文献的详细酶数据。通过官方的 SOAP API,可以查询酶的动力学参数(Km、kcat)、反应方程式、底物特异性、生物体信息以及最适条件。该数据库包含超过 45,000 种酶的数百万个动力学数据点,适用于生物化学研究、代谢工程和酶发现。
此技能应在以下情况下使用:
获取酶的全面动力学数据:
通过 EC 编号获取 Km 值:
from brenda_client import get_km_values
# 获取所有生物体的 Km 值
km_data = get_km_values("1.1.1.1") # 乙醇脱氢酶
# 获取特定生物体的 Km 值
km_data = get_km_values("1.1.1.1", organism="Saccharomyces cerevisiae")
# 获取特定底物的 Km 值
km_data = get_km_values("1.1.1.1", substrate="ethanol")
解析 Km 结果:
for entry in km_data:
print(f"Km: {entry}")
# 示例输出: "organism*Homo sapiens#substrate*ethanol#kmValue*1.2#commentary*"
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
提取特定信息:
from scripts.brenda_queries import parse_km_entry, extract_organism_data
for entry in km_data:
parsed = parse_km_entry(entry)
organism = extract_organism_data(entry)
print(f"Organism: {parsed['organism']}")
print(f"Substrate: {parsed['substrate']}")
print(f"Km value: {parsed['km_value']}")
print(f"pH: {parsed.get('ph', 'N/A')}")
print(f"Temperature: {parsed.get('temperature', 'N/A')}")
检索反应方程式和详细信息:
通过 EC 编号获取反应:
from brenda_client import get_reactions
# 获取 EC 编号的所有反应
reactions = get_reactions("1.1.1.1")
# 按生物体筛选
reactions = get_reactions("1.1.1.1", organism="Escherichia coli")
# 搜索特定反应
reactions = get_reactions("1.1.1.1", reaction="ethanol + NAD+")
处理反应数据:
from scripts.brenda_queries import parse_reaction_entry, extract_substrate_products
for reaction in reactions:
parsed = parse_reaction_entry(reaction)
substrates, products = extract_substrate_products(reaction)
print(f"Reaction: {parsed['reaction']}")
print(f"Organism: {parsed['organism']}")
print(f"Substrates: {substrates}")
print(f"Products: {products}")
寻找特定生化转化的酶:
通过底物查找酶:
from scripts.brenda_queries import search_enzymes_by_substrate
# 查找作用于葡萄糖的酶
enzymes = search_enzymes_by_substrate("glucose", limit=20)
for enzyme in enzymes:
print(f"EC: {enzyme['ec_number']}")
print(f"Name: {enzyme['enzyme_name']}")
print(f"Reaction: {enzyme['reaction']}")
通过产物查找酶:
from scripts.brenda_queries import search_enzymes_by_product
# 查找产生乳酸的酶
enzymes = search_enzymes_by_product("lactate", limit=10)
通过反应模式搜索:
from scripts.brenda_queries import search_by_pattern
# 查找氧化反应
enzymes = search_by_pattern("oxidation", limit=15)
比较不同生物体间的酶特性:
获取多个生物体的酶数据:
from scripts.brenda_queries import compare_across_organisms
organisms = ["Escherichia coli", "Saccharomyces cerevisiae", "Homo sapiens"]
comparison = compare_across_organisms("1.1.1.1", organisms)
for org_data in comparison:
print(f"Organism: {org_data['organism']}")
print(f"Avg Km: {org_data['average_km']}")
print(f"Optimal pH: {org_data['optimal_ph']}")
print(f"Temperature range: {org_data['temperature_range']}")
查找具有特定酶的生物体:
from scripts.brenda_queries import get_organisms_for_enzyme
organisms = get_organisms_for_enzyme("6.3.5.5") # 谷氨酰胺合成酶
print(f"Found {len(organisms)} organisms with this enzyme")
获取最适条件和环境参数:
获取 pH 和温度数据:
from scripts.brenda_queries import get_environmental_parameters
params = get_environmental_parameters("1.1.1.1")
print(f"Optimal pH range: {params['ph_range']}")
print(f"Optimal temperature: {params['optimal_temperature']}")
print(f"Stability pH: {params['stability_ph']}")
print(f"Temperature stability: {params['temperature_stability']}")
辅因子需求:
from scripts.brenda_queries import get_cofactor_requirements
cofactors = get_cofactor_requirements("1.1.1.1")
for cofactor in cofactors:
print(f"Cofactor: {cofactor['name']}")
print(f"Type: {cofactor['type']}")
print(f"Concentration: {cofactor['concentration']}")
分析酶的底物偏好:
获取底物特异性数据:
from scripts.brenda_queries import get_substrate_specificity
specificity = get_substrate_specificity("1.1.1.1")
for substrate in specificity:
print(f"Substrate: {substrate['name']}")
print(f"Km: {substrate['km']}")
print(f"Vmax: {substrate['vmax']}")
print(f"kcat: {substrate['kcat']}")
print(f"Specificity constant: {substrate['kcat_km_ratio']}")
比较底物亲和力:
from scripts.brenda_queries import compare_substrate_affinity
comparison = compare_substrate_affinity("1.1.1.1")
sorted_by_km = sorted(comparison, key=lambda x: x['km'])
for substrate in sorted_by_km[:5]: # 前 5 个最低 Km 值
print(f"{substrate['name']}: Km = {substrate['km']}")
获取酶调控数据:
获取抑制剂信息:
from scripts.brenda_queries import get_inhibitors
inhibitors = get_inhibitors("1.1.1.1")
for inhibitor in inhibitors:
print(f"Inhibitor: {inhibitor['name']}")
print(f"Type: {inhibitor['type']}")
print(f"Ki: {inhibitor['ki']}")
print(f"IC50: {inhibitor['ic50']}")
获取激活剂信息:
from scripts.brenda_queries import get_activators
activators = get_activators("1.1.1.1")
for activator in activators:
print(f"Activator: {activator['name']}")
print(f"Effect: {activator['effect']}")
print(f"Mechanism: {activator['mechanism']}")
寻找工程靶点和替代方案:
寻找嗜热同源物:
from scripts.brenda_queries import find_thermophilic_homologs
thermophilic = find_thermophilic_homologs("1.1.1.1", min_temp=50)
for enzyme in thermophilic:
print(f"Organism: {enzyme['organism']}")
print(f"Optimal temp: {enzyme['optimal_temperature']}")
print(f"Km: {enzyme['km']}")
寻找碱性/酸性稳定变体:
from scripts.brenda_queries import find_ph_stable_variants
alkaline = find_ph_stable_variants("1.1.1.1", min_ph=8.0)
acidic = find_ph_stable_variants("1.1.1.1", max_ph=6.0)
为动力学建模准备数据:
获取建模用动力学参数:
from scripts.brenda_queries import get_modeling_parameters
model_data = get_modeling_parameters("1.1.1.1", substrate="ethanol")
print(f"Km: {model_data['km']}")
print(f"Vmax: {model_data['vmax']}")
print(f"kcat: {model_data['kcat']}")
print(f"Enzyme concentration: {model_data['enzyme_conc']}")
print(f"Temperature: {model_data['temperature']}")
print(f"pH: {model_data['ph']}")
生成米氏方程图:
from scripts.brenda_visualization import plot_michaelis_menten
# 生成动力学图
plot_michaelis_menten("1.1.1.1", substrate="ethanol")
uv pip install zeep requests pandas matplotlib seaborn
BRENDA 需要认证凭据:
BRENDA_EMAIL=your.email@example.com
BRENDA_PASSWORD=your_brenda_password
export BRENDA_EMAIL="your.email@example.com"
export BRENDA_PASSWORD="your_brenda_password"
BRENDA_EMIAL(注意拼写错误)此技能包含用于 BRENDA 数据库查询的全面 Python 脚本:
提供用于酶数据分析的高级函数:
关键函数:
parse_km_entry(entry):解析 BRENDA Km 数据条目parse_reaction_entry(entry):解析反应数据条目extract_organism_data(entry):提取生物体特异性信息search_enzymes_by_substrate(substrate, limit):查找作用于底物的酶search_enzymes_by_product(product, limit):查找产生产物的酶compare_across_organisms(ec_number, organisms):比较酶特性get_environmental_parameters(ec_number):获取 pH 和温度数据get_cofactor_requirements(ec_number):获取辅因子信息get_substrate_specificity(ec_number):分析底物偏好get_inhibitors(ec_number):获取酶抑制数据get_activators(ec_number):获取酶激活数据find_thermophilic_homologs(ec_number, min_temp):寻找热稳定变体get_modeling_parameters(ec_number, substrate):获取动力学建模参数export_kinetic_data(ec_number, format, filename):将数据导出到文件用法:
from scripts.brenda_queries import search_enzymes_by_substrate, compare_across_organisms
# 搜索酶
enzymes = search_enzymes_by_substrate("glucose", limit=20)
# 跨生物体比较
comparison = compare_across_organisms("1.1.1.1", ["E. coli", "S. cerevisiae"])
提供酶数据的可视化函数:
关键函数:
plot_kinetic_parameters(ec_number):绘制 Km 和 kcat 分布图plot_organism_comparison(ec_number, organisms):比较生物体plot_pH_profiles(ec_number):绘制 pH 活性谱图plot_temperature_profiles(ec_number):绘制温度活性谱图plot_substrate_specificity(ec_number):可视化底物偏好plot_michaelis_menten(ec_number, substrate):生成动力学曲线create_heatmap_data(enzymes, parameters):创建热图数据generate_summary_plots(ec_number):创建全面的酶概览图用法:
from scripts.brenda_visualization import plot_kinetic_parameters, plot_michaelis_menten
# 绘制动力学参数图
plot_kinetic_parameters("1.1.1.1")
# 生成米氏方程曲线
plot_michaelis_menten("1.1.1.1", substrate="ethanol")
构建酶促途径和逆合成路线:
关键函数:
find_pathway_for_product(product, max_steps):查找酶促途径build_retrosynthetic_tree(target, depth):构建逆合成树suggest_enzyme_substitutions(ec_number, criteria):建议酶替代方案calculate_pathway_feasibility(pathway):评估途径可行性optimize_pathway_conditions(pathway):建议最优条件generate_pathway_report(pathway, filename):创建详细的途径报告用法:
from scripts.enzyme_pathway_builder import find_pathway_for_product, build_retrosynthetic_tree
# 查找产物合成途径
pathway = find_pathway_for_product("lactate", max_steps=3)
# 构建逆合成树
tree = build_retrosynthetic_tree("lactate", depth=2)
速率限制:
最佳实践:
错误处理:
from brenda_client import get_km_values, get_reactions
from zeep.exceptions import Fault, TransportError
try:
km_data = get_km_values("1.1.1.1")
except RuntimeError as e:
print(f"Authentication error: {e}")
except Fault as e:
print(f"BRENDA API error: {e}")
except TransportError as e:
print(f"Network error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
寻找适用于特定底物的酶:
from brenda_client import get_km_values
from scripts.brenda_queries import search_enzymes_by_substrate, compare_substrate_affinity
# 搜索作用于底物的酶
substrate = "2-phenylethanol"
enzymes = search_enzymes_by_substrate(substrate, limit=15)
print(f"Found {len(enzymes)} enzymes for {substrate}")
for enzyme in enzymes:
print(f"EC {enzyme['ec_number']}: {enzyme['enzyme_name']}")
# 获取最佳候选酶的动力学数据
if enzymes:
best_ec = enzymes[0]['ec_number']
km_data = get_km_values(best_ec, substrate=substrate)
if km_data:
print(f"Kinetic data for {best_ec}:")
for entry in km_data[:3]: # 前 3 个条目
print(f" {entry}")
比较不同生物体间的酶特性:
from scripts.brenda_queries import compare_across_organisms, get_environmental_parameters
# 定义用于比较的生物体
organisms = [
"Escherichia coli",
"Saccharomyces cerevisiae",
"Bacillus subtilis",
"Thermus thermophilus"
]
# 比较乙醇脱氢酶
comparison = compare_across_organisms("1.1.1.1", organisms)
print("Cross-organism comparison:")
for org_data in comparison:
print(f"\n{org_data['organism']}:")
print(f" Average Km: {org_data['average_km']}")
print(f" Optimal pH: {org_data['optimal_ph']}")
print(f" Temperature: {org_data['optimal_temperature']}°C")
# 获取详细的环境参数
env_params = get_environmental_parameters("1.1.1.1")
print(f"\nOverall optimal pH range: {env_params['ph_range']}")
寻找酶改进的工程机会:
from scripts.brenda_queries import (
find_thermophilic_homologs,
find_ph_stable_variants,
compare_substrate_affinity
)
# 寻找热稳定性的嗜热变体
thermophilic = find_thermophilic_homologs("1.1.1.1", min_temp=50)
print(f"Found {len(thermophilic)} thermophilic variants")
# 寻找碱性稳定变体
alkaline = find_ph_stable_variants("1.1.1.1", min_ph=8.0)
print(f"Found {len(alkaline)} alkaline-stable variants")
# 比较底物特异性以寻找工程靶点
specificity = compare_substrate_affinity("1.1.1.1")
print("Substrate affinity ranking:")
for i, sub in enumerate(specificity[:5]):
print(f" {i+1}. {sub['name']}: Km = {sub['km']}")
构建酶促合成途径:
from scripts.enzyme_pathway_builder import (
find_pathway_for_product,
build_retrosynthetic_tree,
calculate_pathway_feasibility
)
# 查找目标产物的合成途径
target = "lactate"
pathway = find_pathway_for_product(target, max_steps=3)
if pathway:
print(f"Found pathway to {target}:")
for i, step in enumerate(pathway['steps']):
print(f" Step {i+1}: {step['reaction']}")
print(f" Enzyme: EC {step['ec_number']}")
print(f" Organism: {step['organism']}")
# 评估途径可行性
feasibility = calculate_pathway_feasibility(pathway)
print(f"\nPathway feasibility score: {feasibility['score']}/10")
print(f"Potential issues: {feasibility['warnings']}")
为酶选择进行全面的动力学分析:
from brenda_client import get_km_values
from scripts.brenda_queries import parse_km_entry, get_modeling_parameters
from scripts.brenda_visualization import plot_kinetic_parameters
# 获取全面的动力学数据
ec_number = "1.1.1.1"
km_data = get_km_values(ec_number)
# 分析动力学参数
all_entries = []
for entry in km_data:
parsed = parse_km_entry(entry)
if parsed['km_value']:
all_entries.append(parsed)
print(f"Analyzed {len(all_entries)} kinetic entries")
# 寻找最佳动力学表现者
best_km = min(all_entries, key=lambda x: x['km_value'])
print(f"\nBest kinetic performer:")
print(f" Organism: {best_km['organism']}")
print(f" Substrate: {best_km['substrate']}")
print(f" Km: {best_km['km_value']}")
# 获取建模参数
model_data = get_modeling_parameters(ec_number, substrate=best_km['substrate'])
print(f"\nModeling parameters:")
print(f" Km: {model_data['km']}")
print(f" kcat: {model_data['kcat']}")
print(f" Vmax: {model_data['vmax']}")
# 生成可视化图表
plot_kinetic_parameters(ec_number)
为工业应用选择酶:
from scripts.brenda_queries import (
find_thermophilic_homologs,
get_environmental_parameters,
get_inhibitors
)
# 工业标准:高温度耐受性,有机溶剂耐受性
target_enzyme = "1.1.1.1"
# 寻找嗜热变体
thermophilic = find_thermophilic_homologs(target_enzyme, min_temp=60)
print(f"Thermophilic candidates: {len(thermophilic)}")
# 检查溶剂耐受性(抑制剂数据)
inhibitors = get_inhibitors(target_enzyme)
solvent_tolerant = [
inv for inv in inhibitors
if 'ethanol' not in inv['name'].lower() and
'methanol' not in inv['name'].lower()
]
print(f"Solvent tolerant candidates: {len(solvent_tolerant)}")
# 评估最佳候选酶
for candidate in thermophilic[:3]:
print(f"\nCandidate: {candidate['organism']}")
print(f" Optimal temp: {candidate['optimal_temperature']}°C")
print(f" Km: {candidate['km']}")
print(f" pH range: {candidate.get('ph_range', 'N/A')}")
BRENDA 以特定格式返回数据,需要解析:
Km 值格式:
organism*Escherichia coli#substrate*ethanol#kmValue*1.2#kmValueMaximum*#commentary*pH 7.4, 25°C#ligandStructureId*#literature*
反应格式:
ecNumber*1.1.1.1#organism*Saccharomyces cerevisiae#reaction*ethanol + NAD+ <=> acetaldehyde + NADH + H+#commentary*#literature*
import re
def parse_brenda_field(data, field_name):
"""从 BRENDA 数据条目中提取特定字段"""
pattern = f"{field_name}\\*([^#]*)"
match = re.search(pattern, data)
return match.group(1) if match else None
def extract_multiple_values(data, field_name):
"""提取字段的多个值"""
pattern = f"{field_name}\\*([^#]*)"
matches = re.findall(pattern, data)
return [match for match in matches if match.strip()]
有关详细的 BRENDA 文档,请参阅 references/api_reference.md。其中包括:
认证错误:
未返回结果:
速率限制:
网络错误:
数据格式问题:
性能问题:
每周安装次数
141
代码仓库
GitHub 星标数
23.5K
首次出现
2026年1月21日
安全审计
安装于
claude-code122
opencode116
gemini-cli110
cursor110
antigravity103
codex101
BRENDA (BRaunschweig ENzyme DAtabase) is the world's most comprehensive enzyme information system, containing detailed enzyme data from scientific literature. Query kinetic parameters (Km, kcat), reaction equations, substrate specificities, organism information, and optimal conditions for enzymes using the official SOAP API. Access over 45,000 enzymes with millions of kinetic data points for biochemical research, metabolic engineering, and enzyme discovery.
This skill should be used when:
Access comprehensive kinetic data for enzymes:
Get Km Values by EC Number :
from brenda_client import get_km_values
# Get Km values for all organisms
km_data = get_km_values("1.1.1.1") # Alcohol dehydrogenase
# Get Km values for specific organism
km_data = get_km_values("1.1.1.1", organism="Saccharomyces cerevisiae")
# Get Km values for specific substrate
km_data = get_km_values("1.1.1.1", substrate="ethanol")
Parse Km Results :
for entry in km_data:
print(f"Km: {entry}")
# Example output: "organism*Homo sapiens#substrate*ethanol#kmValue*1.2#commentary*"
Extract Specific Information :
from scripts.brenda_queries import parse_km_entry, extract_organism_data
for entry in km_data:
parsed = parse_km_entry(entry)
organism = extract_organism_data(entry)
print(f"Organism: {parsed['organism']}")
print(f"Substrate: {parsed['substrate']}")
print(f"Km value: {parsed['km_value']}")
print(f"pH: {parsed.get('ph', 'N/A')}")
print(f"Temperature: {parsed.get('temperature', 'N/A')}")
Retrieve reaction equations and details:
Get Reactions by EC Number :
from brenda_client import get_reactions
# Get all reactions for EC number
reactions = get_reactions("1.1.1.1")
# Filter by organism
reactions = get_reactions("1.1.1.1", organism="Escherichia coli")
# Search specific reaction
reactions = get_reactions("1.1.1.1", reaction="ethanol + NAD+")
Process Reaction Data :
from scripts.brenda_queries import parse_reaction_entry, extract_substrate_products
for reaction in reactions:
parsed = parse_reaction_entry(reaction)
substrates, products = extract_substrate_products(reaction)
print(f"Reaction: {parsed['reaction']}")
print(f"Organism: {parsed['organism']}")
print(f"Substrates: {substrates}")
print(f"Products: {products}")
Find enzymes for specific biochemical transformations:
Find Enzymes by Substrate :
from scripts.brenda_queries import search_enzymes_by_substrate
# Find enzymes that act on glucose
enzymes = search_enzymes_by_substrate("glucose", limit=20)
for enzyme in enzymes:
print(f"EC: {enzyme['ec_number']}")
print(f"Name: {enzyme['enzyme_name']}")
print(f"Reaction: {enzyme['reaction']}")
Find Enzymes by Product :
from scripts.brenda_queries import search_enzymes_by_product
# Find enzymes that produce lactate
enzymes = search_enzymes_by_product("lactate", limit=10)
Search by Reaction Pattern :
from scripts.brenda_queries import search_by_pattern
# Find oxidation reactions
enzymes = search_by_pattern("oxidation", limit=15)
Compare enzyme properties across organisms:
Get Enzyme Data for Multiple Organisms :
from scripts.brenda_queries import compare_across_organisms
organisms = ["Escherichia coli", "Saccharomyces cerevisiae", "Homo sapiens"]
comparison = compare_across_organisms("1.1.1.1", organisms)
for org_data in comparison:
print(f"Organism: {org_data['organism']}")
print(f"Avg Km: {org_data['average_km']}")
print(f"Optimal pH: {org_data['optimal_ph']}")
print(f"Temperature range: {org_data['temperature_range']}")
Find Organisms with Specific Enzyme :
from scripts.brenda_queries import get_organisms_for_enzyme
organisms = get_organisms_for_enzyme("6.3.5.5") # Glutamine synthetase
print(f"Found {len(organisms)} organisms with this enzyme")
Access optimal conditions and environmental parameters:
Get pH and Temperature Data :
from scripts.brenda_queries import get_environmental_parameters
params = get_environmental_parameters("1.1.1.1")
print(f"Optimal pH range: {params['ph_range']}")
print(f"Optimal temperature: {params['optimal_temperature']}")
print(f"Stability pH: {params['stability_ph']}")
print(f"Temperature stability: {params['temperature_stability']}")
Cofactor Requirements :
from scripts.brenda_queries import get_cofactor_requirements
cofactors = get_cofactor_requirements("1.1.1.1")
for cofactor in cofactors:
print(f"Cofactor: {cofactor['name']}")
print(f"Type: {cofactor['type']}")
print(f"Concentration: {cofactor['concentration']}")
Analyze enzyme substrate preferences:
Get Substrate Specificity Data :
from scripts.brenda_queries import get_substrate_specificity
specificity = get_substrate_specificity("1.1.1.1")
for substrate in specificity:
print(f"Substrate: {substrate['name']}")
print(f"Km: {substrate['km']}")
print(f"Vmax: {substrate['vmax']}")
print(f"kcat: {substrate['kcat']}")
print(f"Specificity constant: {substrate['kcat_km_ratio']}")
Compare Substrate Preferences :
from scripts.brenda_queries import compare_substrate_affinity
comparison = compare_substrate_affinity("1.1.1.1")
sorted_by_km = sorted(comparison, key=lambda x: x['km'])
for substrate in sorted_by_km[:5]: # Top 5 lowest Km
print(f"{substrate['name']}: Km = {substrate['km']}")
Access enzyme regulation data:
Get Inhibitor Information :
from scripts.brenda_queries import get_inhibitors
inhibitors = get_inhibitors("1.1.1.1")
for inhibitor in inhibitors:
print(f"Inhibitor: {inhibitor['name']}")
print(f"Type: {inhibitor['type']}")
print(f"Ki: {inhibitor['ki']}")
print(f"IC50: {inhibitor['ic50']}")
Get Activator Information :
from scripts.brenda_queries import get_activators
activators = get_activators("1.1.1.1")
for activator in activators:
print(f"Activator: {activator['name']}")
print(f"Effect: {activator['effect']}")
print(f"Mechanism: {activator['mechanism']}")
Find engineering targets and alternatives:
Find Thermophilic Homologs :
from scripts.brenda_queries import find_thermophilic_homologs
thermophilic = find_thermophilic_homologs("1.1.1.1", min_temp=50)
for enzyme in thermophilic:
print(f"Organism: {enzyme['organism']}")
print(f"Optimal temp: {enzyme['optimal_temperature']}")
print(f"Km: {enzyme['km']}")
Find Alkaline/ Acid Stable Variants :
from scripts.brenda_queries import find_ph_stable_variants
alkaline = find_ph_stable_variants("1.1.1.1", min_ph=8.0)
acidic = find_ph_stable_variants("1.1.1.1", max_ph=6.0)
Prepare data for kinetic modeling:
Get Kinetic Parameters for Modeling :
from scripts.brenda_queries import get_modeling_parameters
model_data = get_modeling_parameters("1.1.1.1", substrate="ethanol")
print(f"Km: {model_data['km']}")
print(f"Vmax: {model_data['vmax']}")
print(f"kcat: {model_data['kcat']}")
print(f"Enzyme concentration: {model_data['enzyme_conc']}")
print(f"Temperature: {model_data['temperature']}")
print(f"pH: {model_data['ph']}")
Generate Michaelis-Menten Plots :
from scripts.brenda_visualization import plot_michaelis_menten
# Generate kinetic plots
plot_michaelis_menten("1.1.1.1", substrate="ethanol")
uv pip install zeep requests pandas matplotlib seaborn
BRENDA requires authentication credentials:
BRENDA_EMAIL=your.email@example.com
BRENDA_PASSWORD=your_brenda_password
2. Or set environment variables :
export BRENDA_EMAIL="your.email@example.com"
export BRENDA_PASSWORD="your_brenda_password"
3. Register for BRENDA access :
* Visit https://www.brenda-enzymes.org/
* Create an account
* Check your email for credentials
* Note: There's also BRENDA_EMIAL (note the typo) for legacy support
This skill includes comprehensive Python scripts for BRENDA database queries:
Provides high-level functions for enzyme data analysis:
Key Functions :
parse_km_entry(entry): Parse BRENDA Km data entriesparse_reaction_entry(entry): Parse reaction data entriesextract_organism_data(entry): Extract organism-specific informationsearch_enzymes_by_substrate(substrate, limit): Find enzymes for substratessearch_enzymes_by_product(product, limit): Find enzymes producing productscompare_across_organisms(ec_number, organisms): Compare enzyme propertiesget_environmental_parameters(ec_number): Get pH and temperature dataget_cofactor_requirements(ec_number): Get cofactor informationUsage :
from scripts.brenda_queries import search_enzymes_by_substrate, compare_across_organisms
# Search for enzymes
enzymes = search_enzymes_by_substrate("glucose", limit=20)
# Compare across organisms
comparison = compare_across_organisms("1.1.1.1", ["E. coli", "S. cerevisiae"])
Provides visualization functions for enzyme data:
Key Functions :
plot_kinetic_parameters(ec_number): Plot Km and kcat distributionsplot_organism_comparison(ec_number, organisms): Compare organismsplot_pH_profiles(ec_number): Plot pH activity profilesplot_temperature_profiles(ec_number): Plot temperature activity profilesplot_substrate_specificity(ec_number): Visualize substrate preferencesplot_michaelis_menten(ec_number, substrate): Generate kinetic curvescreate_heatmap_data(enzymes, parameters): Create data for heatmapsgenerate_summary_plots(ec_number): Create comprehensive enzyme overviewUsage :
from scripts.brenda_visualization import plot_kinetic_parameters, plot_michaelis_menten
# Plot kinetic parameters
plot_kinetic_parameters("1.1.1.1")
# Generate Michaelis-Menten curve
plot_michaelis_menten("1.1.1.1", substrate="ethanol")
Build enzymatic pathways and retrosynthetic routes:
Key Functions :
find_pathway_for_product(product, max_steps): Find enzymatic pathwaysbuild_retrosynthetic_tree(target, depth): Build retrosynthetic treesuggest_enzyme_substitutions(ec_number, criteria): Suggest enzyme alternativescalculate_pathway_feasibility(pathway): Evaluate pathway viabilityoptimize_pathway_conditions(pathway): Suggest optimal conditionsgenerate_pathway_report(pathway, filename): Create detailed pathway reportUsage :
from scripts.enzyme_pathway_builder import find_pathway_for_product, build_retrosynthetic_tree
# Find pathway to product
pathway = find_pathway_for_product("lactate", max_steps=3)
# Build retrosynthetic tree
tree = build_retrosynthetic_tree("lactate", depth=2)
Rate Limits :
Best Practices :
Error Handling :
from brenda_client import get_km_values, get_reactions
from zeep.exceptions import Fault, TransportError
try:
km_data = get_km_values("1.1.1.1")
except RuntimeError as e:
print(f"Authentication error: {e}")
except Fault as e:
print(f"BRENDA API error: {e}")
except TransportError as e:
print(f"Network error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
Find suitable enzymes for a specific substrate:
from brenda_client import get_km_values
from scripts.brenda_queries import search_enzymes_by_substrate, compare_substrate_affinity
# Search for enzymes that act on substrate
substrate = "2-phenylethanol"
enzymes = search_enzymes_by_substrate(substrate, limit=15)
print(f"Found {len(enzymes)} enzymes for {substrate}")
for enzyme in enzymes:
print(f"EC {enzyme['ec_number']}: {enzyme['enzyme_name']}")
# Get kinetic data for best candidates
if enzymes:
best_ec = enzymes[0]['ec_number']
km_data = get_km_values(best_ec, substrate=substrate)
if km_data:
print(f"Kinetic data for {best_ec}:")
for entry in km_data[:3]: # First 3 entries
print(f" {entry}")
Compare enzyme properties across different organisms:
from scripts.brenda_queries import compare_across_organisms, get_environmental_parameters
# Define organisms for comparison
organisms = [
"Escherichia coli",
"Saccharomyces cerevisiae",
"Bacillus subtilis",
"Thermus thermophilus"
]
# Compare alcohol dehydrogenase
comparison = compare_across_organisms("1.1.1.1", organisms)
print("Cross-organism comparison:")
for org_data in comparison:
print(f"\n{org_data['organism']}:")
print(f" Average Km: {org_data['average_km']}")
print(f" Optimal pH: {org_data['optimal_ph']}")
print(f" Temperature: {org_data['optimal_temperature']}°C")
# Get detailed environmental parameters
env_params = get_environmental_parameters("1.1.1.1")
print(f"\nOverall optimal pH range: {env_params['ph_range']}")
Find engineering opportunities for enzyme improvement:
from scripts.brenda_queries import (
find_thermophilic_homologs,
find_ph_stable_variants,
compare_substrate_affinity
)
# Find thermophilic variants for heat stability
thermophilic = find_thermophilic_homologs("1.1.1.1", min_temp=50)
print(f"Found {len(thermophilic)} thermophilic variants")
# Find alkaline-stable variants
alkaline = find_ph_stable_variants("1.1.1.1", min_ph=8.0)
print(f"Found {len(alkaline)} alkaline-stable variants")
# Compare substrate specificities for engineering targets
specificity = compare_substrate_affinity("1.1.1.1")
print("Substrate affinity ranking:")
for i, sub in enumerate(specificity[:5]):
print(f" {i+1}. {sub['name']}: Km = {sub['km']}")
Build enzymatic synthesis pathways:
from scripts.enzyme_pathway_builder import (
find_pathway_for_product,
build_retrosynthetic_tree,
calculate_pathway_feasibility
)
# Find pathway to target product
target = "lactate"
pathway = find_pathway_for_product(target, max_steps=3)
if pathway:
print(f"Found pathway to {target}:")
for i, step in enumerate(pathway['steps']):
print(f" Step {i+1}: {step['reaction']}")
print(f" Enzyme: EC {step['ec_number']}")
print(f" Organism: {step['organism']}")
# Evaluate pathway feasibility
feasibility = calculate_pathway_feasibility(pathway)
print(f"\nPathway feasibility score: {feasibility['score']}/10")
print(f"Potential issues: {feasibility['warnings']}")
Comprehensive kinetic analysis for enzyme selection:
from brenda_client import get_km_values
from scripts.brenda_queries import parse_km_entry, get_modeling_parameters
from scripts.brenda_visualization import plot_kinetic_parameters
# Get comprehensive kinetic data
ec_number = "1.1.1.1"
km_data = get_km_values(ec_number)
# Analyze kinetic parameters
all_entries = []
for entry in km_data:
parsed = parse_km_entry(entry)
if parsed['km_value']:
all_entries.append(parsed)
print(f"Analyzed {len(all_entries)} kinetic entries")
# Find best kinetic performer
best_km = min(all_entries, key=lambda x: x['km_value'])
print(f"\nBest kinetic performer:")
print(f" Organism: {best_km['organism']}")
print(f" Substrate: {best_km['substrate']}")
print(f" Km: {best_km['km_value']}")
# Get modeling parameters
model_data = get_modeling_parameters(ec_number, substrate=best_km['substrate'])
print(f"\nModeling parameters:")
print(f" Km: {model_data['km']}")
print(f" kcat: {model_data['kcat']}")
print(f" Vmax: {model_data['vmax']}")
# Generate visualization
plot_kinetic_parameters(ec_number)
Select enzymes for industrial applications:
from scripts.brenda_queries import (
find_thermophilic_homologs,
get_environmental_parameters,
get_inhibitors
)
# Industrial criteria: high temperature tolerance, organic solvent resistance
target_enzyme = "1.1.1.1"
# Find thermophilic variants
thermophilic = find_thermophilic_homologs(target_enzyme, min_temp=60)
print(f"Thermophilic candidates: {len(thermophilic)}")
# Check solvent tolerance (inhibitor data)
inhibitors = get_inhibitors(target_enzyme)
solvent_tolerant = [
inv for inv in inhibitors
if 'ethanol' not in inv['name'].lower() and
'methanol' not in inv['name'].lower()
]
print(f"Solvent tolerant candidates: {len(solvent_tolerant)}")
# Evaluate top candidates
for candidate in thermophilic[:3]:
print(f"\nCandidate: {candidate['organism']}")
print(f" Optimal temp: {candidate['optimal_temperature']}°C")
print(f" Km: {candidate['km']}")
print(f" pH range: {candidate.get('ph_range', 'N/A')}")
BRENDA returns data in specific formats that need parsing:
Km Value Format :
organism*Escherichia coli#substrate*ethanol#kmValue*1.2#kmValueMaximum*#commentary*pH 7.4, 25°C#ligandStructureId*#literature*
Reaction Format :
ecNumber*1.1.1.1#organism*Saccharomyces cerevisiae#reaction*ethanol + NAD+ <=> acetaldehyde + NADH + H+#commentary*#literature*
import re
def parse_brenda_field(data, field_name):
"""Extract specific field from BRENDA data entry"""
pattern = f"{field_name}\\*([^#]*)"
match = re.search(pattern, data)
return match.group(1) if match else None
def extract_multiple_values(data, field_name):
"""Extract multiple values for a field"""
pattern = f"{field_name}\\*([^#]*)"
matches = re.findall(pattern, data)
return [match for match in matches if match.strip()]
For detailed BRENDA documentation, see references/api_reference.md. This includes:
Authentication Errors :
No Results Returned :
Rate Limiting :
Network Errors :
Data Format Issues :
Performance Issues :
Weekly Installs
141
Repository
GitHub Stars
23.5K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
claude-code122
opencode116
gemini-cli110
cursor110
antigravity103
codex101
lark-cli 共享规则:飞书资源操作指南与权限配置详解
39,000 周安装
get_substrate_specificity(ec_number): Analyze substrate preferencesget_inhibitors(ec_number): Get enzyme inhibition dataget_activators(ec_number): Get enzyme activation datafind_thermophilic_homologs(ec_number, min_temp): Find heat-stable variantsget_modeling_parameters(ec_number, substrate): Get parameters for kinetic modelingexport_kinetic_data(ec_number, format, filename): Export data to file