diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml index a12225aa..217f47e5 100644 --- a/.github/workflows/claude-code-review.yml +++ b/.github/workflows/claude-code-review.yml @@ -27,52 +27,35 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 1 - name: Run Claude Code Review id: claude-review - uses: anthropics/claude-code-action@beta + uses: anthropics/claude-code-action@v1 with: claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1) - # model: "claude-opus-4-1-20250805" + # In v1, providing a `prompt` runs in automation mode, which does NOT + # post a comment by default. track_progress restores the v0.x + # "post the review as a PR comment" behavior and auto-injects PR context. + track_progress: true - # Direct prompt for automated review (no @claude mention needed) - direct_prompt: | + # Prompt for the automated review (no @claude mention needed). + prompt: | Please review this pull request and provide feedback on: - Code quality and best practices - Potential bugs or issues - Performance considerations - Security concerns - Test coverage - + Be constructive and helpful in your feedback. - # Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR - # use_sticky_comment: true - - # Optional: Customize review based on file types - # direct_prompt: | - # Review this PR focusing on: - # - For TypeScript files: Type safety and proper interface usage - # - For API endpoints: Security, input validation, and error handling - # - For React components: Performance, accessibility, and best practices - # - For tests: Coverage, edge cases, and test quality - - # Optional: Different prompts for different authors - # direct_prompt: | - # ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' && - # 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' || - # 'Please provide a thorough code review focusing on our coding standards and best practices.' }} - - # Optional: Add specific tools for running tests or linting - # allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)" - - # Optional: Skip review for certain conditions - # if: | - # !contains(github.event.pull_request.title, '[skip-review]') && - # !contains(github.event.pull_request.title, '[WIP]') + # Args passed through to the Claude CLI. Use the `opus` alias rather + # than a dated model id so the workflow tracks the current Opus and + # won't 404 when a specific version is retired. + claude_args: | + --model opus diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index 33f5b101..e315522d 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -31,65 +31,37 @@ jobs: actions: read # Required for Claude to read CI results on PRs steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 1 - name: Install uv uses: astral-sh/setup-uv@v7 - + - name: Install python tools run: | uv sync - name: Run Claude Code id: claude - uses: anthropics/claude-code-action@beta - + uses: anthropics/claude-code-action@v1 + with: claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} - mcp_config: | - { - "mcpServers": { - "ols": { - "command": "uvx", - "args": [ - "ols-mcp" - ] - }, - "sequential-thinking": { - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-sequential-thinking" - ] - } - } - } # This is an optional setting that allows Claude to read CI results on PRs additional_permissions: | actions: read - - # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1) - # model: "claude-opus-4-1-20250805" - + + # In v1 the model, MCP servers, and allowed tools are passed through to + # the Claude CLI via claude_args (the v0.x model / mcp_config / + # allowed_tools inputs were removed). The `opus` alias tracks the + # current Opus so this won't 404 when a dated model id is retired. + claude_args: | + --model opus + --mcp-config '{"mcpServers":{"ols":{"command":"uvx","args":["ols-mcp"]},"sequential-thinking":{"command":"npx","args":["-y","@modelcontextprotocol/server-sequential-thinking"]}}}' + --allowedTools "Bash(*),FileEdit,Edit,MultiEdit,WebSearch,WebFetch,mcp__ols_mcp__search_all_ontologies,mcp__ols_mcp__get_terms_from_ontology" + # Optional: Customize the trigger phrase (default: @claude) # trigger_phrase: "/claude" - - # Optional: Trigger when specific user is assigned to an issue - # assignee_trigger: "claude-bot" - - # Optional: Allow Claude to run specific commands - allowed_tools: "Bash(*),FileEdit,Edit,MultiEdit,WebSearch,WebFetch,mcp__ols_mcp__search_all_ontologies,mcp__ols_mcp__get_terms_from_ontology" - - # Optional: Add custom instructions for Claude to customize its behavior for your project - # custom_instructions: | - # Follow our coding standards - # Ensure all new code has tests - # Use TypeScript for new files - - # Optional: Custom environment variables for Claude - # claude_env: | - # NODE_ENV: test diff --git a/cache/chebi/terms.csv b/cache/chebi/terms.csv index 67fa214c..9f2400bf 100644 --- a/cache/chebi/terms.csv +++ b/cache/chebi/terms.csv @@ -253,3 +253,11 @@ CHEBI:33371,technetium-99,2026-02-14T13:12:45.429091 CHEBI:33388,plutonium atom,2026-02-14T13:12:45.429768 CHEBI:33389,americium atom,2026-02-14T13:12:45.430292 CHEBI:52636,iodine-129 atom,2026-02-14T13:12:45.431463 +CHEBI:17287,N-phosphocreatine,2026-06-23T05:39:54.423305 +CHEBI:18021,phosphoenolpyruvate,2026-06-23T05:39:54.424513 +CHEBI:15350,acetyl dihydrogen phosphate,2026-06-23T05:39:54.425221 +CHEBI:17794,3-phospho-D-glyceric acid,2026-06-23T05:39:54.425989 +CHEBI:17634,D-glucose,2026-06-23T05:39:54.426683 +CHEBI:14314,D-glucose 6-phosphate,2026-06-23T05:39:54.427283 +CHEBI:17306,maltose,2026-06-23T05:39:54.427948 +CHEBI:15361,pyruvate,2026-06-23T05:39:54.428673 diff --git a/cache/ncit/terms.csv b/cache/ncit/terms.csv index 5db49c9d..c69881c2 100644 --- a/cache/ncit/terms.csv +++ b/cache/ncit/terms.csv @@ -428,3 +428,4 @@ NCIT:C68769,Decontamination,2026-02-15T15:46:36.956886 NCIT:C28239,Cobalt Co-60,2026-02-15T15:46:57.873654 NCIT:C120576,Improvised Nuclear Device,2026-02-15T15:47:04.484150 NCIT:C120580,Radiological Dispersal Device,2026-02-15T15:47:13.265115 +NCIT:C16350,Biosensors,2026-06-23T05:48:32.996687 diff --git a/cache/obi/terms.csv b/cache/obi/terms.csv index e227aa15..5b8e1ec8 100644 --- a/cache/obi/terms.csv +++ b/cache/obi/terms.csv @@ -81,3 +81,4 @@ OBI:0302736,comet assay,2026-02-22T14:59:17.858350 OBI:0302886,centrifugation,2026-06-11T16:05:52.111915 OBI:0000626,DNA sequencing assay,2026-06-11T16:09:55.501188 OBI:0002107,bio-layer interferometry assay,2026-06-11T16:12:09.434877 +OBI:0000719,vaccine production,2026-06-23T05:48:33.992380 diff --git a/src/valuesets/schema/bio/cell_free_expression.yaml b/src/valuesets/schema/bio/cell_free_expression.yaml new file mode 100644 index 00000000..ca012d9c --- /dev/null +++ b/src/valuesets/schema/bio/cell_free_expression.yaml @@ -0,0 +1,450 @@ +name: cell_free_expression +title: Cell-Free Expression Value Sets +description: >- + Value sets for cell-free protein synthesis (CFPS), also known as cell-free + expression or in vitro transcription-translation (TX-TL). Covers the source + extracts/systems, reaction formats, energy regeneration substrates, and common + applications used in synthetic biology, structural biology, and biomanufacturing. +id: https://w3id.org/valuesets/bio/cell_free_expression +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + valuesets: https://w3id.org/valuesets/ + CHEBI: http://purl.obolibrary.org/obo/CHEBI_ + NCBITaxon: http://purl.obolibrary.org/obo/NCBITaxon_ + OBI: http://purl.obolibrary.org/obo/OBI_ + NCIT: http://purl.obolibrary.org/obo/NCIT_ + BAO: http://www.bioassayontology.org/bao#BAO_ + orcid: https://orcid.org/ + valuesets_meta: https://w3id.org/valuesets/meta/ +default_prefix: valuesets +slots: + cell_free_system: + description: The source extract or reconstituted system used for cell-free expression + range: CellFreeExpressionSystemEnum + cell_free_reaction_format: + description: The physical configuration of the cell-free reaction + range: CellFreeReactionFormatEnum + energy_regeneration_substrate: + description: Secondary energy substrate used to regenerate ATP/GTP in the reaction + range: EnergyRegenerationSubstrateEnum + cell_free_application: + description: Application or use case for the cell-free expression reaction + range: CellFreeApplicationEnum +enums: + CellFreeExpressionSystemEnum: + title: Cell-Free Expression Systems + description: >- + Source extracts and reconstituted systems used for cell-free protein + synthesis. Crude lysate systems are derived from cell extracts, while + reconstituted systems (e.g. PURE) are assembled from purified components. + status: DRAFT + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + see_also: + - https://en.wikipedia.org/wiki/Cell-free_protein_synthesis + instantiates: + - valuesets_meta:ValueSetEnumDefinition + permissible_values: + ECOLI_EXTRACT: + description: >- + Escherichia coli crude cell extract (e.g. S30, S12), the most widely + used prokaryotic cell-free system for high-yield protein production + aliases: + - E. coli extract + - E. coli lysate + - S30 extract + - ECE + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:562 + extract_type: crude lysate + domain: prokaryotic + PURE_SYSTEM: + description: >- + Protein synthesis Using Recombinant Elements - a reconstituted system + assembled from individually purified E. coli translation factors, + ribosomes, and enzymes + aliases: + - PURE + - PURExpress + - reconstituted system + broad_mappings: + - BAO:0000366 + annotations: + extract_type: reconstituted + domain: prokaryotic + advantage: defined composition, low nuclease/protease activity + WHEAT_GERM_EXTRACT: + description: >- + Wheat germ (Triticum aestivum) extract, a eukaryotic system favored + for expression of complex and difficult eukaryotic proteins + aliases: + - WGE + - wheat germ system + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:4565 + extract_type: crude lysate + domain: eukaryotic + RABBIT_RETICULOCYTE_LYSATE: + description: >- + Rabbit (Oryctolagus cuniculus) reticulocyte lysate, a classic + mammalian system for in vitro translation and protein labeling + meaning: BAO:0000255 + aliases: + - RRL + - reticulocyte lysate + - rabbit reticulocyte lysate format + annotations: + source_taxon: NCBITaxon:9986 + extract_type: crude lysate + domain: eukaryotic + INSECT_CELL_EXTRACT: + description: >- + Insect cell extract, typically from Spodoptera frugiperda (Sf21), + supporting eukaryotic post-translational modifications + aliases: + - ICE + - Sf21 extract + - insect lysate + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:7108 + extract_type: crude lysate + domain: eukaryotic + HELA_EXTRACT: + description: >- + Human HeLa cell extract used for mammalian cell-free expression with + authentic human translation machinery + aliases: + - HeLa lysate + - human cell extract + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:9606 + extract_type: crude lysate + domain: eukaryotic + CHO_EXTRACT: + description: >- + Chinese hamster ovary (Cricetulus griseus) cell extract supporting + glycosylation and disulfide bond formation + aliases: + - CHO lysate + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:10029 + extract_type: crude lysate + domain: eukaryotic + YEAST_EXTRACT: + description: >- + Yeast (Saccharomyces cerevisiae) cell extract for eukaryotic cell-free + protein synthesis + aliases: + - S. cerevisiae extract + - yeast lysate + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:4932 + extract_type: crude lysate + domain: eukaryotic + LEISHMANIA_EXTRACT: + description: >- + Leishmania tarentolae cell extract, a eukaryotic system supporting + high yields and post-translational modifications + aliases: + - Leishmania tarentolae extract + - LTE + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:5689 + extract_type: crude lysate + domain: eukaryotic + VIBRIO_NATRIEGENS_EXTRACT: + description: >- + Vibrio natriegens cell extract, an emerging fast-growing prokaryotic + chassis for rapid, high-yield cell-free expression + aliases: + - V. natriegens extract + - Vmax extract + broad_mappings: + - BAO:0000366 + annotations: + source_taxon: NCBITaxon:691 + extract_type: crude lysate + domain: prokaryotic + TOBACCO_BY2_EXTRACT: + description: >- + Tobacco BY-2 (Nicotiana tabacum bright yellow-2) cell lysate, a plant + eukaryotic cell-free system + aliases: + - BY-2 lysate + - BYL + broad_mappings: + - BAO:0000366 + annotations: + extract_type: crude lysate + domain: eukaryotic + + CellFreeReactionFormatEnum: + title: Cell-Free Reaction Formats + description: >- + Physical configurations of cell-free expression reactions, differing in how + substrates are supplied and byproducts removed, which affects reaction + duration and protein yield. + status: DRAFT + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + instantiates: + - valuesets_meta:ValueSetEnumDefinition + permissible_values: + BATCH: + description: >- + Single closed reaction with all components mixed at the start; simplest + format but limited by substrate depletion and byproduct accumulation + aliases: + - batch mode + annotations: + duration: short (hours) + CONTINUOUS_EXCHANGE: + description: >- + Continuous-exchange cell-free (CECF) format with a semipermeable + membrane separating a reaction chamber from a feeding chamber, allowing + diffusion of substrates in and byproducts out + aliases: + - CECF + - continuous exchange + - dialysis mode + related_mappings: + - OBI:0600052 + annotations: + duration: extended (up to ~24 h) + CONTINUOUS_FLOW: + description: >- + Continuous-flow cell-free (CFCF) format in which fresh substrates are + continuously pumped through the reaction while product is collected + aliases: + - CFCF + - continuous flow + annotations: + duration: extended + BILAYER: + description: >- + Bilayer format where a feeding solution is layered over the reaction + mixture without a membrane, prolonging reaction by passive diffusion + aliases: + - bilayer mode + LYOPHILIZED: + description: >- + Freeze-dried (lyophilized) cell-free reaction that is shelf-stable and + activated by rehydration; basis of freeze-dried cell-free (FD-CF) + diagnostics and portable biomanufacturing + aliases: + - freeze-dried + - FD-CF + - lyophilised + related_mappings: + - NCIT:C28150 + annotations: + advantage: cold-chain-free storage and distribution + + EnergyRegenerationSubstrateEnum: + title: Energy Regeneration Substrates + description: >- + Secondary energy substrates added to cell-free reactions to regenerate ATP + and GTP consumed during transcription and translation. Choice of substrate + affects cost, reaction longevity, and inorganic phosphate accumulation. + status: DRAFT + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + instantiates: + - valuesets_meta:ValueSetEnumDefinition + permissible_values: + PHOSPHOCREATINE: + description: >- + Creatine phosphate (N-phosphocreatine) regenerated with creatine kinase; + a classic high-energy phosphate donor + meaning: CHEBI:17287 + aliases: + - creatine phosphate + - phosphocreatine + - N-phosphocreatine + annotations: + enzyme: creatine kinase + PHOSPHOENOLPYRUVATE: + description: >- + Phosphoenolpyruvate (PEP) regenerated with pyruvate kinase; a common + high-energy phosphate donor + meaning: CHEBI:18021 + aliases: + - PEP + annotations: + enzyme: pyruvate kinase + ACETYL_PHOSPHATE: + description: >- + Acetyl phosphate regenerated with acetate kinase; an inexpensive energy + source + meaning: CHEBI:15350 + aliases: + - AcP + - acetyl dihydrogen phosphate + annotations: + enzyme: acetate kinase + THREE_PGA: + description: >- + 3-phosphoglycerate (3-PGA), a glycolytic intermediate widely used as a + low-cost energy substrate in E. coli cell-free systems + meaning: CHEBI:17794 + aliases: + - 3-PGA + - 3-phosphoglycerate + - 3-phospho-D-glycerate + - 3-phospho-D-glyceric acid + GLUCOSE: + description: >- + Glucose feeding glycolysis for ATP regeneration; a very low-cost energy + source that requires phosphate buffering + meaning: CHEBI:17634 + aliases: + - D-glucose + GLUCOSE_6_PHOSPHATE: + description: Glucose 6-phosphate fed into glycolysis for energy regeneration + meaning: CHEBI:14314 + aliases: + - G6P + - glucose-6-phosphate + - D-glucose 6-phosphate + MALTOSE: + description: >- + Maltose used as a low-cost energy substrate that limits inorganic + phosphate accumulation + meaning: CHEBI:17306 + PYRUVATE: + description: >- + Pyruvate used as an energy source, oxidized via the central metabolism + of the extract + meaning: CHEBI:15361 + MALTODEXTRIN: + description: >- + Maltodextrin (glucose polymer) energy substrate providing slow glucose + release and minimal phosphate buildup + aliases: + - polymeric glucose + + CellFreeApplicationEnum: + title: Cell-Free Expression Applications + description: >- + Common applications and use cases for cell-free protein synthesis across + research, synthetic biology, and biomanufacturing. + status: DRAFT + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + instantiates: + - valuesets_meta:ValueSetEnumDefinition + permissible_values: + RECOMBINANT_PROTEIN_PRODUCTION: + description: General production of recombinant proteins in vitro + aliases: + - protein production + MEMBRANE_PROTEIN_EXPRESSION: + description: >- + Expression of membrane proteins, often co-translationally inserted into + liposomes, nanodiscs, or detergent micelles + aliases: + - membrane protein synthesis + DIFFICULT_PROTEIN_EXPRESSION: + description: >- + Expression of toxic, unstable, or otherwise difficult-to-express + proteins that are problematic in living cells + aliases: + - toxic protein expression + GENETIC_CIRCUIT_PROTOTYPING: + description: >- + Rapid prototyping and characterization of genetic parts and circuits + using in vitro transcription-translation (TX-TL) + aliases: + - TX-TL prototyping + - circuit prototyping + METABOLIC_PATHWAY_PROTOTYPING: + description: >- + Building and testing enzymatic and metabolic pathways in vitro for + cell-free biosynthesis + aliases: + - cell-free metabolic engineering + - pathway prototyping + BIOSENSOR: + description: >- + Cell-free biosensors, including freeze-dried paper-based sensors for + detecting nucleic acids, small molecules, or contaminants + meaning: NCIT:C16350 + aliases: + - cell-free biosensor + - Biosensors + exact_mappings: + - BAO:0010264 + DIAGNOSTICS: + description: >- + Point-of-care and field-deployable diagnostics, often freeze-dried + cell-free reactions coupled to toehold switches or CRISPR readouts + aliases: + - point-of-care diagnostics + related_mappings: + - NCIT:C209465 + UNNATURAL_AMINO_ACID_INCORPORATION: + description: >- + Site-specific incorporation of non-canonical/unnatural amino acids via + orthogonal translation components + aliases: + - ncAA incorporation + - non-canonical amino acid incorporation + PROTEIN_LABELING: + description: >- + Incorporation of radioactive, fluorescent, or isotopic labels for + detection and structural studies + aliases: + - isotopic labeling + - radiolabeling + STRUCTURAL_BIOLOGY: + description: >- + Production of selectively or uniformly isotope-labeled proteins for NMR + and other structural studies + aliases: + - NMR labeling + HIGH_THROUGHPUT_SCREENING: + description: >- + Parallelized small-volume expression for protein screening, directed + evolution, and library characterization + meaning: NCIT:C18472 + aliases: + - HTS + exact_mappings: + - BAO:0010074 + VACCINE_PRODUCTION: + description: >- + On-demand cell-free production of protein subunit and conjugate vaccine + antigens + meaning: OBI:0000719 + aliases: + - on-demand vaccine production + exact_mappings: + - NCIT:C26030 + ANTIBODY_PRODUCTION: + description: Cell-free synthesis of antibodies and antibody fragments + aliases: + - antibody synthesis + EDUCATION: + description: Use of cell-free kits for teaching and outreach in synthetic biology + aliases: + - teaching diff --git a/src/valuesets/schema/valuesets.yaml b/src/valuesets/schema/valuesets.yaml index 4c323b3b..b5f7454b 100644 --- a/src/valuesets/schema/valuesets.yaml +++ b/src/valuesets/schema/valuesets.yaml @@ -27,6 +27,7 @@ imports: - bio/relationship_to_oxygen - bio/trophic_levels - bio/developmental_stages +- bio/cell_free_expression - time/temporal - academic/research - academic/organizations