This repository Contains the source code for the main ACAS NodeJS/Web app.
The other required ACAS Open Source Projects can be found here:
JM&Co offer a number of commercial ACAS modules. An introduction to ACAS with additional modules is available [here] (http://www.mcneilco.com/acas.html)
This Open Source release includes the Experiment Loader, Dose Response, and Compound Registration modules, as well as the various ACAS APIs.
Public Documentation Table of Contents
https://github.com/mcneilco/acas/releases
ACAS has been configured to run a full stack in the docker environment. The instructions below outline the process of getting a basic working stack running on your system.
Some of the docker images in the ACAS stack are available in the mcneilco dockerhub repository while others (due to license restrictions) must be built by the developer.
Available Images:
Images Built by Developer (instructions below):
Download and install docker for your operating system.
It is recommended to run the stack with at least 4GB
of memory but is helpful to have up to 8GB
available. Docker for mac and windows do not need to reserve the entire 8GB for itself so it's ok to give it a little extra if you have it available.
See docker instructions for you operating system to adjust
mkdir -p ~/Documents/mcneilco/oss/
Due to license restrictions, this is one of the images that must be built by the developer.
cd ~/Documents/mcneilco/oss/
git clone git@github.com:mcneilco/acas-roo-server.git
cd acas-roo-server
docker build -t mcneilco/acas-roo-server-oss:latest .
cd ~/Documents/mcneilco/oss/
git clone git@github.com:mcneilco/acas-cmpdreg-roo-server.git
cd acas-cmpdreg-roo-server
cd ~/Documents/mcneilco/oss/acas-cmpdreg-roo-server
mkdir lib
cd lib
cp <jchem-16.4.25.0.jar> .
cd ..
docker build -t mcneilco/acas-cmpdreg-roo-server-oss:latest .
The acas repository contains a docker-compose.yml file that orchestrates the creation of the ACAS stack. For this reason, it is helpful to have a clone of the ACAS repo even if you aren't doing ACAS development or don't need compound registration.
cd ~/Documents/mcneilco/oss/
git clone git@github.com:mcneilco/acas.git
cd acas
mkdir -p chemaxon/licenses
cp <path/to/marvin4js-license.cxl> chemaxon/licenses
cp <path/to/license.cxl> chemaxon/licenses
Place your marvin4js download into a folder called "marvinjs" as follows:
cp -r <path/to/marvinjs-16.10.17-all> chemaxon/marvinjs
cd ~/Documents/mcneilco/oss/acas
docker compose up -d
Visit http://localhost:3000
in your browser to login. You will need to create a user in order to access the web app:
curl localhost:3001/api/systemTest/getOrCreateACASBob
curl localhost:3001/api/systemTest/getOrCreateGlobalProject
curl localhost:3001/api/systemTest/getOrCreateGlobalProjectRole
curl localhost:3001/api/systemTest/giveBobRoles
curl localhost:3001/api/systemTest/getOrCreateCmpdRegBob
curl localhost:3001/api/systemTest/syncRoles
Optionally you could run the shell script docker_bob_setup.sh
in this repository instead of manually curl
ing each endpoint.
This will create a user "bob" with password "secret".
docker compose logs --tail=20 -f <service>
e.g. for all containers
docker compose logs -f
e.g. for only tomcat
docker compose logs --tail=20 -f tomcat
Stop the web stack
docker compose down
docker compose restart tomcat
ACAS can read configuration overrides from environment variables prefixed with ACAS_
. ACAS maps environment variable names to flat file configuration names by a 4 step process (e.g. ACAS_CLIENT_MODULEMENUS_LOGOTEXT=ACME Labs
):
ACAS_
and remove the prefix from the name. Step output: CLIENT_MODULEMENUS_LOGOTEXT
_
characters with .
characters in the environment variable name.
Note, that you can escape substitution for flat file configs contain underscore by using double underscores
__
in the environment variable.
Step output: ACAS.CLIENT.MODULEMENUS.LOGOTEXT
Match: client.moduleMenus.logoText
Final outcome: client.moduleMenus.logoText=ACME Labs
Replaces client.moduleMenus.logoText
ACAS_CLIENT_MODULEMENUS_LOGOTEXT=ACME Labs
__
Replaces server.datafiles.relative_path
(note this isn't a realistic example of a config you would ever override but demonstrates the escape sequence)
ACAS_SERVER_DATAFILES_RELATIVE__PATH=..
Replaces client.service.cmpdReg.persistence.fullpath
docker compose example which requires $$
to esacpe the $
override
environment:
- ACAS_CLIENT_SERVICE_CMPDREG_PERSISTENCE_FULLPATH=http://$${client.service.cmpdReg.persistence.host}:$${client.service.persistence.port}/$${client.service.cmpdReg.persistence.path}/
Shell example requires escape
$
ACAS_CLIENT_SERVICE_CMPDREG_PERSISTENCE_FULLPATH=http://\${client.service.cmpdReg.persistence.host}:\${client.service.persistence.port}/\${client.service.cmpdReg.persistence.path}/
or
ACAS_CLIENT_SERVICE_CMPDREG_PERSISTENCE_FULLPATH='http://${client.service.cmpdReg.persistence.host}:${client.service.persistence.port}/${client.service.cmpdReg.persistence.path}/'
ChemAxon license note: Subject to possession of valid license, you may use ChemAxon's proprietary software JChemBase and Marvin JS under John McNeil &Co., Inc's application as known as ACAS Compound Registration. Note that it is a restricted license, which is not valid for other (open source) applications. Terms and conditions of such license are covered by ChemAxon standard EULA (available at https://docs.chemaxon.com/display/docs/End+User+License+Agreement+(EULA)+LIC) with the exemption of bullet six (6) of section entitled 'YOU MAY NOT'. Please contact ChemAxon for obtaining the license at sales [at] chemaxon.com.
[Copyright (c) 2012-2016 John McNeil & Co. Inc. All rights reserved.] (./COPYRIGHT.txt)