Giter Site home page Giter Site logo

michaelwenk / sherlock Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 2.0 72.83 MB

Web Services for Computer-Assisted Structure Elucidation (CASE)

License: MIT License

Java 98.33% Dockerfile 0.41% Shell 1.26%
nmr-spectroscopy pylsd nmrshiftdb docker structure-elucidation

sherlock's Introduction

DOI License GitHub contributors GitHub issues GitHub release

sherlock-logo

Sherlock

Web services for Computer-Assisted Structure Elucidation (CASE).

A graphical user interface and publication are available.

Core Features

  • Dereplication
  • Elucidation
  • Retrieval of previously generated results

The dereplication, chemical shift prediction and statistical detection of structural constraints are enabled by using entries from NMRShiftDB and COCONUT containing structural and spectral properties. Spectra in use are both experimental and predicted.

casekit serves as computational library within Sherlock.

PyLSD is used for structure generation.

Docker and Execution of pre-built Containers

This project uses Docker containers (https://www.docker.com) and starts them via docker-compose. Make sure that docker-compose is installed.

NOTE: It is recommended to set the accessible RAM to 6 GB or higher and the number of available CPU cores to two. This can be done easily in the Docker Desktop application, see here.

Download

Clone this repository and change the directory:

git clone https://github.com/michaelwenk/sherlock.git
cd sherlock

Now pull all the containers needed for execution from Docker Hub:

 docker-compose -f docker-compose.yml -f docker-compose.publish.yml pull

Create and Start

To create the network and start the services for the first time (in detached mode) use:

docker-compose -f docker-compose.yml -f docker-compose.publish.yml up -d

Note: It will take several minutes until all services are available and registered, i.e. due to the extraction of the compressed fragment data.

If the container network was already created beforehand and stopped via "stop" command, then the "start" command can be used. This will avoid extracting the fragments again and the services should be ready within a few seconds.

docker-compose -f docker-compose.yml -f docker-compose.publish.yml start

Stop and Removal

To stop the application use:

docker-compose -f docker-compose.yml -f docker-compose.publish.yml stop

If the removal of the network created by docker-compose is desired, then use the down command:

docker-compose -f docker-compose.yml -f docker-compose.publish.yml down

sherlock's People

Stargazers

 avatar

Watchers

 avatar  avatar

sherlock's Issues

Implement creation of split table

When creating the fragment database it is still stored in one large table and not in separated smaller ones (500.000 each).
Therefore, the fragment_table_split.sql is used after the fragment table generation.

An implementation of creating multiple smaller tables is needed.

Detect and group tautomers

Detect tautomers by the tautomer generation after the structure elucidation and check which produced molecules are potentially within certain tautomer group.
Then return this list of groups to warn the user in frontend that tautomers might exist.

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.