Giter Club home page Giter Club logo

mdstudio's People

Contributors

felipez avatar jspaaks avatar marcvdijk avatar mickvanduijn avatar pevisscher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mdstudio's Issues

Python Virtual environment and docker

The main purpose of a virtual environment is to isolate a python environment from the system.
But we are using containers, then what is the purpose of using python virtual environment?
What are the advantages of having a virtual environment inside a container?

mapper Task does not work correctly

After performing docking it is reported a clustering result similar to the following:

 Resolved 5 clusters with a coverage of 98.0%

But There are not 5 task created, instead when the MDWampApi class and its run_gromacs_liemd method, the following information is passed:

  Workdir is: task-11-1509440410-4445
 ligand file is: task-7-1509440290-9790/ligand_entry_00001_conf_25.mol2
 Workdir is: task-12-1509440410-2657
 ligand file is: task-7-1509440290-9790/ligand_entry_00001_conf_49.mol2
 Workdir is: task-12-1509440410-2657
 ligand file is: task-7-1509440290-9790/ligand_entry_00001_conf_49.mol2
 Workdir is: task-12-1509440410-2657
 ligand file is: task-7-1509440290-9790/ligand_entry_00001_conf_49.mol2
 Workdir is: task-12-1509440410-2657
 ligand file is: task-7-1509440290-9790/ligand_entr y_00001_conf_49.mol2

it means that the MDWampApi class is called 5 times but the Mapper task is passing the same arguments.

Pew managed Python venv not working without pew pre-installed

On OSX 10.11.16 running installer.sh to install LIEStudio locally (outside Docker) the installation
does not work without pew being pre-installed.
On my system Python pip is not active/available by default but only after setup of virtual env. Thus "pip install pew" does not work. Need to install pew from github.

Without pew, install fails with message:
LIEStudio installer script
Date: do 2 feb 2017 14:00:25 CET
User: mvdijk
System: Darwin MacBook-Pro-2.local 15.6.0 x86_64 i386

INFO: Python executable python2.7 resolved to /opt/local/bin/python2.7
INFO: Python version 2.7.13 supported
INFO: Using Python version 2.7.13 at /opt/local/bin/python2.7
INFO: Setup Python virtual environment using /opt/local/bin/virtualenv-2.7 -p /opt/local/bin/python2.7
./installer.sh: line 298: pew: command not found
INFO: Create Python virtual environment
./installer.sh: line 311: pipenv: command not found
./installer.sh: line 413: pew: command not found
ERROR: Python virtual environment not installed (correctly)
ERROR: Unable to activate it, not activation script at /bin/activate

V1.0

This issue is used to track the v1.0 progress

pybabel causing random errors

There is a bug in some linux openbabel installation that cause an import error like:

  File "/path/venv/local/lib/python2.7/site-packages/pybel.py", line 84, in _getpluginnames
    return [x.split()[0] for x in plugins]
exceptions.IndexError: list index out of range

There is no much that we can do, but at least we should be aware of it.
If this error is raised the only alternative is to kill the process and try to restart.

Fix .d.ts errors in primeng

Currenty running gulp serve will yield compilation errors like

/app/app/node_modules/primeng/components/accordion/accordion.d.ts(27,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/accordion/accordion.d.ts(27,28): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(51,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(51,30): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(52,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(52,33): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(53,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/carousel/carousel.d.ts(53,24): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/chips/chips.d.ts(32,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/chips/chips.d.ts(32,22): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/datatable/datatable.d.ts(179,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/datatable/datatable.d.ts(179,25): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/dropdown/dropdown.d.ts(50,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/dropdown/dropdown.d.ts(50,19): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/inputtext/inputtext.d.ts(11,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/inputtext/inputtext.d.ts(11,22): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/inputtext/inputtext.d.ts(12,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/inputtext/inputtext.d.ts(12,20): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/inputtextarea/inputtextarea.d.ts(19,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/inputtextarea/inputtextarea.d.ts(19,22): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/inputtextarea/inputtextarea.d.ts(20,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/inputtextarea/inputtextarea.d.ts(20,20): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/lightbox/lightbox.d.ts(34,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/lightbox/lightbox.d.ts(34,25): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/lightbox/lightbox.d.ts(35,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/lightbox/lightbox.d.ts(35,26): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/messages/messages.d.ts(8,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/messages/messages.d.ts(8,18): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/password/password.d.ts(24,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/password/password.d.ts(24,22): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/password/password.d.ts(25,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/password/password.d.ts(25,20): error TS1005: ';' expected.
/app/app/node_modules/primeng/components/tree/tree.d.ts(44,14): error TS1005: '=' expected.
/app/app/node_modules/primeng/components/tree/tree.d.ts(44,24): error TS1005: ';' expected.

Somehow the typedefinition files contain the keyword readonly which I believe are not in the specs.

Plants carriage return

Some plants_docking version generates csv files containing \r characters like:

CC,UNUSED_DON,UNUSED_ACC,CHEMPLP_CLASH2,TRIPOS_TORS,ATOMS_OUTSIDE_BINDINGSITE
ligand^M_entry_00001_conf_01,-7.43874,6.56126,-0.354226,-2.69625,-0.0266261,-1.13789,2.37819,-inf,0,0,0,0,0,0,0,0,20,0,0,0,2,1,2,1,5.26606,3.6476,1

An the corresponding mol2 name is: ligand?_entry_00001_conf_01.mol2. Which is a valid Unix file name.
The problem is that the CSV library it is not able to read properly this format and can not build the right path to the output.

shell script microservices

Sometimes users may want to run their own shell scripts as a part of the given workflow. It is then desirable if we can provide a microservice that executes shell scripts.
This microservice may need resources in a remote machine (e.g. a cluster where gromacs is installed), therefore the Cerise-client is a must-have in the service.

Finish User & Group endpoints and repository

Repository

Create

  • User
  • Group
  • GroupRole
  • Component
  • Create client

Update

  • Add user to group(role)
  • Add group owner
  • Add role owner
  • Add role to existing group
  • Modify role permissions (component)
  • Modify display names
  • Modify role resource permissions (group resources/role resources)
  • Modify client permissions

Delete

  • Soft deletes on all

Endpoint

Create

  • User
  • Group
  • GroupRole
  • Component
  • Create client

Update

  • Add user to group(role)
  • Add group owner
  • Add role owner
  • Add role to existing group
  • Modify role permissions (component)
  • Modify display names
  • Modify role resource permissions (group resources/role resources)
  • Modify client permissions

Delete

  • Soft deletes on all

Reimplement subscribe/publish

The default crossbar events are insecure, and thus need to be reiplemented.

We need subscribe and publish with and without claims.

Fix deprication warnings

Currently a fresh install with npm install in the app folder will result in a number of deprication warnings, which should be fixed especially with security in mind.

npm WARN deprecated [email protected]: use uuid module instead
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN prefer global [email protected] should be installed with -g
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN [email protected] requires a peer of @angular/common@^2.0.0 but none was installed.
npm WARN [email protected] requires a peer of @angular/core@^2.0.0 but none was installed.
npm WARN [email protected] No repository field.

Unit tests are broken

the lietest.py script reports the following:

Ran 83 tests in 2.229s

FAILED (failures=2, errors=11)

Sign the JWT with asynchronous encryption

By encoding the jwt schema with asynchronous key, the component that needs to verify a given claim can use a public key to verify the jwt. This eliminates the need to call the authentication component to verify every jwt.

To make this possible, every component that goes online should ask the public key from the auth component, which is then stored component side. A useful extension of this system would be to cycle the jwt singing key every few minutes, and allow a grace period for the old key to be verified within its expiry time.

See:
https://pyjwt.readthedocs.io/en/latest/usage.html#encoding-decoding-tokens-with-rs256-rsa

Improve lie_md module

apart from the WAMP functionality, all the modules in lie_md need to be restructured or complete rewritten from scratch.

Multiple Logger

There are several Loggers from twisted and from logging. It would be desirable it we use only one.

spit master branch

Before Merging with #39 let be sure that the developments up to this point are working with the old architecture.

Json files size

in WAMP the data between RPCs calls are transfer using JSON, when we start passing large string containing proteins (> 1MB), the system fails and crashes with errors difficult to track.
Instead of passing whole proteins encoded as strings we should pass absolute paths to the molecule files.

javascript package manager

The npm javascript package manager is not installed by default in unix systems. It should be added to the dependencies.

Phusion Docker image vs standard linux image

As far as I understand there are mainly 3 reason to use a phusion image instead of a standard linux image (or python image):

  • You need to run multiple processes. Even though Docker recommends a single application per container.
  • You need the cron command.
  • You want to connect to the container through a SSH protocol. In other words, do we have any procedure that we can not handle using docker exec ?

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.