$npx -y skills add ai4protein/VenusFactory2 --skill brenda_databaseAccess 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 | # BRENDA Database |
| 2 | |
| 3 | ## Overview |
| 4 | |
| 5 | BRENDA (BRaunschweig ENzyme DAtabase) is the world's most comprehensive enzyme information system, containing detailed enzyme data from scientific literature. **In this project the agent exposes only download tools**: save Km values, reactions, enzyme-by-substrate results, organism comparison, environmental parameters, kinetic data export, and pathway reports to files; each returns JSON `{success, file_path[, error]}`. For programmatic use, the package also provides query-style APIs (see Project Modules). Access over 45,000 enzymes with millions of kinetic data points for biochemical research, metabolic engineering, and enzyme discovery. |
| 6 | |
| 7 | ## When to Use This Skill |
| 8 | |
| 9 | This skill should be used when: |
| 10 | - Searching for enzyme kinetic parameters (Km, kcat, Vmax) |
| 11 | - Retrieving reaction equations and stoichiometry |
| 12 | - Finding enzymes for specific substrates or reactions |
| 13 | - Comparing enzyme properties across different organisms |
| 14 | - Investigating optimal pH, temperature, and conditions |
| 15 | - Accessing enzyme inhibition and activation data |
| 16 | - Supporting metabolic pathway reconstruction and retrosynthesis |
| 17 | - Performing enzyme engineering and optimization studies |
| 18 | - Analyzing substrate specificity and cofactor requirements |
| 19 | |
| 20 | ## Quick Start |
| 21 | |
| 22 | The skill provides: |
| 23 | 1. **Agent tools (download only)** in `src/tools/search/tools_agent.py`: the agent exposes only **download** operations; each returns JSON `{success, file_path[, error]}`. See table below. |
| 24 | 2. **Project modules** in `src/tools/database/brenda/`: `brenda_client.py` (SOAP), `brenda_queries.py`, `enzyme_pathway_builder.py`, `brenda_operations.py`; all re-exported via package. For programmatic use (including query-style APIs), import e.g. `from src.tools.database.brenda import download_brenda_km_values_by_ec_number, query_brenda_km_values_by_ec_number, ...`. |
| 25 | 3. Reference: `references/api_reference.md` |
| 26 | |
| 27 | ### Agent Tools (Download Only) |
| 28 | |
| 29 | | Tool name | Arguments | Purpose | |
| 30 | |-----------|-----------|---------| |
| 31 | | `download_brenda_km_values_by_ec_number` | `ec_number`, `out_path`, `organism` (optional), `substrate` (optional) | Download Km values by EC number to .json or .txt | |
| 32 | | `download_brenda_reactions_by_ec_number` | `ec_number`, `out_path`, `organism` (optional) | Download reaction equations by EC number to file | |
| 33 | | `download_brenda_enzymes_by_substrate` | `substrate`, `out_path`, `limit` (optional) | Download enzyme-by-substrate search results to JSON | |
| 34 | | `download_brenda_compare_organisms_by_ec_number` | `ec_number`, `organisms`, `out_path` | Download organism comparison by EC number to JSON | |
| 35 | | `download_brenda_environmental_parameters_by_ec_number` | `ec_number`, `out_path` | Download environmental parameters (pH, temperature) by EC number to JSON | |
| 36 | | `download_brenda_kinetic_data_by_ec_number` | `ec_number`, `out_path`, `format` (optional: json/csv) | Download kinetic data export by EC number to file | |
| 37 | | `download_brenda_pathway_report` | `pathway` (dict), `out_path` | Generate and save pathway report from pathway data to file | |
| 38 | |
| 39 | All require `BRENDA_EMAIL` and `BRENDA_PASSWORD` in the environment. |
| 40 | |
| 41 | ### Project Modules (Programmatic Use) |
| 42 | |
| 43 | | Capability | Function | Module | Purpose | |
| 44 | |------------|----------|--------|---------| |
| 45 | | SOAP Km | `get_km_values(ec_number, organism=*, substrate=*)` | brenda_client.py | Raw Km entries from BRENDA | |
| 46 | | SOAP reactions | `get_reactions(ec_number, organism=*, reaction=*)` | brenda_client.py | Raw reaction entries | |
| 47 | | Parse Km | `parse_km_entry(entry)` | brenda_queries.py | Parse Km string to dict | |
| 48 | | Parse reaction | `parse_reaction_entry(entry)`, `extract_substrate_products(entry)` | brenda_queries.py | Parse reaction / get substrates & products | |
| 49 | | Organism data | `extract_organism_data(entry)` | brenda_queries.py | Extract organism info from entry | |
| 50 | | Search by substrate | `search_enzymes_by_substrate(substrate, limit)` | brenda_queries.py | Find enzymes for substrate | |
| 51 | | Search by product | `search_enzymes_by_product(product, limit)` | brenda_queries.py | Find enzymes producing product | |
| 52 | | Search by pattern | `search_by_pattern(pattern, limit)` | brenda_queries.py | Find enzymes by reaction pattern | |
| 53 | | Compare organisms | `compare_across_organisms(ec_number, organisms)` | brenda_queries.py | Compare enzyme data across organisms | |
| 54 | | Organisms for enzyme | `get_organisms_for_enzyme(ec_number)` | brenda_queries.py | List organisms with enzyme | |
| 55 | | Environmental params | `get_environmental_parameters(ec_number)` | brenda_queries.py | pH, temperature, stability | |
| 56 | | Cofactors | `get_cofactor_requirements(ec_number)` | brenda_queries.py | Cofactor requirements | |
| 57 | | Substrate specificity | `get_substrate_ |