{"id":20690233,"url":"https://github.com/merck/mrnaid","last_synced_at":"2025-04-22T16:56:06.920Z","repository":{"id":37465110,"uuid":"478217862","full_name":"Merck/mRNAid","owner":"Merck","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-06T05:07:01.000Z","size":2007,"stargazers_count":14,"open_issues_count":9,"forks_count":12,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-29T16:51:14.344Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Merck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-04-05T16:44:15.000Z","updated_at":"2025-01-15T03:32:47.000Z","dependencies_parsed_at":"2024-01-24T16:06:31.778Z","dependency_job_id":null,"html_url":"https://github.com/Merck/mRNAid","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/Merck%2FmRNAid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merck%2FmRNAid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merck%2FmRNAid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Merck%2FmRNAid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Merck","download_url":"https://codeload.github.com/Merck/mRNAid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250284110,"owners_count":21405288,"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-16T23:12:21.349Z","updated_at":"2025-04-22T16:56:06.897Z","avatar_url":"https://github.com/Merck.png","language":"Jupyter Notebook","readme":"# mRNAid: mRNA optimization tool\n\n![PyPI - Version](https://img.shields.io/pypi/v/mRNAid)\n\nmRNAid is an experimentally validated open-source tool for optimization and visualisation of mRNA molecules. It features\n different optimization strategies based on user preferences.\n\nmRNAid is available at: [https://mrnaid.dichlab.org](https://mrnaid.dichlab.org)\n\nMore information about the tool and experiments performed for its evaluation is available in the following publication:\n\n\u003e Nikita Vostrosablin, Shuhui Lim, Pooja Gopal, Kveta Brazdilova, Sushmita Parajuli, Xiaona Wei, Anna Gromek, \n\u003eMartin Spale, Anja Muzdalo, Constance Yeo, Joanna Wardyn, Petr Mejzlik, Brian Henry, Anthony W Partridge and \n\u003eDanny A. Bitton: **mRNAid, an Open-Source Platform for Therapeutic mRNA Design and Optimization Strategies**, 2022\n\u003e \n\u003e[bioRxiv link](https://www.biorxiv.org/content/10.1101/2022.04.04.486952v1)\n\nYou can find brief manual on how to use the tool [here](./usage_manual/Manual.md).\n\n## Command-line interface setup\n\nInstall mRNAid with pip:\n```bash\npip install mRNAid\n```\n\nSee help using:\n```bash\nmrnaid optimize --help\n```\n\nExample:\n```bash\nmrnaid optimize \\\n  --output example.json \\\n  --optimization-criterion codon_usage \\\n  --five-end ATG \\\n  --three-end CGG \\\n  --input-mRNA AGCAGAGAAGGCGGAAGCAGTGGCGTCCGCAGCTGGGGCTTGGCCTGCGGGCGGCCAGCGAAGGTGGCGAAGGCTCCCACTGGATCCAGAGTTTGCCGTCCAAGCAGCCTCGTCTCGGCGCGCAGTGTCTGTGTCCGTCCTCTACCAGCGCCTTGGCTGAGCGGAGTCGTGCGGTTGGTGGGGGAGCCCTGCCCTCCTGGTTCGGCCTCCCCGCGCACTAGAACGATCATGAACTTCTGAAGGGACCCAGCTTTCTTTGTGTGCTCCAAGTGATTTGCACAAATAATAATATATATATTTATTGAAGGAGAGAATCAGAGCAAGTGATAATCAAGTTACTATGAGTCTGCTAAACTGTGAAAACAGCTGTGGATCCAGCCAGTCTGAAAGTGACTGCTGTGTGGCCATGGCCAGCTCCTGTAGCGCTGTAACAAAAGATGATAGTGTGGGTGGAACTGCCAGCACGGGGAACCTCTCCAGCTCATTTATGGAGGAGATCCAGGGATATGATGTAGAGTTTGACCCACCCCTGGAAAGCAAGTATGAATGCCCCATCTGCTTGATGGCATTACGAGAAGCAGTGCAAACGCCATGCGGCCATAGGTTCTGCAAAGCCTGCATCATAAAATCAATAAGGGATGCAGGTCACAAATGTCCAGTTGACAATGAAATACTGCTGGAAAATCAACTATTTCCAGACAATTTTGCAAAACGTGAGATTCTTTCTCTGATGGTGAAATGTCCAAATGAAGGTTGTTTGCACAAGATGGAACTGAGACATCTTGAGGATCATCAAGCACATTGTGAGTTTGCTCTTATGGATTGTCCCCAATGCCAGCGTCCCTTCCAAAAATTCCATATTAATATTCACATTCTGAAGGATTGTCCAAGGAGACAGGTTTCTTGTGACAACTGTGCTGCATCAATGGCATTTGAAGATAAAGAGATCCATGACCAGAACTGTCCTTTGGCAAATGTCATCTGTGAATACTGCAATACTATACTCATCAGAGAACAGATGCCTAATCATTATGATCTAGACTGCCCTACAGCCCCAATTCCATGCACATTCAGTACTTTTGGTTGCCATGAAAAGATGCAGAGGAATCACTTGGCACGCCACCTACAAGAGAACACCCAGTCACACATGAGAATGTTGGCCCAGGCTGTTCATAGTTTGAGCGTTATACCCGACTCTGGGTATATCTCAGAGGTCCGGAATTTCCAGGAAACTATTCACCAGTTAGAGGGTCGCCTTGTAAGACAAGACCATCAAATCCGGGAGCTGACTGCTAAAATGGAAACTCAGAGTATGTATGTAAGTGAGCT \n# See all arguments using mrnaid optimize --help\n```\n\nThe results will be stored in the output JSON file, see example [here](notebooks/01_mRNAid_example_usage.ipynb).\n\nYou can also invoke mRNAid directly from Python:\n```python\nfrom mrnaid import optimize\n\noptimize(\n    input_mrna='AGCAGAGAAGGCGGAAGCAGTGGCGTCCGCAGCTGGGGCTTGGCCTGCGGGCGGCCAGCGAAGGTGGCGAAGGCTCCCACTGGATCCAGAGTTTGCCGTCCAAGCAGCCTCGTCTCGGCGCGCAGTGTCTGTGTCCGTCCTCTACCAGCGCCTTGGCTGAGCGGAGTCGTGCGGTTGGTGGGGGAGCCCTGCCCTCCTGGTTCGGCCTCCCCGCGCACTAGAACGATCATGAACTTCTGAAGGGACCCAGCTTTCTTTGTGTGCTCCAAGTGATTTGCACAAATAATAATATATATATTTATTGAAGGAGAGAATCAGAGCAAGTGATAATCAAGTTACTATGAGTCTGCTAAACTGTGAAAACAGCTGTGGATCCAGCCAGTCTGAAAGTGACTGCTGTGTGGCCATGGCCAGCTCCTGTAGCGCTGTAACAAAAGATGATAGTGTGGGTGGAACTGCCAGCACGGGGAACCTCTCCAGCTCATTTATGGAGGAGATCCAGGGATATGATGTAGAGTTTGACCCACCCCTGGAAAGCAAGTATGAATGCCCCATCTGCTTGATGGCATTACGAGAAGCAGTGCAAACGCCATGCGGCCATAGGTTCTGCAAAGCCTGCATCATAAAATCAATAAGGGATGCAGGTCACAAATGTCCAGTTGACAATGAAATACTGCTGGAAAATCAACTATTTCCAGACAATTTTGCAAAACGTGAGATTCTTTCTCTGATGGTGAAATGTCCAAATGAAGGTTGTTTGCACAAGATGGAACTGAGACATCTTGAGGATCATCAAGCACATTGTGAGTTTGCTCTTATGGATTGTCCCCAATGCCAGCGTCCCTTCCAAAAATTCCATATTAATATTCACATTCTGAAGGATTGTCCAAGGAGACAGGTTTCTTGTGACAACTGTGCTGCATCAATGGCATTTGAAGATAAAGAGATCCATGACCAGAACTGTCCTTTGGCAAATGTCATCTGTGAATACTGCAATACTATACTCATCAGAGAACAGATGCCTAATCATTATGATCTAGACTGCCCTACAGCCCCAATTCCATGCACATTCAGTACTTTTGGTTGCCATGAAAAGATGCAGAGGAATCACTTGGCACGCCACCTACAAGAGAACACCCAGTCACACATGAGAATGTTGGCCCAGGCTGTTCATAGTTTGAGCGTTATACCCGACTCTGGGTATATCTCAGAGGTCCGGAATTTCCAGGAAACTATTCACCAGTTAGAGGGTCGCCTTGTAAGACAAGACCATCAAATCCGGGAGCTGACTGCTAAAATGGAAACTCAGAGTATGTATGTAAGTGAGCT',\n    five_end='ATG',\n    three_end='CGG',\n    optimization_criterion='codon_usage',\n)\n```\n\nSee [mrnaid/cli/optimize.py](mrnaid/cli/optimize.py) for all available parameters.\n\nSee [notebooks/01_mRNAid_example_usage.ipynb](notebooks/01_mRNAid_example_usage.ipynb) for usage and output format example.\n\n## Local web server setup\n\nIf you don't want to use public server you can install this tool locally on your machine.\n\n### 1. Using docker-compose\n\nThe easiest way to run the tool locally is to use `docker`. You will have to install docker first and it should either\ncontain `docker-compose` utility as a part of the distribution or you will need to \n[install it](https://docs.docker.com/compose/install/) separately.\n\nNavigate to the project folder and execute:\n\n\n```bash\ndocker-compose up --build\n```\n\nThe tool will be available at [http://localhost/](http://localhost/)\n\n### 2. Without docker\n\nTo be able to run the tool without `docker` you will need to run frontend and backend separately.\n\n#### Backend\n\nYou need [Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html) or one of \nthe alternatives ([Miniconda](https://docs.conda.io/en/latest/miniconda.html), [Miniforge](https://github.com/conda-forge/miniforge)) \nbeing installed.\n\nFirst, navigate to the `./mrnaid/backend/flask_app/` directory and execute following commands:\n\n```bash\ncd ./mrnaid/backend/flask_app/\n```\n\n* Create a new virtual environment:\n\n```bash\nmake env-create\n```\n\n* Install redis database\n\n```bash\nmake redis-install\n```\n\n- In separate terminals execute following commands:\n    1. Start redis server: `make redis-run`\n    2. Start uwsgi server: `make uwsgi-run`\n    3. Start celery: `make celery-run`\n\n- After these steps are executed, the job submission is available at the \"optimize\" API url: http://localhost/api/v1/optimize.\nExample of the json submitted to the \"optimize\" end point:\n\n```json\n{\n  \"config\": {\n    \"avoided_motifs\": [\"EcoRI\", \"UUU\"],\n    \"codon_usage_frequency_threshold\": 0.1,\n\t\"max_GC_content\": 0.9,\n\t\"min_GC_content\": 0.5,\n\t\"GC_window_size\": 100,\n\t\"organism\": \"m_musculus\",\n\t\"entropy_window\": 30,\n  \"number_of_sequences\": 2\n  },\n  \"dinucleotides\": false, \n  \"match_codon_pair\": false,\n  \"uridine_depletion\": true,\n  \"CAI\": false,\n  \"precise_MFE_algorithm\": true,\n  \"file_name\": \"test\",\n  \"sequences\": {\n    \"five_end_flanking_sequence\": \"UGAAUUCAGCAAUCU\",\n    \"gene_of_interest\": \"AAUCAAAUAGGGUUAAGUCUAGGAUUGUUAGUCUGCUAAGGUCUGCAGUUACUGUGUCUACUGAUGAUAGUUCGCAUUGACAAU\",\n    \"three_end_flanking_sequence\": \"GC\"\n  }\n}\n```\n\n- The job execution results are available at: http://localhost/api/v1/status/task-id, where `task-id` should be \nreplaced with actual task id received after the request is submitted to the \"optimize\" API\n\n\n\n\n   \n##### Running the tests\n\nTo be able to execute tests for backend with pytest, you need to set up following environmental variables in the corresponding\nenvironment:\n\n- PYTHONPATH=..:../common:../flask_app\n- LOG_FILE=../flask_app/logs/logs.log\n- BACKEND_OBJECTIVES_DATA=../common/objectives/data\n\nTests can be found in `backend/tests/` directory\n\n#### Frontend\n\nInstall [Node.js](https://nodejs.org/en/download/) and [Nginx](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/) \nweb server.\n\n* Navigate to `frontend` directory\n* Build a package:\n\n```bash\nnpm ci \u0026\u0026 npm run build\n```\n\n* Remove default nginx configurations from nginx system directory\n\n```bash\n# location may vary based on your system and installation\nrm /etc/nginx/conf.d/default.conf\n```\n\n* Replace deleted configs with custom ones\n```bash\n# target location may vary based on your system and installation\ncp ./config/nginx.conf /etc/nginx/conf.d/\n```\n\n* Move build files to the corresponding nginx directory\n```bash\ncp -R ./build/* /usr/share/nginx/html\n```\n\n* Restart nginx web server\n\n\n\n## Contributing\n\nmRNAid is an open platform, please propose your changes and improvements. This can be done through the [Issues](link)\ntab.\n## License\n\nReleased under MIT License\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerck%2Fmrnaid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmerck%2Fmrnaid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerck%2Fmrnaid/lists"}