{"id":18480449,"url":"https://github.com/fjossinet/rna-science-toolbox","last_synced_at":"2025-04-08T16:31:18.214Z","repository":{"id":13969243,"uuid":"16669818","full_name":"fjossinet/RNA-Science-Toolbox","owner":"fjossinet","description":"A platform to do RNA science ","archived":false,"fork":false,"pushed_at":"2021-03-07T17:43:36.000Z","size":19306,"stargazers_count":27,"open_issues_count":0,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-23T16:11:36.379Z","etag":null,"topics":["bioinformatics","python","rna","rna-structure"],"latest_commit_sha":null,"homepage":"http://fjossinet.github.io/RNA-Science-Toolbox/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fjossinet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-09T16:15:40.000Z","updated_at":"2024-05-09T16:32:03.000Z","dependencies_parsed_at":"2022-07-31T16:48:55.783Z","dependency_job_id":null,"html_url":"https://github.com/fjossinet/RNA-Science-Toolbox","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/fjossinet%2FRNA-Science-Toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjossinet%2FRNA-Science-Toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjossinet%2FRNA-Science-Toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fjossinet%2FRNA-Science-Toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fjossinet","download_url":"https://codeload.github.com/fjossinet/RNA-Science-Toolbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247881955,"owners_count":21011967,"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":["bioinformatics","python","rna","rna-structure"],"created_at":"2024-11-06T12:18:54.379Z","updated_at":"2025-04-08T16:31:16.982Z","avatar_url":"https://github.com/fjossinet.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RNA Science Toolbox\n\n* [Basic installation](#basic-installation)\n  * [Prerequisites](#prerequisites)\n    * [Python environment](#python-environment)\n    * [Fabric3](#fabric3)\n    * [Docker](#docker)\n  * [RNA Science Toolbox dependencies](#rna-science-toolbox-dependencies)\n    * [Python libraries](#python-libraries)\n    * [RNA algorithms](#rna-algorithms)\n  * [Environment Configuration](#environment-configuration)\n* [Quickstart](#quickstart)\n  * [Ipython](#ipython)\n  * [Jupyter Notebooks](#jupyter-notebooks)\n* [Advanced installation](#advanced-installation)\n  * [RNA 3D modeling](#rna-3d-modeling)\n  * [Web Services](#web-services)\n\nThe RNA Science Toolbox provides a Python API (PyRNA) to do RNA science on Linux (mainly Ubuntu) and MacOSX. PyRNA allows you to:\n\n* parse RNA data from \"classical\" file formats (PDB, CT, FASTA, VIENNA,...) and convert them into easy-to-use and easy-to-analyse data structures:\n  * [Pandas Series and DataFrames](http://pandas.pydata.org/pandas-docs/stable/dsintro.html)\n  * \"PyRNA objects\" (as defined in the module pyrna.features).\n* compute RNA data from RNA algorithms (see below for details) and convert them into Pandas data structures and PyRNA objects,\n* recover RNA data from public databases ([PDB](http://www.rcsb.org/pdb/home/home.do), [RFAM](http://rfam.sanger.ac.uk),...) and convert them into Pandas data structures and PyRNA objects,\n* deploy some functionalities as REST Web services.\n\nThis project is related to the [DockeRNA project](https://github.com/fjossinet/DockeRNA) which provides Docker images containing the RNA algorithms you may need.\n\nThe RNA Science Toolbox provides also a bunch of [Jupyter](http://jupyter.org) notebooks [to demo the basic features](#quickstart). You can have a look at them by following these links:\n\n* [Create and manipulate molecules](https://nbviewer.jupyter.org/github/fjossinet/RNA-Science-Toolbox/blob/master/notebooks/Create%20and%20manipulate%20molecules.ipynb)\n* [Create and manipulate alignments](https://nbviewer.jupyter.org/github/fjossinet/RNA-Science-Toolbox/blob/master/notebooks/Create%20and%20manipulate%20alignments.ipynb)\n* [Create and manipulate secondary structures](https://nbviewer.jupyter.org/github/fjossinet/RNA-Science-Toolbox/blob/master/notebooks/Create%20and%20manipulate%20secondary%20structures.ipynb)\n* [Create and manipulate tertiary structures](https://nbviewer.jupyter.org/github/fjossinet/RNA-Science-Toolbox/blob/master/notebooks/Create%20and%20manipulate%20tertiary%20structures.ipynb)\n\nYou can [follow this project on twitter](https://twitter.com/RnaSciToolbox) to get updates as they happen.\n\n# Basic installation\n\nTo use the RNA Science Toolbox, you will need to go through several steps. But don't be afraid, each step is really easy to follow.\n\nIf you don't care about the details, you can go directly to the instructions **copy/paste in a terminal**.\n\nWe will provide soon a script allowing to fully configure an Ubuntu [openstack](https://www.openstack.org) image with the RNA Science toolbox.\n\n## Prerequisites\n\n### Python environment\n\nYou need at first to have a Python distribution installed on your computer. If you don't have one, we recommend you a distribution like [Anaconda](https://www.continuum.io/why-anaconda).\n\nIf you're using Linux Ubuntu, **copy/paste in a terminal**:\n\n    wget \"https://repo.continuum.io/archive/Anaconda2-5.0.1-Linux-x86_64.sh\"\n    chmod u+x ./Anaconda2-5.0.1-Linux-x86_64.sh\n    ./Anaconda2-5.0.1-Linux-x86_64.sh\n    bash\n\n### Fabric3\n\nYou also need the tool [Fabric3](https://pypi.org/project/Fabric3/).\n\nIf you're using the [Anaconda distribution](https://www.continuum.io/why-anaconda) on Linux Ubuntu/MacOSX, **copy/paste in a terminal**:\n\n    conda install fabric3\n\n### Docker\n\nTo install the RNA algorithms, you need first to get a tool named [Docker](https://www.docker.com).\n\nIf you're using Linux Ubuntu, **copy/paste in a terminal**:\n\n    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n    sudo add-apt-repository \\\n        \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \\\n        $(lsb_release -cs) \\\n        stable\"\n    sudo apt-get update\n    sudo apt-get install docker-ce\n\nIn order to run docker as non-root user, you need to add your user to the docker group.\n\n**Copy/paste in a terminal**:\n\n    sudo usermod -a -G docker $USER\n\nYou will perhaps need to reboot:\n\n    sudo reboot\n\n## RNA Science Toolbox dependencies\n\n### Python libraries\n\nOnce done, download the RNA Science Toolbox and go into its directory. To install its Python dependencies, you can use either the package manager conda (from the [Anaconda distribution](https://www.continuum.io/why-anaconda)) or pip.\n\nIf you're using Linux Ubuntu/MacOSX, **copy/paste in a terminal**:\n\n    fab python\n\nTo use pip, type:\n\n    fab python:manager=pip\n\n### RNA algorithms\n\nEach Docker image available contains several algorithms:\n\n* [fjossinet/assemble2](https://hub.docker.com/r/fjossinet/assemble2/): provides [RNAVIEW](http://ndbserver.rutgers.edu/ndbmodule/services/download/rnaview.html), [Vienna RNA package](https://www.tbi.univie.ac.at/RNA/), [foldalign](http://rth.dk/resources/foldalign/), [LocARNA](http://rna.informatik.uni-freiburg.de/LocARNA/)\n* [fjossinet/rnaseq](https://hub.docker.com/r/fjossinet/rnaseq/): provides [SAMtools](http://samtools.sourceforge.net), [Tophat2](https://ccb.jhu.edu/software/tophat/), [Bowtie2](http://bowtie-bio.sourceforge.net/bowtie2/index.shtml)\n\nIf you need more details about these images, check their Web page.\n\nTo install these images, **copy/paste in a terminal**:\n\n    fab docker\n\n## Environment Configuration\n\nIn the configuration file of your shell (.bashrc, .zshrc,...), add the following lines:\n\n    export TOOLBOX=THE_PATH_TO_YOUR_RNA_SCIENCE_TOOLBOX\n    export PYTHONPATH=$PYTHONPATH:$TOOLBOX\n    export PATH=$PATH:$TOOLBOX/pyrna:$TOOLBOX/scripts/python:$PATH\n\nIf you're using bash on Linux Ubuntu/MacOSX, **copy/paste in a terminal**:\n\n    cat \u003c\u003cEOT \u003e\u003e $HOME/.bashrc\n    export TOOLBOX=\"\\$HOME/RNA-Science-Toolbox\"\n    export PYTHONPATH=\\$PYTHONPATH:\\$TOOLBOX\n    export PATH=\\$PATH:\\$TOOLBOX/pyrna:\\$TOOLBOX/scripts/python:\\$PATH\n    EOT\n\n    bash\n\nRestart your shell and type (don't forget to start Docker before):\n\n    pyrna_tests.py\n\nYour RNA Science Toolbox is fully configured if you get something like:\n\n\u003cpre\u003e\nRecovering entry 1EHZ from Protein Databank...\n\n## 3D annotation ##\n\nList of base-pairs computed with RNAVIEW:\n\nedge1 edge2 orientation  pos1  pos2\n0      (     )           c     1    72\n1      (     )           c     2    71\n2      (     )           c     3    70\n[...]\n\u003c/pre\u003e\n\n# Quickstart\n\n## Ipython\n\nTo automatically import the PyRNA API from the IPython REPL, go into the directory $HOME/.ipython/profile_default/startup. Create a file named load_config.py containing the following lines:\n\n\u003cpre\u003e\nfrom pyrna.db import *\nfrom pyrna.features import *\nfrom pyrna.computations import *\nfrom pyrna.parsers import *\nfrom pyrna.utils import *\n\u003c/pre\u003e\n\nStart a new IPython session from the command-line and type directly, without any import:\n\n\u003cpre\u003e\npdb = PDB()\ntertiary_structures = parse_pdb(pdb.get_entry('1EHZ'))\nfor ts in tertiary_structures:\n  print ts.rna.sequence\n\u003c/pre\u003e\n\n## Jupyter Notebooks\n\nThe RNA Science Toolbox provides also a bunch of notebooks to demo the basic features. **Copy/paste in a terminal**:\n\n    fab jupyter\n\nThen, from the notebooks folder of the RNA Science Toolbox, type in a terminal:\n\n    jupyter notebook\n\nThis will open a Web browser listing all the notebooks available.\n\n# Advanced installation\n\n## RNA 3D modeling\n\nIf you're interested in 3D modeling with the tool [Assemble2](http://www.bioinformatics.org/assemble/index.html), you will need to import, annotate and store RNA 3D fragments derived from PDB structures.\n\nTo do so, you will need first to install [MongoDB](https://www.mongodb.com/fr) on your computer.\n\nIf you're using Linux Ubuntu, **copy/paste in a terminal**:\n\n    fab mongodb\n\nWith OSX, you can use [homebrew](https://brew.sh/index_fr.html) and **copy/paste in a terminal**:\n\n    brew update ; brew install mongodb ; brew services start mongodb\n\nOnce MongoDB installed, you need to feed the database with RNA 3D fragments. To do so **copy/paste in a terminal**:\n\n    import_3Ds.py -annotate\n    import_3Ds.py -annotate -rna3dhub\n\nBe patient, each import takes a while. I recommend you to do these imports in a [screen](https://www.gnu.org/software/screen/manual/screen.html) session.\n\n## Web Services\n\nThe RNA Science Toolbox allows you to give access to some of its functionalities as Web Services. These services are made available through a Web server.\n\n### Node.js\n\nYou need to have [node.js](https://nodejs.org/en/) installed on your computer.\n\n### Install the Web server dependencies\n\nFrom the directory of the RNA Science Toolbox, **copy/paste in a terminal**:\n\n    fab website\n\n### Launch the Web server\n\n**Copy/paste in a terminal**:\n\n    cd $TOOLBOX/pyrna\n    ./server.py\n\nOpen your browser at [http://localhost:8080](http://localhost:8080)\n\nYou should get a Web page displaying the load of your server for the last 60 minutes. The chart is updated each minute.\n\n![Server Load](server_load.png)\n\nYou can use a custom hostname and/or port by typing:\n\n    cd $TOOLBOX/pyrna\n    ./server.py -h your_hostname_OR_IP_adress -p your_port\n\nOpen your browser at http://your_hostname_OR_IP_adress:your_port\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjossinet%2Frna-science-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffjossinet%2Frna-science-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffjossinet%2Frna-science-toolbox/lists"}