Skip to content

A software to predict miRNA secondary structure regarding conformation energy and matching size.

License

Notifications You must be signed in to change notification settings

hobywan/miranda

Repository files navigation

logo

Build Status Build status Codacy Badge

miranda is a nucleobase sequence analyzer written in Java.
It computes a probable miRNA 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:

screenshot

Table of contents

Build and use

Build

Build Status Build status

miranda is cross-platform.
It requires a recent Java SE to be built from sources (at least 11).
It relies on gradle toolchain to build binaries, but it is self-managed though.
To build and run it, just open a terminal and type:

./gradlew run                 # on macOS or Linux
gradlew.bat run               # on Windows

If you want to create executables, type:

./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:

gui

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.


Feature

Basic background

DNA and 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 is a small non-coding RNA, which dysregulation can lead to known diseases 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.
RNA RNA

A nucleic acid primary structure simply refers to its base sequence.
Its 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-free strand.

Algorithm

miranda uses a dynamic programming scheme.
It actually implements Nussinov algorithm.
It relies on the computation of each base pair energy, with 4 cases:

nussinov-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).

energy

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.
step1 step2 step3
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.


Copyright 2014, Hoby Rakotoarivelo

license

miranda is released under the Apache 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.
  • submit code contributions using feature branches and pull requests.

Enjoy! 😉

About

A software to predict miRNA secondary structure regarding conformation energy and matching size.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages