Closed calum-hand closed 2 years ago
is it possible to add a base image for DOCK6? I know the source download requires a license, so we can't install and build automatically, but there are a few additional utilities that we could include a base DOCK6 image
Sure, from the README I'm assuming the desired software would be sphgen_cpp and chimera?
Seeing as DOCK6 doesn't rely on the ADFR suite, I'd imagine re-structuring the final dockerfile as below:
# base (python dependencies only)
FROM continuumio/miniconda3 AS base
# vina base (installs ADFR)
FROM base AS vina-base
# dock6 base (installs relevant dock6 accessories)
FROM base AS dock6-base
# final vina flavour images (specific vina docking softwares_
FROM vina-base AS psovina
... etc
If you could suggest a better name than vina-base
however I'd be all for it to avoid ambiguities in the naming (i.e. vina vs vina-base)
how do you feel about using micromamba instead of miniconda? In my experience, it's usually interchangeable with conda and results in smaller images with faster builds
I'd never say no to a smaller or faster build let alone both simultaneously! I'll start working on creating the docker file as above from the miniconda image then move over to the micromamba version. From what you say should hopefully be a simple change at the very top!
yeah i think that new organization makes sense re: DOCK6. Of course, you can't add sphgen_cpp
to the $DOCK6/bin
because it doesn't exist, but at least it'll be installed in the image
yeah i think that new organization makes sense re: DOCK6. Of course, you can't add
sphgen_cpp
to the$DOCK6/bin
because it doesn't exist, but at least it'll be installed in the image
So I've downloaded and compiled the spghen_cpp
code to a dock6_utils
directory and also placed the chimera installation binary there also for the user. I couldn't find a way to automate the chimera installation itself as the script required several complex inputs (empty quotes, deleting and replacing text etc) which I couldn't find a way round.
Will try and swap the main parent image from miniconda
to micromamba
then otherwise should be good to go.
@davidegraff have successfully managed to swap out the conda base image for the micromamba base image. So far as I can see there's nothing left outstanding with this PR.
Merging #44 (f4f4ed4) into main (71762e8) will decrease coverage by
1.20%
. The diff coverage isn/a
.:exclamation: Current head f4f4ed4 differs from pull request most recent head 30a991d. Consider uploading reports for the commit 30a991d to get more accurate results
@@ Coverage Diff @@
## main #44 +/- ##
==========================================
- Coverage 28.57% 27.36% -1.21%
==========================================
Files 32 30 -2
Lines 1400 1374 -26
Branches 185 154 -31
==========================================
- Hits 400 376 -24
+ Misses 994 992 -2
Partials 6 6
Flag | Coverage Δ | |
---|---|---|
unittests | 27.36% <ø> (-1.21%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
Impacted Files | Coverage Δ | |
---|---|---|
pyscreener/exceptions.py | ||
pyscreener/__init__.py |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
All good points, definitely makes the README clearer / easier to read. Have accepted the changes.
Description
This PR adds a Dockerfile which allows for easy installation of all python dependencies, the pyscreener library, ADFR suite tools and choice of vina based docking software to a contained docker image. This allows for reproducible and straightforward installation / testing / usage of the pyscreener code. All pytest checks pass as well as
smoke-test
for all vina versions.Example / Current workflow
Creating a docker image containing the pyscreener library, its dependencies, ADFR suite tools and the vina docking software can be accomplished with
docker build -t pyscreener:vina --target vina .
however any of the vina base docking softwares can be specified instead.Bugfix / Desired workflow
n/a
Questions
Installing
qvina
/psovina
requires building from source which raises some pragma issues during compilation. If any light can be shed on solving these issues / clarifying if these issues then that would be invaluable feedback.Relevant issues
n/a
checklist
No new tests added but all docker builds pass the associated python and docking smoke tests
Status
Not 100% ready as seeking feedback on compilation of
qvina
andpsovina
docking tools from souce