← All .science files
pmid:40888753
PyVADesign: a python-based cloning tool for one-step generation of large mutant libraries.
R C M Kuin · M H Lamers · G J P van Westen
Bioinformatics (Oxford, England) · 2025 doi:10.1093/bioinformatics/btaf433
Paper
complete
Experiment
partial
Data
partial
Analysis
partial
Execution
absent
Execution evidence has not yet been added to this .science file. Explore its methods, data and open questions to plan the next step.
Record details sci_version · id · kind · revision · content_hash · schema · created_at · updated_at · generator
paper object · 10 fields
authors array · 3 items
claims array · 3 items
[0] object · 6 fields
evidence array · 1 item
[0] object · 3 fields
[1] object · 6 fields
gaps array · 0 items
experiment object · 8 fields
steps array · 3 items
[0] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[1] object · 13 fields
parameters object · 0 fields
inputs array · 0 items
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[2] object · 13 fields
parameters object · 0 fields
inputs array · 0 items
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
materials array · 0 items
instruments array · 0 items
reagents array · 0 items
conditions object · 0 fields
gaps array · 1 item
data object · 3 fields
assets array · 1 item
[0] object · 15 fields
structure object · 4 fields
gaps array · 0 items
analysis object · 4 fields
methods array · 1 item
[0] object · 10 fields
dsl_operations array · 0 items
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 0 items
targets array · 0 items
gaps array · 1 item
capability object · 3 fields
requirements array · 1 item
[0] object · 6 fields
assay_families array · 9 items
gaps array · 0 items
readiness object · 8 fields
axes object · 3 fields
method object · 5 fields
required_operations array · 0 items
missing_operations array · 0 items
capability object · 4 fields
data object · 6 fields
accessions array · 0 items
resolved_accessions array · 0 items
statements array · 1 item
can_run object · 3 fields
dsl_operations array · 0 items
assets array · 1 item
steps array · 1 item
must_build object · 5 fields
dsl_operations array · 0 items
converters array · 0 items
readers array · 0 items
capabilities array · 0 items
data_gaps array · 1 item
gaps array · 1 item
review object · 5 fields
machine_critique object · 5 fields
reader object · 5 fields
evidence_check object · 2 fields
usage object · 3 fields
stages array · 1 item
[0] object · 4 fields
gaps array · 3 items
provenance object · 7 fields
entities array · 3 items
activities array · 3 items
[0] object · 4 fields
used array · 3 items
[0] object · 3 fields
[1] object · 3 fields
[2] object · 3 fields
[1] object · 4 fields
agents array · 2 items
lineage object · 4 fields
gaps array · 6 items
Complete file
{"sci_version": "1.0", "schema": "https://corpus.bntrg.co.uk/sci/1.0/sci.schema.json", "id": "pmid:40888753", "kind": "science-record", "revision": 2, "content_hash": "sha256:97c8f944bedf7758e9982eaf246313c5a853ff3c97f1b8358273abcdd3952c34", "created_at": "2026-11-01T20:30:59Z", "updated_at": "2026-11-01T21:35:43Z", "generator": {"name": "corpus-assay-engine", "run_id": "reading-sci-2026-11-01"}, "paper": {"state": "complete", "title": "PyVADesign: a python-based cloning tool for one-step generation of large mutant libraries.", "doi": "10.1093/bioinformatics/btaf433", "pmid": "40888753", "authors": ["R C M Kuin", "M H Lamers", "G J P van Westen"], "journal": "Bioinformatics (Oxford, England)", "year": 2025, "abstract": "MOTIVATION: The generation and analysis of diverse mutants of a protein is a powerful tool for understanding protein function. However, generating such mutants can be time-consuming, while the commercial option of buying a series of mutant plasmids can be expensive. In contrast, the insertion of a synthesized double-stranded DNA (dsDNA) fragment into a plasmid is a fast and low-cost method to generate a large library of mutants with one or more point mutations, insertions, or deletions.\nRESULTS: To aid in the design of these DNA fragments, we have developed PyVADesign: a Python package that makes the design and ordering of dsDNA fragments straightforward and cost-effective. In PyVADesign, the mutations of interest are clustered in different cloning groups for efficient exchange into the target plasmid. Additionally, primers that prepare the target plasmid for insertion of the dsDNA fragment, as well as primers for sequencing, are automatically designed within the same program.\nAVAILABILITY AND IMPLEMENTATION: PyVADesign is open source and available at https://github.com/CDDLeiden/PyVADesign and archived via Zenodo (https://doi.org/10.5281/zenodo.15057525).", "claims": [{"id": "claim-method", "statement": "First, the desired mutations are grouped together into clusters using K-medoids clustering (Kaufman and Rousseau, 1990) in scikit-learn-extra (The scikit-learn-extra development team, 2020).", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:40888753", "locator": "sections[3] \"2.1 dsDNA fragment design process\" paragraph 2", "quote": "First, the desired mutations are grouped together into clusters using K-medoids clustering (Kaufman and Rousseau, 1990) in scikit-learn-extra (The scikit-learn-extra development team, 2020)."}], "state": "complete"}, {"id": "claim-data-access", "statement": "The source code is available at https://github.com/CDDLeiden/PyVADesign. All code and data are archived via Zenodo (https://doi.org/10.5281/zenodo.15057525).", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:40888753", "locator": "sections[19] \"Data availability\" paragraph 2", "quote": "The source code is available at https://github.com/CDDLeiden/PyVADesign. All code and data are archived via Zenodo (https://doi.org/10.5281/zenodo.15057525)."}], "state": "complete"}, {"id": "claim-target-result", "statement": "PyVADesign automates the design of dsDNA fragments and associated primers for generating large libraries of protein mutants.", "kind": "qualitative", "target": null, "evidence": [{"asset": "source:pmid:40888753", "locator": "sections[0] \"Abstract\" paragraph 2", "quote": "To aid in the design of these DNA fragments, we have developed PyVADesign: a Python package that makes the design and ordering of dsDNA fragments straightforward and cost-effective."}, {"asset": "source:pmid:40888753", "locator": "sections[12] \"3.4 Experimental validation\" paragraph 2", "quote": "The 24 mutations were distributed over three fragment regions."}, {"asset": "source:pmid:40888753", "locator": "sections[12] \"3.4 Experimental validation\" paragraph 2", "quote": "Using this approach, all 24 mutant plasmids were generated within a span of two weeks."}], "state": "complete"}], "gaps": []}, "experiment": {"state": "partial", "objective": "PyVADesign automates the design of dsDNA fragments and associated primers for generating large libraries of protein mutants.", "steps": [{"id": "read_published_estimate", "order": 1, "name": "Read the published estimate from the source", "kind": "other", "state": "complete", "blocked_on": null, "description": "The claim, method and evidence span published with the source article.", "duration_hours": null, "parameters": {}, "inputs": ["source:pmid:40888753"], "outputs": ["the published estimate and its evidence"], "instruments": [], "reagents": []}, {"id": "obtain_source_data", "order": 2, "name": "Obtain the source data from the named repository", "kind": "data-preparation", "state": "blocked", "blocked_on": "data:accession_absent", "description": "The GEO series accession resolves and its sample accessions are listed. This lane did not download the dataset or read its licence.", "duration_hours": null, "parameters": {}, "inputs": [], "outputs": ["the source data with its repository provenance"], "instruments": [], "reagents": []}, {"id": "run_analysis", "order": 3, "name": "Run the published analysis", "kind": "analysis", "state": "complete", "blocked_on": null, "description": "Apply the paper's statistical method to the resolved series and compare the result with the published target.", "duration_hours": null, "parameters": {}, "inputs": [], "outputs": ["the replicated result and its comparison"], "instruments": [], "reagents": []}], "materials": [], "instruments": [], "reagents": [], "conditions": {}, "gaps": ["step:obtain_source_data blocked on data:accession_absent"]}, "data": {"state": "partial", "assets": [{"id": "source:pmid:40888753", "role": "manuscript", "format": "xml", "media_type": "application/xml", "uri": "https://doi.org/10.1093/bioinformatics/btaf433", "sha256": "sha256:7c0169aed5b1ebd51244472451c669b04add6619ad87bb39c2dc179bf9425a4d", "bytes": 18140, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "10.1093/bioinformatics/btaf433", "version": null, "note": "Full article fetched from PMC; the checksum covers the rendered section body, not the original XML bytes.", "structure": {"pmcid": "PMC12449254", "source": "europe_pmc_fulltext", "coverage": "whole_body_without_references", "text_hash_scope": "rendered_section_body"}}], "gaps": []}, "analysis": {"state": "partial", "methods": [{"id": "method-1", "family": null, "specific": null, "label": "K-medoids clustering", "dsl_operations": [], "missing_operations": [], "expressible": null, "parameters": {}, "data_shapes": [], "evidence": {"score": 1.0, "band": "verbatim", "quote": "First, the desired mutations are grouped together into clusters using K-medoids clustering (Kaufman and Rousseau, 1990) in scikit-learn-extra (The scikit-learn-extra development team, 2020)."}}], "targets": [], "gaps": ["method.reader_named_unmapped"]}, "capability": {"state": "complete", "requirements": [{"capability_id": "capability:computational_analysis", "label": "Computational analysis platform", "assay_families": ["meta_analysis", "machine_learning", "survival_analysis", "statistical_regression", "pca", "molecular_docking", "network_analysis", "differential_expression", "gwas"], "availability_state": "owned", "tier_unlocked": "R1", "candidate": "Automated Assays Laravel application and simulated adapters"}], "gaps": []}, "readiness": {"state": "blocked", "tier": "R4", "blocking_axis": "data", "blocked_on": "data:accession_absent", "axes": {"method": {"tier": "R4", "expressible": false, "required_operations": [], "missing_operations": [], "basis": "The reader quoted the method the paper names (K-medoids clustering), but the corpus's method extractor could not map it onto a DSL operation, so the method is published but not expressible."}, "capability": {"tier": "R1", "capability_id": "capability:computational_analysis", "availability_state": "owned", "basis": "The computational analysis is owned. The physical bench the paper used is not, so a physical validation cannot be run here."}, "data": {"tier": "R4", "reachable": false, "accessions": [], "resolved_accessions": [], "statements": ["The source code is available at https://github.com/CDDLeiden/PyVADesign. All code and data are archived via Zenodo (https://doi.org/10.5281/zenodo.15057525)."], "basis": "The paper names no accession to its source data, so the data has to come from the authors."}}, "can_run": {"dsl_operations": [], "assets": ["source:pmid:40888753"], "steps": ["run_analysis"]}, "must_build": {"dsl_operations": [], "converters": [], "readers": [], "capabilities": [], "data_gaps": ["data:geo:None"]}, "gaps": ["data:accession_absent"]}, "review": {"state": "partial", "machine_critique": {"kind": "extraction_review", "reader": {"model": "MiniMax-M3.1-Flash", "provider": "minimax", "provider_family": "minimax", "read_at": "2026-11-01T20:00:49Z", "independence": "single_reader"}, "evidence_check": {"method": "verbatim", "availability": "verbatim"}, "calls": 5, "usage": {"prompt_tokens": 5773, "completion_tokens": 1522, "cached_tokens": 256}}, "human_critique": null, "stages": [{"id": "extraction", "state": "complete", "reader": "MiniMax-M3.1-Flash", "provider": "minimax"}], "gaps": ["review.independent_reader", "review.machine_critique", "review.human_critique"]}, "execution": {"state": "absent", "status": "not_run", "mode": null, "runs": [], "gaps": ["execution.not_run"]}, "provenance": {"entities": [{"id": "pmid:40888753", "type": "paper", "label": "pmid:40888753"}, {"id": "source:pmid:40888753", "type": "manuscript", "label": "PMID 40888753 full text"}, {"id": "data:geo:None", "type": "dataset", "label": "GEO None"}], "activities": [{"id": "activity-reading-sci-2026-11-01", "type": "classification", "used": [{"id": "pmid:40888753", "type": "paper", "label": "pmid:40888753"}, {"id": "source:pmid:40888753", "type": "manuscript", "label": "PMID 40888753 full text"}, {"id": "data:geo:None", "type": "dataset", "label": "GEO None"}], "agent": "agent:corpus-assay-engine"}, {"id": "activity-read-40888753", "type": "extraction", "used": ["source:pmid:40888753"], "agent": "agent:minimax-reader"}, {"id": "activity-resolve-None", "type": "accession_resolution", "used": ["data:geo:None"], "agent": "agent:corpus-assay-engine"}], "agents": [{"id": "agent:corpus-assay-engine", "type": "software", "label": "Corpus assay engine"}, {"id": "agent:minimax-reader", "type": "software", "label": "MiniMax literature reader"}], "source_run_id": "reading-sci-2026-11-01", "dsl_catalogue_fingerprint": "343fb30756ba6ec3", "capability_table_fingerprint": "2cb3e42f047d2ecf", "snapshot_id": "ba34b49490d9bfaf"}, "lineage": {"parent_id": "pmid:40888753", "parent_hash": "sha256:72dfe00f6cc9fceacfb9c70c8ebd291b86ed95b97e66fd40b32ca187f11a3443", "fork_of": null, "generation": 1}, "gaps": ["execution.not_run", "method.reader_named_unmapped", "review.human_critique", "review.independent_reader", "review.machine_critique", "step:obtain_source_data blocked on data:accession_absent"]}