Package: terrarium-capp
TerrariumTerrarium is adynamic computer-aided process planner (CAPP)for biology designed for agile manufacturing of biological products, such as E Coli & Yeast strains, or Mammalian cell lines.This piece of software automatically plans scientific experiments in Aquarium using historical
planning data and current laboratory inventory. Data can be pulled from specific researchers
to emulate how that particular researcher would plan experiments.Requirementsdevelopment version oftrident (v0.1.0)Python >= 3.6Aquarium login credentialsUsageInstalling a specific versionpipinstallterrarium-capp==0.1.5New models can be built as in the following:frompydentimportAqSessionfromterrariumimportAutoPlannerModelproduction=AqSession("login","pass","url")# pull last 300 experimental to build modelmodel=AutoPlannerModel(production,depth=300)model.build()models.save('terrarium.pkl')Saved models can be open later:model=AutoPlannerModel.load('terrarium.pkl')What protocols the model uses can be adjusted using filters:ignore_ots=production.OperationType.where({"category":["Control Blocks","Library Cloning"],"deployed":True})ignore_ots+=production.OperationType.where({"name":"Yeast Mating"})ignore_ots+=production.OperationType.where({"name":"Yeast Auxotrophic Plate Mating"})ignore=[ot.idforotinignore_ots]model.add_model_filter("AllowableFieldType",lambdam:m.field_type.parent_idinignore)Sample composition:sample_composition=nx.DiGraph()# build a new yeast strain from a plasmid, which is comprised of several fragmentsedges=[('DTBA_backboneA_splitAMP','pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),('T1MC_NatMX-Cassette_MCT2 (JV)','pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),('BBUT_URA3.A.0_homology1_UTP1 (from genome)','pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),('DH5alpha','pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),('TP-IRES-EGFP-TS','pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),('pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1','CEN.PK2 - MAT alpha | his-pGRR-W5-W8-RGR-W36'),]forn1,n2inedges:s1=browser.find_by_name(n1)s2=browser.find_by_name(n2)sample_composition.add_node(s1.id,sample=s1)sample_composition.add_node(s2.id,sample=s2)sample_composition.add_edge(s1.id,s2.id)ignore_items=[]# optional to not include certain items in the search.desired_object_type=production.ObjectType.find_by_name('Fragment Stock')cost,paths,graph=network.run(desired_object_type,ignore=ignore_items)# make a new plancanvas=Planner(production)# add protocols from optimized network to plannetwork.plan(paths,graph,canvas)# submit to Aquariumcanvas.create()Example of Planning Yeast ConstructionProbability Matrix of Connecting Aquarium ProtocolsThe autoplanner uses this type of data, in concert with thesample_compositionnetwork,
to build an optimal experiment.Top 50 ConnectionsModel Factoryfactory=ModelFactory(session)# make a model from a single usermodel1=factory.emulate('user1').build()# make a model from a group of usersuser_group=['user2','user3']model2=factory.emulate(user_group).build()# make a model from the last 100 plansmodel3=factory.new(100).build()# compose a weighted modelmodel=model1+model2*3Future Versionestimate convidence for certain inventory items or operations based on
past success ratebetter api forusing 'ghost' plans to build modelemulating specific users / user groups
** faster execution (currently ~45-60 seconds)LicenseFeb. 4, 2019 - This software is not currently licensed. The author (Justin D. Vrana of University of Washington) does not grant permission to copy or modify code base.