https://github.com/hobywan/miranda
A software to predict miRNA secondary structure regarding conformation energy and matching size.
https://github.com/hobywan/miranda
java-ui javafx mirna research
Last synced: 3 months ago
JSON representation
A software to predict miRNA secondary structure regarding conformation energy and matching size.
- Host: GitHub
- URL: https://github.com/hobywan/miranda
- Owner: hobywan
- License: apache-2.0
- Created: 2019-04-14T21:22:15.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-22T11:17:58.000Z (about 6 years ago)
- Last Synced: 2025-02-04T11:04:46.597Z (4 months ago)
- Topics: java-ui, javafx, mirna, research
- Language: Java
- Homepage:
- Size: 3.1 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.com/hobywan/miranda)
[](https://ci.appveyor.com/project/hobywan/miranda)
[](https://www.codacy.com/app/hobywan/miranda?utm_source=github.com&utm_medium=referral&utm_content=hobywan/miranda&utm_campaign=Badge_Grade)**miranda** is a [nucleobase](https://en.wikipedia.org/wiki/Nucleobase) sequence analyzer written in Java.
It computes a probable [miRNA](https://en.wikipedia.org/wiki/MicroRNA) [secondary structure](https://en.wikipedia.org/wiki/Nucleic_acid_secondary_structure) from a given sequence,
regarding the released conformation energy and the number of matched bases.
It is endowed with a graphical user interface based on [JavaFX](https://openjfx.io):
###### Table of contents
- [Build instructions](#build)
- [Feature and algorithm](#feature)
- [How to contribute](#license)---
### Build and use
###### Build[](https://travis-ci.com/hobywan/miranda)
[](https://ci.appveyor.com/project/hobywan/miranda)**miranda** is cross-platform.
It requires a [recent](https://www.oracle.com/technetwork/java/javase/downloads/index.html) Java SE to be built from sources (at least 11).
It relies on [gradle](https://gradle.org) toolchain to build binaries, but it is self-managed though.
To build and run it, just open a terminal and type:```bash
./gradlew run # on macOS or Linux
gradlew.bat run # on Windows
```If you want to create executables, type:
```bash
./gradlew createApp # on macOS
gradlew.bat createExe # on Windows
```
> They will be located under `build/macApp` or `build/launch4j`.###### Use
**miranda** is very simple to use:
Its user interface enables to:
- import and run a given `.txt` sequence file.
- display predicted miRNA secondary structure pattern.
- select conformation energy criterion.
- show stats and conformation energy matrix.> You can save results by a drag-and-drop to a file.
-----
###### Basic background
[DNA](https://en.wikipedia.org/wiki/DNA) and [RNA](https://en.wikipedia.org/wiki/RNA) are nucleic acids which are major macromolecules for all forms of life.
They differ in their chemical structure since RNA is single-stranded as opposed to DNA.
A [miRNA](https://en.wikipedia.org/wiki/MicroRNA) is a small [non-coding](https://en.wikipedia.org/wiki/Non-coding_RNA) RNA, which dysregulation can lead to known [diseases](https://en.wikipedia.org/wiki/MicroRNA#Disease) and cancer.
It tends to fold to itself while attempting to reach stability that is:- a maximal number of matched bases,
- a minimal released energy induced by the conformation process.
![]()
![]()
A nucleic acid [primary structure](https://en.wikipedia.org/wiki/Nucleic_acid_structure#Primary_structure) simply refers to its base sequence.
Its [secondary structure](https://en.wikipedia.org/wiki/Nucleic_acid_structure#Secondary_structure) refers to its planar conformation.
Its topology can be quite complex, but is simplified for miRNAs.
Indeed, it would consist of simple [pseudoknots](https://en.wikipedia.org/wiki/Pseudoknot)-free strand.###### Algorithm
**miranda** uses a [dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming) scheme.
It actually implements [Nussinov](http://math.mit.edu/classes/18.417/Slides/rna-prediction-nussinov.pdf) algorithm.
It relies on the computation of each base pair energy, with 4 cases:
![]()
The energy of a given secondary structure is just the sum of matched pairs ones.
Hence an optimal conformation is an instance which minimizes this energy (which can be multiple).
![]()
In fact, redundant recursive calls are avoided since only the three cases are taken into account.
The resolution algorithm involves three steps:- remove all impossible pairs.
- fill energy and matched pairs matrices (diagonal by diagonal).
- retrieve index path by backtracking from the very last cell.
![]()
![]()
![]()
###### Future works
Notice that computed solutions are just miRNA **candidates**.
I will integrate _k_ optimal and suboptimal solutions retrievals for a given _k_.
It will enable to consider and retrieve all isomorphic solutions.-------
### License###### Copyright 2014, Hoby Rakotoarivelo
[](https://www.apache.org/licenses/LICENSE-2.0)
**miranda** is released under the [Apache](https://www.apache.org/licenses/LICENSE-2.0) license.
It was written for experimental purposes, and improvements are welcome.
To get involved, you can:- report bugs or request features by submitting an [issue](https://github.com/hobywan/miranda/issues).
- submit code contributions using feature branches and [pull requests](https://github.com/hobywan/miranda/pulls).Enjoy! 😉