Loading...
Loading...
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.
npx skill4agent add davila7/claude-code-templates brenda-databasefrom 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")for entry in km_data:
print(f"Km: {entry}")
# Example output: "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')}")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+")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
# 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']}")from scripts.brenda_queries import search_enzymes_by_product
# Find enzymes that produce lactate
enzymes = search_enzymes_by_product("lactate", limit=10)from scripts.brenda_queries import search_by_pattern
# Find oxidation reactions
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") # Glutamine synthetase
print(f"Found {len(organisms)} organisms with this enzyme")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]: # Top 5 lowest 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
# Generate kinetic plots
plot_michaelis_menten("1.1.1.1", substrate="ethanol")uv pip install zeep requests pandas matplotlib seabornBRENDA_EMAIL=your.email@example.com
BRENDA_PASSWORD=your_brenda_passwordexport BRENDA_EMAIL="your.email@example.com"
export BRENDA_PASSWORD="your_brenda_password"BRENDA_EMIALparse_km_entry(entry)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)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
# 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"])plot_kinetic_parameters(ec_number)plot_organism_comparison(ec_number, organisms)plot_pH_profiles(ec_number)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
plot_kinetic_parameters("1.1.1.1")
# Generate Michaelis-Menten curve
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
# Find pathway to product
pathway = find_pathway_for_product("lactate", max_steps=3)
# Build retrosynthetic tree
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
# 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}")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']}")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']}")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']}")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)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')}")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):
"""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()]references/api_reference.md