{ "info": { "author": "Justin Vrana", "author_email": "justin.vrana@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Terrarium\n\nThis piece of software automatically plans scientific experiments in Aquarium using historical\nplanning data and current laboratory inventory. Data can be pulled from specific researchers\nto emulate how that particular researcher would plan experiments.\n\n## Requirements\n\n* development version of **trident (v0.1.0)**\n* Python >= 3.6\n* Aquarium login credentials\n\n## Usage\n\nInstalling a specific version\n\n```python\npip install terrarium-capp==0.1.2\n```\n\nNew models can be built as in the following:\n\n```python\nfrom pydent import AqSession\nfrom terrarium import AutoPlannerModel\nproduction = AqSession(\"login\", \"pass\", \"url\")\n\n# pull last 300 experimental to build model\nmodel = AutoPlannerModel(production, depth=300)\nmodel.build()\nmodels.save('terrarium.pkl')\n```\n\nSaved models can be open later:\n\n```python\nmodel = AutoPlannerModel.load('terrarium.pkl')\n```\n\nWhat protocols the model uses can be adjusted using filters:\n\n```python\nignore_ots = production.OperationType.where({\"category\": [\"Control Blocks\", \"Library Cloning\"], \"deployed\": True})\nignore_ots += production.OperationType.where({\"name\": \"Yeast Mating\"})\nignore_ots += production.OperationType.where({\"name\": \"Yeast Auxotrophic Plate Mating\"})\nignore = [ot.id for ot in ignore_ots]\nmodel.add_model_filter(\"AllowableFieldType\", lambda m: m.field_type.parent_id in ignore)\n```\n\nSample composition:\n\n```python\nsample_composition = nx.DiGraph()\n\n# build a new yeast strain from a plasmid, which is comprised of several fragments\nedges = [\n ('DTBA_backboneA_splitAMP', 'pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),\n ('T1MC_NatMX-Cassette_MCT2 (JV)', 'pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),\n ('BBUT_URA3.A.0_homology1_UTP1 (from genome)', 'pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),\n ('DH5alpha', 'pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1'),\n ('TP-IRES-EGFP-TS', 'pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1' ),\n ('pyMOD-URA-URA3.A.1-pGPD-yeVenus-tCYC1', 'CEN.PK2 - MAT alpha | his-pGRR-W5-W8-RGR-W36'),\n]\n\nfor n1, n2 in edges:\n s1 = browser.find_by_name(n1)\n s2 = browser.find_by_name(n2)\n sample_composition.add_node(s1.id, sample=s1)\n sample_composition.add_node(s2.id, sample=s2)\n sample_composition.add_edge(s1.id, s2.id)\n```\n\n```python\nignore_items = [] # optional to not include certain items in the search.\ndesired_object_type = production.ObjectType.find_by_name('Fragment Stock')\ncost, paths, graph = network.run(desired_object_type, ignore=ignore_items)\n```\n\n```python\n# make a new plan\ncanvas = Planner(production)\n\n# add protocols from optimized network to plan\nnetwork.plan(paths, graph, canvas)\n\n# submit to Aquarium\ncanvas.create()\n```\n\n**Example of Planning Yeast Construction**\n\n![plan_example](assets/images/plan_example0.png)\n\n**Probability Matrix of Connecting Aquarium Protocols**\n\nThe autoplanner uses this type of data, in concert with the `sample_composition` network,\nto build an optimal experiment.\n\n![all_connections](assets/images/all_op_types.png)\n\n**Top 50 Connections**\n\n![top_50_connections](assets/images/top_50_optypes.png)\n\n## Model Factory\n\n```python\nfactory = ModelFactory(session)\n\n# make a model from a single user\nmodel1 = factory.emulate('user1').build()\n\n# make a model from a group of users\nuser_group = ['user2', 'user3']\nmodel2 = factory.emulate(user_group).build()\n\n# make a model from the last 100 plans\nmodel3 = factory.new(100).build()\n\n# compose a weighted model\nmodel = model1 + model2 * 3\n```\n\n## Future Version\n\n* estimate convidence for certain inventory items or operations based on\npast success rate\n* better api for\n* using 'ghost' plans to build model\n* emulating specific users / user groups\n** faster execution (currently ~45-60 seconds)\n\n## License\n\nFeb. 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.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.github.com/jvrana/Terrarium", "keywords": "", "license": "", "maintainer": "Justin Vrana", "maintainer_email": "justin.vrana@gmail.com", "name": "terrarium-capp", "package_url": "https://pypi.org/project/terrarium-capp/", "platform": "", "project_url": "https://pypi.org/project/terrarium-capp/", "project_urls": { "Documentation": "https://www.github.com/jvrana/Terrarium", "Homepage": "https://www.github.com/jvrana/Terrarium", "Repository": "https://www.github.com/jvrana/Terrarium" }, "release_url": "https://pypi.org/project/terrarium-capp/0.1.5/", "requires_dist": [ "dill (>=0.2.9,<0.3.0)", "pandas (>=0.24.2,<0.25.0)", "webcolors (>=1.9,<2.0)", "colorama (>=0.4.1,<0.5.0)", "arrow (>=0.14.2,<0.15.0)", "pydent (==0.1.5a1)", "fire (==0.1.3)", "validator.py (>=1.3,<2.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Adaptive Computer Aided Process Planner", "version": "0.1.5" }, "last_serial": 5594649, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "0037913aee56899f0afb4916bf8e8e6c", "sha256": "25d00446b50a6426585b777677395512dacc0491e2767e3373ee56d8e1f40abc" }, "downloads": -1, "filename": "terrarium_capp-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0037913aee56899f0afb4916bf8e8e6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 34888, "upload_time": "2019-06-20T21:09:43", "url": "https://files.pythonhosted.org/packages/71/9a/400e444f1b86ce91c1fb3661ab06b21bfdf87a9b97db87abef67cee2a662/terrarium_capp-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7bbc644ecc11d9161ab9503d8b77a4e4", "sha256": "50538ee94dc5e594be46ff9b563bb41bed310f58ea7e30ebcfbf65d7db8939cd" }, "downloads": -1, "filename": "terrarium-capp-0.0.0.tar.gz", "has_sig": false, "md5_digest": "7bbc644ecc11d9161ab9503d8b77a4e4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 27355, "upload_time": "2019-06-20T21:09:41", "url": "https://files.pythonhosted.org/packages/2f/f3/f1e5f315ba061458396d2a608183138ef84d3b5109d98248f23838f301d9/terrarium-capp-0.0.0.tar.gz" } ], "0.0.1a0": [ { "comment_text": "", "digests": { "md5": "e00c5b3b574b464c0ab802010c6d2514", "sha256": "9ef8e82aa964f64071a06fea58d7dd275cac61b4c3b651873f66b9ae6e37de23" }, "downloads": -1, "filename": "terrarium_capp-0.0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "e00c5b3b574b464c0ab802010c6d2514", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 27183, "upload_time": "2019-06-22T03:39:36", "url": "https://files.pythonhosted.org/packages/a4/ad/2f382537cfc4546feab5cbbc818f2cdac43ea6690c5925ec146af4fef1b5/terrarium_capp-0.0.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "442da46f4d4d26fe574aa33778b354a5", "sha256": "b71fe6b6d282d2c017c8bef8fc640f62c4ba173fbe979c36e4d9e4ca1db815bb" }, "downloads": -1, "filename": "terrarium-capp-0.0.1a0.tar.gz", "has_sig": false, "md5_digest": "442da46f4d4d26fe574aa33778b354a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 20166, "upload_time": "2019-06-22T03:39:34", "url": "https://files.pythonhosted.org/packages/99/6b/43dd9b33a2494019a8cd482cccc22ac3639e13b436408943109a27dc924e/terrarium-capp-0.0.1a0.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d022c76e6fc597fdf9cdf61dc9378f25", "sha256": "a664916bdd7d46fbf4e33a4e4e47b5ff460e099bfa114f6d7199105314f9b699" }, "downloads": -1, "filename": "terrarium_capp-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d022c76e6fc597fdf9cdf61dc9378f25", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 25521, "upload_time": "2019-07-26T16:01:03", "url": "https://files.pythonhosted.org/packages/98/b7/edf4a4f62cb9f701f770fdc6453f5259072084bad325113f8e7badeee908/terrarium_capp-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5852b8799c1e934895a6cd7ae55d3894", "sha256": "bf024763e24cc28523e724f086c5f14583d1606236f7cf262aa35b56e19f0dad" }, "downloads": -1, "filename": "terrarium-capp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5852b8799c1e934895a6cd7ae55d3894", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 24461, "upload_time": "2019-07-26T16:01:01", "url": "https://files.pythonhosted.org/packages/ac/21/056921c83a58503f09cc4c9426abcb5120392d5bd4f2e795d52e030507da/terrarium-capp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8d9f49f11e2ef3d7e211f3e692823e1e", "sha256": "ef42bb50266dd0a30f0fe9cfdea4593e6e9f04d3b37dd1705632d957887f4b27" }, "downloads": -1, "filename": "terrarium_capp-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8d9f49f11e2ef3d7e211f3e692823e1e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 28340, "upload_time": "2019-07-26T19:59:52", "url": "https://files.pythonhosted.org/packages/d9/e9/75ae01ccb26d278f027a57b8347a15dbd531ee0d346392f3269d7587519d/terrarium_capp-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e622d80191edc729e0d3b2849bd2e2f5", "sha256": "6c992607f2c24a2d5aa9a04f7117535850a37e9338762f585339ccbf5a698306" }, "downloads": -1, "filename": "terrarium-capp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e622d80191edc729e0d3b2849bd2e2f5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 26542, "upload_time": "2019-07-26T19:59:50", "url": "https://files.pythonhosted.org/packages/0e/7a/8d1f09120785911ff1a6c2de733ee8bf165f5036b93bb5e3896742bbf1a7/terrarium-capp-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b96ed17db31cd425ade8c1bc71e1a620", "sha256": "fbb397dd29c5359dd971a29ec28f8720fb9bcbe6a4f8463aa642a36405136f25" }, "downloads": -1, "filename": "terrarium_capp-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b96ed17db31cd425ade8c1bc71e1a620", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 30218, "upload_time": "2019-07-28T00:40:13", "url": "https://files.pythonhosted.org/packages/f8/6a/7287069ab2f99df7e7e5d04f2eea7f789d3e75629e3e62b507106cbeeda3/terrarium_capp-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ada19ea932008c49c0be3d956a28c79", "sha256": "f5b44fc953cb736d90ef9f77c77743fadd7b2a09e5b6671d6feb4c72edf30dff" }, "downloads": -1, "filename": "terrarium-capp-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6ada19ea932008c49c0be3d956a28c79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28179, "upload_time": "2019-07-28T00:40:11", "url": "https://files.pythonhosted.org/packages/31/e1/6373af5b90bb63c0ff20625a9459368d741223b6ce07d3966415d20e4748/terrarium-capp-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "51724e835becbeaa340086839d8c845f", "sha256": "0af1be9767d018acd352ef2a38141e1b636d07b8e493b3bea87a840e2293089c" }, "downloads": -1, "filename": "terrarium_capp-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "51724e835becbeaa340086839d8c845f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 30611, "upload_time": "2019-07-28T03:23:46", "url": "https://files.pythonhosted.org/packages/30/fa/490eb2e51e13d0b97186154132889cb1634589c884da2063a77740fada80/terrarium_capp-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddc9fcf2b0e1525bcfa2b2d334638ded", "sha256": "fa1b9e1cf3534ab446946efe8539bd9cb6f9ba7cc7561a368b619a4ebe2957c7" }, "downloads": -1, "filename": "terrarium-capp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "ddc9fcf2b0e1525bcfa2b2d334638ded", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28465, "upload_time": "2019-07-28T03:23:45", "url": "https://files.pythonhosted.org/packages/06/61/b874e6921df2ff27c86c01ffb54a1167418507d5b0d46d92b0869ba942ed/terrarium-capp-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "51724e835becbeaa340086839d8c845f", "sha256": "0af1be9767d018acd352ef2a38141e1b636d07b8e493b3bea87a840e2293089c" }, "downloads": -1, "filename": "terrarium_capp-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "51724e835becbeaa340086839d8c845f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 30611, "upload_time": "2019-07-28T03:23:46", "url": "https://files.pythonhosted.org/packages/30/fa/490eb2e51e13d0b97186154132889cb1634589c884da2063a77740fada80/terrarium_capp-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddc9fcf2b0e1525bcfa2b2d334638ded", "sha256": "fa1b9e1cf3534ab446946efe8539bd9cb6f9ba7cc7561a368b619a4ebe2957c7" }, "downloads": -1, "filename": "terrarium-capp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "ddc9fcf2b0e1525bcfa2b2d334638ded", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28465, "upload_time": "2019-07-28T03:23:45", "url": "https://files.pythonhosted.org/packages/06/61/b874e6921df2ff27c86c01ffb54a1167418507d5b0d46d92b0869ba942ed/terrarium-capp-0.1.5.tar.gz" } ] }