jpskill.com
🛠️ 開発・MCP コミュニティ

brenda-database

Access BRENDA enzyme database via SOAP API. Retrieve kinetic parameters (Km, kcat), reaction equations, organism data, and substrate-specific enzyme information for biochemical research and metabolic pathway analysis.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o brenda-database.zip https://jpskill.com/download/18351.zip && unzip -o brenda-database.zip && rm brenda-database.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18351.zip -OutFile "$d\brenda-database.zip"; Expand-Archive "$d\brenda-database.zip" -DestinationPath $d -Force; ri "$d\brenda-database.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して brenda-database.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → brenda-database フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
5

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

BRENDA Database

概要

BRENDA (BRaunschweig ENzyme DAtabase) は、科学文献からの詳細な酵素データを含む、世界で最も包括的な酵素情報システムです。公式の SOAP API を使用して、酵素の速度定数(Km、kcat)、反応式、基質特異性、生物情報、および最適条件をクエリします。生化学研究、代謝工学、および酵素発見のために、数百万の速度データポイントを持つ45,000を超える酵素にアクセスできます。

この Skill を使用するべき時

この Skill は、以下の場合に使用する必要があります。

  • 酵素速度定数(Km、kcat、Vmax)を検索する場合
  • 反応式と化学量論を取得する場合
  • 特定の基質または反応に対する酵素を見つける場合
  • 異なる生物間で酵素の特性を比較する場合
  • 最適な pH、温度、および条件を調査する場合
  • 酵素阻害および活性化データにアクセスする場合
  • 代謝経路の再構築と逆合成をサポートする場合
  • 酵素工学および最適化研究を実施する場合
  • 基質特異性と補因子要件を分析する場合

主要な機能

1. 速度定数取得

酵素に関する包括的な速度データにアクセスします。

EC番号でKm値を取得する:

from brenda_client import get_km_values

# すべての生物の Km 値を取得する
km_data = get_km_values("1.1.1.1")  # Alcohol dehydrogenase

# 特定の生物の 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*"

特定情報を抽出する:

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')}")

2. 反応情報

反応式と詳細を取得します。

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}")

3. 酵素発見

特定の生化学的変換に対する酵素を見つけます。

基質で酵素を検索する:

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)

4. 生物固有の酵素データ

生物間で酵素の特性を比較します。

複数の生物の酵素データを取得する:

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")  # Glutamine synthetase
print(f"Found {len(organisms)} organisms with this enzyme")

5. 環境パラメータ

最適な条件と環境パラメータにアクセスします。

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']}")

6. 基質特異性

酵素の基質選好性を分析します。

基質特異性データを取得する:

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']}")

基質選好性を比較する

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

BRENDA Database

Overview

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.

When to Use This Skill

This skill should be used when:

  • Searching for enzyme kinetic parameters (Km, kcat, Vmax)
  • Retrieving reaction equations and stoichiometry
  • Finding enzymes for specific substrates or reactions
  • Comparing enzyme properties across different organisms
  • Investigating optimal pH, temperature, and conditions
  • Accessing enzyme inhibition and activation data
  • Supporting metabolic pathway reconstruction and retrosynthesis
  • Performing enzyme engineering and optimization studies
  • Analyzing substrate specificity and cofactor requirements

Core Capabilities

1. Kinetic Parameter Retrieval

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')}")

2. Reaction Information

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}")

3. Enzyme Discovery

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)

4. Organism-Specific Enzyme Data

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")

5. Environmental Parameters

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']}")

6. Substrate Specificity

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']}")

7. Inhibition and Activation

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']}")

8. Enzyme Engineering Support

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)

9. Kinetic Modeling

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")

Installation Requirements

uv pip install zeep requests pandas matplotlib seaborn

Authentication Setup

BRENDA requires authentication credentials:

  1. Create .env file:

    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

Helper Scripts

This skill includes comprehensive Python scripts for BRENDA database queries:

scripts/brenda_queries.py

Provides high-level functions for enzyme data analysis:

Key Functions:

  • parse_km_entry(entry): Parse BRENDA Km data entries
  • parse_reaction_entry(entry): Parse reaction data entries
  • extract_organism_data(entry): Extract organism-specific information
  • search_enzymes_by_substrate(substrate, limit): Find enzymes for substrates
  • search_enzymes_by_product(product, limit): Find enzymes producing products
  • compare_across_organisms(ec_number, organisms): Compare enzyme properties
  • get_environmental_parameters(ec_number): Get pH and temperature data
  • get_cofactor_requirements(ec_number): Get cofactor information
  • get_substrate_specificity(ec_number): Analyze substrate preferences
  • get_inhibitors(ec_number): Get enzyme inhibition data
  • get_activators(ec_number): Get enzyme activation data
  • find_thermophilic_homologs(ec_number, min_temp): Find heat-stable variants
  • get_modeling_parameters(ec_number, substrate): Get parameters for kinetic modeling
  • export_kinetic_data(ec_number, format, filename): Export data to file

Usage:

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"])

scripts/brenda_visualization.py

Provides visualization functions for enzyme data:

Key Functions:

  • plot_kinetic_parameters(ec_number): Plot Km and kcat distributions
  • plot_organism_comparison(ec_number, organisms): Compare organisms
  • plot_pH_profiles(ec_number): Plot pH activity profiles
  • plot_temperature_profiles(ec_number): Plot temperature activity profiles
  • plot_substrate_specificity(ec_number): Visualize substrate preferences
  • plot_michaelis_menten(ec_number, substrate): Generate kinetic curves
  • create_heatmap_data(enzymes, parameters): Create data for heatmaps
  • generate_summary_plots(ec_number): Create comprehensive enzyme overview

Usage:

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")

scripts/enzyme_pathway_builder.py

Build enzymatic pathways and retrosynthetic routes:

Key Functions:

  • find_pathway_for_product(product, max_steps): Find enzymatic pathways
  • build_retrosynthetic_tree(target, depth): Build retrosynthetic tree
  • suggest_enzyme_substitutions(ec_number, criteria): Suggest enzyme alternatives
  • calculate_pathway_feasibility(pathway): Evaluate pathway viability
  • optimize_pathway_conditions(pathway): Suggest optimal conditions
  • generate_pathway_report(pathway, filename): Create detailed pathway report

Usage:

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)

API Rate Limits and Best Practices

Rate Limits:

  • BRENDA API has moderate rate limiting
  • Recommended: 1 request per second for sustained usage
  • Maximum: 5 requests per 10 seconds

Best Practices:

  1. Cache results: Store frequently accessed enzyme data locally
  2. Batch queries: Combine related requests when possible
  3. Use specific searches: Narrow down by organism, substrate when possible
  4. Handle missing data: Not all enzymes have complete data
  5. Validate EC numbers: Ensure EC numbers are in correct format
  6. Implement delays: Add delays between consecutive requests
  7. Use wildcards wisely: Use '*' for broader searches when appropriate
  8. Monitor quota: Track your API usage

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}")

Common Workflows

Workflow 1: Enzyme Discovery for New Substrate

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}")

Workflow 2: Cross-Organism Enzyme Comparison

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']}")

Workflow 3: Enzyme Engineering Target Identification

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']}")

Workflow 4: Enzymatic Pathway Construction

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']}")

Workflow 5: Kinetic Parameter Analysis

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)

Workflow 6: Industrial Enzyme Selection

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')}")

Data Formats and Parsing

BRENDA Response Format

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*

Data Extraction Patterns

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()]

Reference Documentation

For detailed BRENDA documentation, see references/api_reference.md. This includes:

  • Complete SOAP API method documentation
  • Full parameter lists and formats
  • EC number structure and validation
  • Response format specifications
  • Error codes and handling
  • Data field definitions
  • Literature citation formats

Troubleshooting

Authentication Errors:

  • Verify BRENDA_EMAIL and BRENDA_PASSWORD in .env file
  • Check for correct spelling (note BRENDA_EMIAL legacy support)
  • Ensure BRENDA account is active and has API access

No Results Returned:

  • Try broader searches with wildcards (*)
  • Check EC number format (e.g., "1.1.1.1" not "1.1.1")
  • Verify substrate spelling and naming
  • Some enzymes may have limited data in BRENDA

Rate Limiting:

  • Add delays between requests (0.5-1 second)
  • Cache results locally
  • Use more specific queries to reduce data volume
  • Consider batch operations for multiple queries

Network Errors:

  • Check internet connection
  • BRENDA server may be temporarily unavailable
  • Try again after a few minutes
  • Consider using VPN if geo-restricted

Data Format Issues:

  • Use the provided parsing functions in scripts
  • BRENDA data can be inconsistent in formatting
  • Handle missing fields gracefully
  • Validate parsed data before use

Performance Issues:

  • Large queries can be slow; limit search scope
  • Use specific organism or substrate filters
  • Consider asynchronous processing for batch operations
  • Monitor memory usage with large datasets

Additional Resources

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。