{"id":18978279,"url":"https://github.com/autodesk/nanodesign","last_synced_at":"2025-04-19T17:42:18.454Z","repository":{"id":145539888,"uuid":"78236133","full_name":"Autodesk/nanodesign","owner":"Autodesk","description":"Python package for working with nucleic acid structural designs.","archived":false,"fork":false,"pushed_at":"2018-04-24T23:40:32.000Z","size":1238,"stargazers_count":16,"open_issues_count":1,"forks_count":11,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2025-03-29T10:51:22.681Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Autodesk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-01-06T20:22:52.000Z","updated_at":"2024-03-31T10:33:06.000Z","dependencies_parsed_at":"2023-04-09T06:20:48.454Z","dependency_job_id":null,"html_url":"https://github.com/Autodesk/nanodesign","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Fnanodesign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Fnanodesign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Fnanodesign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Fnanodesign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Autodesk","download_url":"https://codeload.github.com/Autodesk/nanodesign/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249235086,"owners_count":21235146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T15:32:53.852Z","updated_at":"2025-04-16T11:31:45.221Z","avatar_url":"https://github.com/Autodesk.png","language":"Python","readme":"Nanodesign\n==========\n\nCreate, interact and modify nucleic acid based structures. The Nanodesign Python Package is aimed at providing a toolkit for working with structural DNA/RNA nanotechnology designs. This package is meant to support all types of interaction with these designs, including loading Cadnano files and modifying them, building new structures from scratch, or just converting formats so you can easily visualize or simulate your design.\n\n## Getting Started\n\nYou should have [`git`](https://git-scm.com/downloads) installed as well as [Python 2.7](https://python.org). Note that this part of the guide is aimed towards Mac OS X or Linux installs. For a Windows install, a similar pattern should work using one of the command line shells.\n\nOn the command line, change to the directory you want Nanodesign installed under, and run:\n```shell\ngit clone https://github.com/Autodesk/nanodesign\n```\n\nYou will now have the repository cloned and checked out to the `master` branch in the subdirectory `nanodesign/`. See [CONTRIBUTING.md](CONTRIBUTING.md#branching-model) for details on other branches.\n\n### Installation\n\nWe are currently working on getting the package set up for installation in your Python's site packages. Once this is fully tested, we'll also be adding the package to the PyPI package repository and it should no longer be necessary to acquire the git repository for regular usage. \n\nTo try out the site package install, you can run the following from the repository directory:\n```shell\npython setup.py install\n```\n\nCurrently, the install should be functional for almost all of the package, except for the [PDB/mmCIF](http://mmcif.wwpdb.org/) export routines. The example scripts will not be installed, but you can still access them from the `scripts/` subdirectory as mentioned in the examples, below.\n\n### Example Usage: Package\n\nTo do some simple operations with the package, we have a few short scripts in the [`examples/`](examples/) subdirectory that show off the interface:\n\n#### Strand Statistics\n\nSource: [`examples/strand-statistics.py`](examples/strand-statistics.py)  \nThis script loads a Cadnano file and produces some statistics on the number of strands by length, and the number of distinct virtual helices visited by each strand.\n\n#### Find A Specific Sequence\n\nSource: [`examples/seq-search.py`](examples/seq-search.py)  \nThis script loads a Cadnano file and searches through all of the domains to find a specific DNA sequence. It will print out all domain ids that contain that sequence.\n\n### Example Usage: Scripts\n\nThere are currently three main scripts available: \n* `converter`: Converts between different formats.\n* `stapler`: Adds staples to a design following certain templates.\n* `vis`: Visualize a design. Requires PyOpenGL installed (`pip install pyopengl`).\n\nFor all of these, it's assumed that you are running from the `scripts/` subdirectory.\n\n### Running Tests: via Docker \n\nYou can easily run the tests included in this repo. These tests should be run, and pass, before submitting an update to the repo. \nThe tests are packaged in a `docker-compose` file for easy execution. Docker and Docker Compose must be installed to run tests using this method. \nSee the links at the end of this section for installation links.\n\nTo run the tests, from the repo root, issue these two commands:\n* `docker-compose -f docker-compose-test.yml build`\n* `docker-compose -f docker-compose-test.yml run test`\n\nThe test will output test progresss and results to stdout and will record details of the test run into a JUnit `output.xml` located in the repo root. See [](JUnit.org) for more details on the struture of this `output.xml` file.\n\n\nHere is more information on installing docker and docker-compose.\n* [Installing Docker](https://docs.docker.com/engine/installation/)\n* [Installing Docker Compose](https://docs.docker.com/compose/install/)\n\n#### Converter\n\nFor more help on the converter's options:\n\n```shell\n./converter.py --help\n```\n\nTo convert a Cadnano design file `my_sample.json` into a [Nanodesign Web Application](https://autode.sk/nanodesign) viewer file, using the scaffold sequence `M13mp18`:\n\n```shell\n./converter.py --infile my_sample.json --informat cadnano --inseqname M13mp18 --outfile my_sample_viewer.json --outformat viewer\n```\n\nTo convert a Cadnano design file `my_sample.json` into a [CanDo](https://cando-dna-origami.org) format file, using the scaffold sequence `p8064':\n\n```shell\n./converter.py -i my_sample.json -if cadnano -isn p8064 -o my_sample.cndo -of cando\n```\n\nNote that we've abbreviated the option names here, using the short options.\n\nFinally, to convert a Cadnano design file `my_sample.json` into a [mmCIF](http://mmcif.wwpdb.org/) file, using the sequence file `my_sample.csv` generated via Cadnano sequence export:\n\n```shell\n./converter.py -i my_sample.json -if cadnano --inseqfile my_sample.csv -o my_sample.cif -of cif\n```\n\nFor using the complex options, like `--transform`, `--staples`, look at the test scripts found in `tests/converters/` for more details.\n\n#### Stapler\n\nThe stapler currently does not have a full set of arguments or help options. It takes a Cadnano file which has a single scaffold, and already has a maximal staple set in the design file. You could generate this using the converter's staple operations, or in Cadnano. The template used is one which is optimized for honeycomb lattice structures, and the timescales are such that it should run relatively quickly, but may not be the fully optimal staple set. See the comments in `scripts/stapler.py` for how to modify these settings. \n\nTo run the stapler on the Cadnano file `my_sample.json`:\n\n```shell\n./stapler.py my_sample.json\n```\n\nPlease see the [Getting Help](#get-help) section for a forum link should you need more assistance in using the stapler!\n\n#### Visualizer\n\nThe visualizer requires PyOpenGL installed in order to run. To install PyOpenGL:\n\n```shell\npip install pyopengl\n```\n\nFor help on the visualizer's arguments and options:\n\n```shell\n./vis.py --help\n```\n\nTo visualize a Cadnano file named `my_sample.json`, using the sequence `M13mp18`:\n\n```shell\n./vis.py -i my_sample.json -isn M13mp18\n```\n\nFor more details on extra options, check out the test scripts in `tests/visualizer/`.\n\n\n\n--------\n\n## The Package\n\nThis package has several basic components:\n\n* Data Format - our internal data format for use by specific algorithms and to serve as an intermediate if needing to do format conversion. This format breaks a nanostructure down into core components: contiguous helices, nucleic acid strands, domains within a strand.\n* Converters - we want to be able to work with any format found in the community. Currently we support loading of Cadnano files, and writing of several different formats, including [CanDo](http://cando-dna-origami.org), [SimDNA](https://github.com/mingqiu/SimDNA), [Nanodesign Viewer](https://autode.sk/nanodesign), and more.\n* Algorithms - common algorithms that are used on these structures. Currently this includes melting point calculations for domains, automatic generation of staple sets for a structure, removal of staples matching certain selections, and more.\n\n### Get help\n - API Documentation: We currently have help docstrings for most functions and methods, and will be expanding this into a full API Docs page soon.\n - [Forums](https://forum.bionano.autodesk.com/c/Nano-Design/nanodesign-python)\n - [Email us](mailto:nanodesign@autodesk.com)\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details. \n\n## Contributors\n\nWe maintain an informal list of contributors to the repository. See [CONTRIBUTORS.md](CONTRIBUTORS.md) for a list of those who have made this possible.\n\n## Notices\n\nSee [NOTICES.md](NOTICES.md) for details about incorporated code and design files.\n\n## License\n\nCopyright 2016 Autodesk Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk%2Fnanodesign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautodesk%2Fnanodesign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk%2Fnanodesign/lists"}