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.
- Postgres (or optionally oracle)
- Oracle
- Compound Registration
- Chemaxon jchembase (with valid license to be obtained at sales [at] chemaxon.com See note in license section of this file)
- Chemaxon marvinjs (with valid license to be obtained at sales [at] chemaxon.com See note in license section of this file)
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):
- ACAS Roo Server
- ACAS Compound Registration Roo Server
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 [email protected]:mcneilco/acas-roo-server.git
cd acas-roo-server
docker build -t mcneilco/acas-roo-server-oss:latest .
cd ~/Documents/mcneilco/oss/
git clone [email protected]:mcneilco/acas-cmpdreg-roo-server.git
cd acas-cmpdreg-roo-server
- Go to https://www.chemaxon.com
- Login and/or Sign-Up
- Click Download > JChem Suite > JChem
- Scroll down to Archives and select 16.4.25.0, click Get Archive
- Download jchem-merged-lib-16.4.25.0.zip
- Unzip it and rename jchem.jar to jchem-16.4.25.0.jar
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 [email protected]: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
- There is a known timing issue where tomcat may try to connect to the database before the database is accepting connections. If this happens, try restarting tomcat.
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
):
- Match any environment variable name prefixed with
ACAS_
and remove the prefix from the name.
Step output: CLIENT_MODULEMENUS_LOGOTEXT
- Replace
_
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
- Do a case insensitive match of the now processed environment variable name with a flat file configuration name.
Match: client.moduleMenus.logoText
- Replace the value in the flat file name with the value provided by the matched environment variable.
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)