Skip to content

Commit

Permalink
LillyMol 7.0 open source release (#23)
Browse files Browse the repository at this point in the history
  • Loading branch information
xuyan-ru authored Oct 9, 2023
1 parent 007b2ad commit 7a98292
Show file tree
Hide file tree
Showing 2,321 changed files with 733,183 additions and 519,844 deletions.
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
**/Linux-gcc-6.2.0
**/Linux-gcc-7.2.1
**/Linux-gcc-8.3.0
**/Linux
**/__pycache__
**/.idea
*_pb.rb
*.pyc
lib
include
.gdb_history
third_party
.venv
.vscode

./src/WORKSPACE

## vs code workspace
./LillyMolPrivate.code-workspace
*ruby-version
lib64
56 changes: 56 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
FROM gcc:10.2

ENV LILLYMOL_HOME=/LillyMol \
BUILD_DIR=Linux

# Install Eigen
# (No need to install zlib since zlib1g and zlib1g-dev are alreday in the gcc base image)
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y libeigen3-dev && \
cd /usr/include && \
ln -sf eigen3/Eigen Eigen

RUN apt-get install npm -y && \
npm install -g @bazel/bazelisk && \
apt-get install cmake -y

RUN apt-get install python3-pip -y && \
pip3 install pandas && \
apt-get install libblas-dev -y && \
apt-get install liblapack-dev -y && \
pip3 install scipy

COPY . ./LillyMol

WORKDIR /LillyMol

RUN mkdir bin && \
mkdir bin/Linux && \
cd src && \
./build_third_party.sh

WORKDIR /LillyMol/src

RUN cp /tmp/WORKSPACE .

WORKDIR /LillyMol/src/build_deps

RUN sed -i 's/\/workspaces\/LillyMolPrivate\/bin\/Linux\//\/LillyMol\/bin\/Linux\//g' install.bzl

WORKDIR /LillyMol

ENV LD_LIBRARY_PATH=/LillyMol/third_party/lib

RUN mkdir /node && \
mkdir /node/scratch

WORKDIR /LillyMol/src

RUN ./build_from_src.sh

WORKDIR /LillyMol

RUN rm -f /usr/bin/python && ln -s /usr/bin/python3 /usr/bin/python

# RUN apt-get install python3-pip -Y
19 changes: 18 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
# limitations under the License.
########################################################################
IWPROGRAMMES ?= $(PWD)
UNAME ?= Linux-gcc-6.2.0
UNAME ?= Linux-gcc-8.3.0
#Linux-gcc-6.2.0

prefix = $(IWPROGRAMMES)
exec_prefix = $(prefix)
Expand Down Expand Up @@ -128,3 +129,19 @@ copy_exe: do-copy_exe
library: do-library

copy_library: do-copy_library


build_docker:
docker build -f Dockerfile -t lillymolprivate .

test_lillymol:
docker container exec lilly_mol bash -c "cd test/ && ./run_all_test.sh"

start_s3:
docker-compose up -d
sleep 10
echo 'run s3 commannd with: aws s3 --endpoint "http://localhost:4566" <s3 command>'
stop_s3:
docker-compose down


51 changes: 51 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# June 2023

This release of LillyMol contains a great many updates.

Among the most notable are

# Build with bazel/bazelisk.
* Protocl Buffers used for substructure searching and reactions.
* Many additional substructure query functions.
* Many more utilities included in the release.

The build is now very different. Previously LillyMol had tried hard
to ensure a lack of third party dependencies. This became untenable
and now there are several external dependencies. In addition,
building is now done with `bazel`. This offers many advantages but
also makes building more complex than before. See the README file for
instructions.

Switching to text format protocol buffers offers many advantages,
and will be used increasingly within LillyMol.
Old style query and reaction files will remain supported, but no new
functionality is being added to them. In order to gain access to new
functionality, you will need to use the text format protocol buffers.

Smarts provides a language for specifying matched atoms. But many
substructure query concepts are for groups of atoms, rings, substituents,
scaffolds, linkers... There are now more substructure abstract concepts
implemented, see especially the `global_id` concept which now
links the abstract concepts with matched atoms.

The no matched atoms between directive, `...` is now much more feature
complete, and allows specification of what atoms can, or cannot, be in
a region. Arbitrary element names are now more fully supported.

Within the code itself, new code is being implemented with a coding
style similar to what Google uses. clang-format is being used to
transition parts of the code, and address sanitizer is used
during testing. GoogleTest is used for C++ unit tests - much more work
remains to be done there, but today there are over 25k lines of unit test.

## Future
As useful substructure search concepts are needed, they will be added
to LillyMol. If you have needs that are not addressed, please reach out.

A recent emphasis on LillyMol has been in the area of supporting and
augmenting AI driven generative designs. That will continue with
future work focussed on bringing precedented functional groups to
the generative space, combining the strengths of cheminformatics
enumeration and replacement based approaches and generative models.
Several tools supporting this are in this distribution.

78 changes: 0 additions & 78 deletions README

This file was deleted.

Loading

0 comments on commit 7a98292

Please sign in to comment.