md-studio / mdstudio Goto Github PK
View Code? Open in Web Editor NEWA general framework for microservice based distributed applications
License: Apache License 2.0
A general framework for microservice based distributed applications
License: Apache License 2.0
There are classes, methods and functions in the whole library that are doing too many things at the same time.
These methods should follow the Single responsibility principle:
Methods should do only one thing
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?
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.
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
This issue is used to track the v1.0 progress
Blob storage resolves situations wherein files are either too large to communicate using WAMP, or are passed to often to do it efficiently. By integrating blob storage into the mdstudio framework we are able to handle these situations more gracefully and generaly.
A quick search gives the options:
Assessing if a workflow is finished should take 'Choice' tasks into account that may result parts of a workflow graph not being visited leaving those tasks in a "ready" state. These tasks result the status of the workflow to be evaluated as "not finished" with no more active tasks.
use the setuptools to automate the installation of the package
The lie_db "host" variable in settings.json differs between a docker container install (set to mongo) and
a local install where it needs to be set to "localhost".
Can this be unified?
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.
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.
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.
Implement a microservice using the cerise_client interface to call Gromacs for LIE calculations.
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.
The default crossbar events are insecure, and thus need to be reiplemented.
We need subscribe and publish with and without claims.
Make the application compatible with python 3
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.
the lietest.py
script reports the following:
Ran 83 tests in 2.229s
FAILED (failures=2, errors=11)
This depends on #52.
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
See https://tools.ietf.org/html/rfc7519 for more information.
There several buggy components in the components
that need to be debug before getting a minimum viable product
apart from the WAMP functionality, all the modules in lie_md need to be restructured or complete rewritten from scratch.
There are several Loggers from twisted
and from logging
. It would be desirable it we use only one.
Before Merging with #39 let be sure that the developments up to this point are working with the old architecture.
The npm javascript package manager is not installed by default in unix systems. It should be added to the dependencies.
In Python is not recommend to check the type of an object directly instead
it is recommend to use the isinstance
function.
See: official docs and blog
The getEnergy script needs some improvement for readability
As far as I understand there are mainly 3 reason to use a phusion
image instead of a standard linux image (or python image):
docker exec
?A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.