Coder Social home page Coder Social logo

mantelijo / bmol2d Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 240.5 MB

Schematic RNA/DNA structures in 2D

Home Page: https://bmol2d.netlify.app/

License: MIT License

HTML 7.84% CSS 0.17% TypeScript 8.09% JavaScript 13.82% Shell 0.04% Python 65.82% PHP 0.03% C 4.21%

bmol2d's Introduction

BMol2D

Schematic RNA/DNA secondary structure visualization tool working entirely in your browser.

Samples

Some example structures

Building project

Install npm_modules

yarn install

Compile wasm module

cd wasm/vienna-rna/ && ./compile_wasm.sh

To compile js assets

yarn build

Run locally

To run project locally, start the vite dev server with the following command:

yarn dev

If you wish to generate secondary structures for RNA molecules, see Seoncdary Structures.

Secondary structures

Dot-braket strings are used for generating secondary structure coordinates. Currently, dot-braket strings cannot be correctly generated in the browser environment and external dependencies are required. There are two ways to provide dot-braket strings for the app: by running included python script which will be queried for dot-braket automatically, or by providing the dot-braket strings manually (from servers such as RNAPDBee or other sources).

Python script for dot-braket structures

RNA secondary structures information generation currently uses Forgi Library v1.0 and requires globally available MC-Annotate executable with python3. Make sure you have these dependencies installed on your system. To start the secondary structure generator, run the following command:

python3 ./wasm/coordinates_server.py

This command will start a minimal python http.server on localhost:8001. This endpoint is queried for dot-braket structures which are later provided to the wasm module, which generates the secondary structure coordinates that are required to display RNA secondary structures.

MC-Annotate installation

MC-Annotate can be installed from MC-Annotate repository. It requires you to have mmcore library installed on your system and cmake. Once you have mccore installed, make sure to include the correct paths to mmcore library in MC-Annotate FindMCCORE.cmake. After MC-Annotate executable is built, symlink or add it to your path and make sure to name it exactly MC-Annotate as forgi library is calling it by this name.

Project structure

├── build - build directory
├── public - web assets
├── src - web app
└── wasm - naview algorithm extracted from ViennaRNA package and some other libraries used to generate secondary structures

Acknowledgments

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.