{ "info": { "author": "Kale Kundert", "author_email": "kale.kundert@ucsf.edu", "bugtrack_url": null, "classifiers": [], "description": "Show My Designs\n===============\nThe purpose of this program is to make it easier to judge forward-folded \ncandidates in computational protein design pipelines.\n\nMost computational design pipelines have one step that searches for sequences \nwhich satisfy the design goals and another that simulates some of those \nsequences to see which really do satisfy those goals. This second step is \nusually called forward-folding or computational validation. For each design \nchosen to be validated, hundreds of forward-folding simulations may be run. \nEach of these produces a single model which can be characterized by metrics \nexpressing how realistic it is and how well it satisfies the design goals. \nThese metrics include force-field scores, RMSDs to target structures, buried \nunsatisfied H-bond counts, and possibly other things like that. A design is \npromising if the forward-folded models that best satisfy the design goals are \nalso the most realistic.\n\nThis program provides a number of utilities and features to make it easier to \nfind promising designs:\n\n1. Extract quality metrics from forward-folded models and plot them against \n each other in any combination.\n\n2. Easily visualize specific models by right-clicking on plotted points.\n\n3. Plot multiple designs at once, for comparison purposes.\n\n4. Keep notes on each design, and search your notes to find the designs you \n want to visualize.\n\nInstallation\n------------\nThe most difficult part of installing show_my_designs is making sure all the \nrequired dependencies are present:\n\n- python 2.7\n- pygtk\n- numpy\n- scipy\n- pandas\n- numexpr\n\nOn linux, these most of these should already be installed, and all of these \nshould be available through whatever package manager your distribution uses. \nOn mac, homebrew seems to be the most promising route, but I haven't tried it.\n\nBugs and New Features\n---------------------\nIf you find a bug, open an issue through the github interface::\n\n https://github.com/Kortemme-Lab/show_my_designs/issues\n\nIf you'd like to fix a bug or make an improvement to the code, fork the project \nand make a pull request::\n\n https://github.com/Kortemme-Lab/show_my_designs/fork\n\nUsage\n-----\nUse the `-h` flag to get help on using ``show_my_designs``:\n\n $ ./show_my_designs.py -h\n Usage: ...\n\nGenerally, the only arguments you need are the names of one or more directories \ncontaining the forward-folded models in the PDB format. For example::\n\n $ ls\n show_my_designs.py\n design_1/\n design_2/\n ...\n\n $ ls design_1\n model_1.pdb\n model_2.pdb\n ...\n\n $ ./show_my_designs.py design_*\n\nThis last command will launch the GUI. If you specified more than one design \non the command line, the GUI will have a panel on the left listing all the \ndesigns being compared. You can control what is plotted by selecting one or \nmore designs from this list. The search bar at the top of this panel can be \nused to filter the list for designs that have the search term in their \ndescriptions. The buttons at the bottom can be used to save information about \nwhatever designs are selected. The \"Save selected paths\" button will save a \ntext file listing the path to the lowest scoring model for each selected \ndesign. The \"Save selected funnels\" button will save a PDF with the plot for \neach selected design on a separate page.\n\nThe upper right area of the GUI will contain a plot with different metrics on \nthe two axes where each point represents a single model. You can right-click \non any point to take an action on the model represented by that point. Usually \nthis means visualizing the model in an external program, like pymol or chimera. \nYou can also run your own custom scripts; see the \"customization\" section below \nfor more information. \n\nThe tool bar below the plot can be used to pan around, zoom in or out, save an \nimage of the plot, or change the axes. If the mouse is over the plot, its \ncoordinates will be shown just to the right of these controls. Below the plot \nis a text form which can be used to enter a description of the design. These \ndescriptions can be searched. I like using the '+', '++', ... convention to \nrank designs so I can easily search for increasingly good designs.\n\nCustomization\n-------------\nBecause every protein design pipeline is different, ``show_my_designs`` was \nwritten to be flexible. Providing a new way to visualize specific models is \ntrivial. You just need to write a script with the extension ``*.sho`` that \ntakes the path of a model as its only argument. ``show_my_designs`` will \nsearch for scripts with this extension in every directory starting with the \ndirectory containing the model in question and going down all the way to the \nroot of the file system. Any scripts that are found are added to the menu you \nget by right-clicking on a point, using simple rules (the first letter is \ncapitalized and underscores are converted to spaces) to convert the file name \ninto a menu item name.\n\nAnother common modification is to change what metrics are extracted for each \nmodel. By default, only the metrics that outputted by rosetta's loop modeling \nframework are extracted. The metrics include: the rosetta fullatom score, the \nRMSD to the native backbone, and the number of buried unsatisfied H-bonds. To \nadd new metrics, you have to monkey-patch the ``show_my_designs`` module and \ncall ``show_my_designs.main()`` from your own script.\n\nThis is more clear with an example. Say your forward-folding simulation \noutputs an auxiliary file for each model containing all sorts of metrics \nrelevant to your particular system. You can add support for these metrics by \nreimplementing ``show_my_designs.parse_records_from_pdbs()``. This function \ntakes a list of paths to PDB files that haven't been cached yet and returns a \nlist containing ``{'metric_name': metric_value}`` dictionaries for each one. \nThe information in this list is cached so that it doesn't have to be \nregenerated unless necessary.\n\nIf your custom metrics are encoded in the PDB file itself, you can reimplement \n``show_my_designs.parse_record_from_pdb()`` instead. This function is called \nby ``show_my_designs.parse_records_from_pdbs()`` and with a list of the lines \nin a specific PDB file. It is expected to return the ``{'metric_name': \nmetric_value}`` dictionary for that model.\n\nHotkeys\n-------\n- j,f,down: Select the next design, if there is one.\n- k,d,up: Select the previous design, if there is one.\n- i,a: Focus on the description form.\n- z: Use the mouse to zoom on a rectangle.\n- x: Use the mouse to pan (left-click) or zoom (right-click).\n- c: Return to the original plot view.\n- slash: Focus on the search bar.\n- tab: Change the y-axis metric.\n- space: Change the x-axis metric.\n- escape: Unfocus the search and description forms.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Kortemme-Lab/show_my_designs", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "show_my_designs", "package_url": "https://pypi.org/project/show_my_designs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/show_my_designs/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Kortemme-Lab/show_my_designs" }, "release_url": "https://pypi.org/project/show_my_designs/1.2.2/", "requires_dist": null, "requires_python": null, "summary": "A GUI for visualizing and interacting with score vs RMSD plots.", "version": "1.2.2" }, "last_serial": 2692681, "releases": { "1.0.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a2a9ff4b6dcc50d26237b4344fbbb3ad", "sha256": "4031394149a8fee511911162754c79735cdf2dd15d46c107cfe3ccc7068a4d77" }, "downloads": -1, "filename": "show_my_designs-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a2a9ff4b6dcc50d26237b4344fbbb3ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14337, "upload_time": "2016-09-14T23:24:11", "url": "https://files.pythonhosted.org/packages/52/bb/3671a2c9e998b43b3b94fd45e1655bb3a81d296057c3744fbe7cd2dc2115/show_my_designs-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "01077f07c27115f34176f15a38def7d2", "sha256": "cdcb8d25a6ccb252f5d284f57a116e44a0d2794951f8fa24dd5dbcd764c050e0" }, "downloads": -1, "filename": "show_my_designs-1.1.0.tar.gz", "has_sig": false, "md5_digest": "01077f07c27115f34176f15a38def7d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14386, "upload_time": "2016-09-16T19:39:17", "url": "https://files.pythonhosted.org/packages/e6/cf/d38b378aec562ffe0cf82e64e69fbd387422c456b146c7c060bdf29902d6/show_my_designs-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "21dc238dc457960c12e1ac771af1968d", "sha256": "6f352ad23cc4d7c4477483cd7a2feb4f6f0f3e1b878f3842968748c1db5eacdd" }, "downloads": -1, "filename": "show_my_designs-1.1.1.tar.gz", "has_sig": false, "md5_digest": "21dc238dc457960c12e1ac771af1968d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17462, "upload_time": "2016-09-26T04:10:35", "url": "https://files.pythonhosted.org/packages/24/af/f9951b3d413933b3b3863943e35dffdb42b698f5c88c6250fec5c37d2fdd/show_my_designs-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "228b3981042b1c96e32c55e4879363f8", "sha256": "c4ada7e99232a957465580f6c5504b536e4f61f784dc447f44e10cab6dd26de7" }, "downloads": -1, "filename": "show_my_designs-1.2.0.tar.gz", "has_sig": false, "md5_digest": "228b3981042b1c96e32c55e4879363f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17625, "upload_time": "2017-03-06T22:06:56", "url": "https://files.pythonhosted.org/packages/85/ef/a117ff6ecdb4fdd5380f1189db1f0472f251e0806c8595f111da7089a3fa/show_my_designs-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "76664c7291382c97f47e1827a866bf89", "sha256": "885d1ad8e3ec2319a5574e864e818b67fb0f7bb76a10801df645e240d371477b" }, "downloads": -1, "filename": "show_my_designs-1.2.1.tar.gz", "has_sig": false, "md5_digest": "76664c7291382c97f47e1827a866bf89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16340, "upload_time": "2017-03-07T01:08:41", "url": "https://files.pythonhosted.org/packages/e6/40/a4fd880f48640b0e579158cc571d496765199bf47e69bee34dacdf04388c/show_my_designs-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "d79d2d55422e5b8f4d068b2f5519bf8e", "sha256": "cc0757e7facae9fc37a2773761bdc49c0c25431e542d6ceadd6a15d019352188" }, "downloads": -1, "filename": "show_my_designs-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d79d2d55422e5b8f4d068b2f5519bf8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16516, "upload_time": "2017-03-08T22:28:09", "url": "https://files.pythonhosted.org/packages/f8/23/729c7455e1c6cb6227113d7ecef49ce2b2b26f0a94fe8b41f9471cddf6d0/show_my_designs-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d79d2d55422e5b8f4d068b2f5519bf8e", "sha256": "cc0757e7facae9fc37a2773761bdc49c0c25431e542d6ceadd6a15d019352188" }, "downloads": -1, "filename": "show_my_designs-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d79d2d55422e5b8f4d068b2f5519bf8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16516, "upload_time": "2017-03-08T22:28:09", "url": "https://files.pythonhosted.org/packages/f8/23/729c7455e1c6cb6227113d7ecef49ce2b2b26f0a94fe8b41f9471cddf6d0/show_my_designs-1.2.2.tar.gz" } ] }