Level 2 assembly, transformation, and test suite#102
Conversation
Updated project description and added a section explaining the purpose of BuildCompiler in synthetic biology.
Expanded the README to include detailed project information, core capabilities, and the full build workflow.
Added a comprehensive overview of the BuildCompiler tool, including its vision, target users, unique features, workflow experience, supported biology, current limitations, and roadmap.
Document the developer guide for AI agents, outlining the mental model, core entry points, contracts, constraints, testing expectations, and goals for contributions.
…-scar-bb representation
…ns within digestion
…ompiler.plating-method Implement BuildCompiler.plating with SBOL provenance, protocol artifacts, and robot helpers
…bone match + composite numbering adjustment
…document-indexing-support [SPRINT-02-01] Add local SBOL document indexing entry point
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2237123595
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| backbone, | ||
| bsaI_impl, | ||
| ligase_impl, | ||
| self.bsaI_impl, | ||
| self.T4_ligase_impl, | ||
| self.sbol_doc, | ||
| ) |
There was a problem hiding this comment.
Update domestication Assembly call to new constructor/attr names
This Assembly(...) call still uses self.bsaI_impl and the old argument shape, but the class now stores self.BsaI_impl and requires both source_document and final_document. As written, domesticate_parts will fail at runtime (missing attribute or wrong arity) the first time this path is exercised, so domestication cannot complete.
Useful? React with 👍 / 👎.
| self, | ||
| abstract_designs: List[sbol2.ComponentDefinition] | ||
| | sbol2.CombinatorialDerivation, | ||
| final_doc: sbol2.Document = sbol2.Document(), |
There was a problem hiding this comment.
Replace shared default SBOL document in assembly_lvl1
Using sbol2.Document() as a default parameter creates one shared document instance across all calls, so repeated assembly_lvl1(...) invocations without an explicit final_doc will leak state between runs and can produce duplicate-URI collisions or contaminated outputs. This should default to None and allocate a fresh document inside the method.
Useful? React with 👍 / 👎.
| Returns: | ||
| A list of TU component definitions in sequential order. | ||
| """ | ||
| top_design = design_doc.componentDefinitions[0] |
There was a problem hiding this comment.
Resolve the actual top-level design before extracting L2 TUs
Selecting design_doc.componentDefinitions[0] assumes the first definition is the top-level construct, which is not guaranteed in SBOL documents containing many leaf parts. In those cases, TU extraction can silently target the wrong definition (often yielding empty/incorrect TU lists), causing level-2 assembly to fail or build the wrong design.
Useful? React with 👍 / 👎.
closes #29, #38, #39, #41, #42, #46, #47