From a4a826158695dc6f0bc059716dbe5edc66b748aa Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Thu, 14 Sep 2017 19:51:21 -0700 Subject: [PATCH 01/11] Add test for missing bonds of a mutated molecule. --- moldesign/_tests/test_pdbfixer_xface.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/moldesign/_tests/test_pdbfixer_xface.py b/moldesign/_tests/test_pdbfixer_xface.py index ec5dd5a..f949bd8 100644 --- a/moldesign/_tests/test_pdbfixer_xface.py +++ b/moldesign/_tests/test_pdbfixer_xface.py @@ -22,6 +22,7 @@ import moldesign as mdt from moldesign import units as u +from .helpers import get_data_path import pytest @@ -91,6 +92,22 @@ def test_mutation_nomenclature_string_only(pdb3aid): assert len(mut25) == 2 assert [r.resname for r in mut25] == ['MET', 'MET'] +def test_mutation_topology(): + """ Test the topology of the backbone atoms for a mutated molecule. """ + molecule = mdt.read(get_data_path('1yu8.pdb')) + mutation_residues = ["X.13G"] + mutated_molecule = mdt.mutate_residues(molecule, mutation_residues) + # Check that the number of bonds for backbone atoms match. + backbone_atoms = mdt.data.BACKBONES["protein"] + for res, mut_res in zip(molecule.residues, mutated_molecule.residues): + for atom in res.atoms: + if atom.name not in backbone_atoms: + continue + bonds = molecule.bond_graph[atom] + mut_atom = mutated_molecule.chains["X"].residues[mut_res.name].atoms[atom.name] + mut_bonds = mutated_molecule.bond_graph[mut_atom] + assert len(bonds) == len(mut_bonds) + @pytest.mark.screening def test_multiple_mutations(pdb3aid): From 562df7cfd9474d2a7d5f09a620fca5012f92c7ee Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 15 Sep 2017 15:38:52 -0700 Subject: [PATCH 02/11] Fix for missing backbone atom bonds when mutating residues. --- moldesign/interfaces/pdbfixer_interface.py | 35 ++++++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/moldesign/interfaces/pdbfixer_interface.py b/moldesign/interfaces/pdbfixer_interface.py index bf41bd2..ee3e931 100644 --- a/moldesign/interfaces/pdbfixer_interface.py +++ b/moldesign/interfaces/pdbfixer_interface.py @@ -97,21 +97,50 @@ def mutate_residues(mol, residue_map): # into an MDT structure assert temp_mutant.num_residues == mol.num_residues # shouldn't change number of residues residues_to_copy = [] + old_residue_map = {} for oldres, mutant_res in zip(mol.residues, temp_mutant.residues): if oldres in residue_map: residues_to_copy.append(mutant_res) mutant_res.mol = None mutant_res.chain = oldres.chain + old_residue_map[oldres] = mutant_res else: residues_to_copy.append(oldres) + # Bonds between original and mutated backbone atoms will be removed when + # creating the new mutant molecule because the original and mutated atoms + # reference different molecules. + # + # Make a list of bonds referencing atoms in the original molecule that + # is used later to recreate bonds between original and mutated backbone + # atoms. + orig_bonds = [] + for res in residues_to_copy: + if res.type not in mdt.data.BACKBONES: + continue + for atom in res.atoms: + if atom.name not in mdt.data.BACKBONES[res.type]: + continue + for bond_atom in atom.bond_graph: + if bond_atom.residue in residue_map: + mutant_res = old_residue_map[bond_atom.residue] + mutant_atom = mutant_res.atoms[bond_atom.name] + orig_bonds.append((atom,mutant_atom,atom.bond_graph[bond_atom])) + metadata = {'origin': mol.metadata.copy(), 'mutations': mutation_strs} - return mdt.Molecule(residues_to_copy, - name='Mutant of "%s"' % mol, - metadata=metadata) + mutant_mol = mdt.Molecule(residues_to_copy, name='Mutant of "%s"' % mol, metadata=metadata) + + # Add bonds between the original and mutated backbone atoms. + for atom,mut_atom,order in orig_bonds: + chainID = atom.chain.name + residues = mutant_mol.chains[chainID].residues + new_atom = residues[atom.residue.name].atoms[atom.name] + new_mut_atom = residues[mut_atom.residue.name].atoms[mut_atom.name] + new_atom.bond_to(new_mut_atom, order) + return mutant_mol def _pdbfixer_chainnames_to_letter(pdbfixermol): for chain in pdbfixermol.chains: From 6e573dcd56743a4dcd51dab5fe933b6428c91647 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 18 Sep 2017 11:19:10 -0700 Subject: [PATCH 03/11] Fix the test for mutate bonds and change mutate_residues() to use res.backbone. --- moldesign/_tests/test_pdbfixer_xface.py | 11 ++++++----- moldesign/interfaces/pdbfixer_interface.py | 6 ++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/moldesign/_tests/test_pdbfixer_xface.py b/moldesign/_tests/test_pdbfixer_xface.py index f949bd8..8d915e7 100644 --- a/moldesign/_tests/test_pdbfixer_xface.py +++ b/moldesign/_tests/test_pdbfixer_xface.py @@ -98,14 +98,15 @@ def test_mutation_topology(): mutation_residues = ["X.13G"] mutated_molecule = mdt.mutate_residues(molecule, mutation_residues) # Check that the number of bonds for backbone atoms match. - backbone_atoms = mdt.data.BACKBONES["protein"] for res, mut_res in zip(molecule.residues, mutated_molecule.residues): - for atom in res.atoms: - if atom.name not in backbone_atoms: - continue - bonds = molecule.bond_graph[atom] + if not res.backbone: + continue + for atom in res.backbone: + bonds = [bond for bond in molecule.bond_graph[atom] if bond.name in res.backbone] mut_atom = mutated_molecule.chains["X"].residues[mut_res.name].atoms[atom.name] mut_bonds = mutated_molecule.bond_graph[mut_atom] + mut_bonds = [bond for bond in mutated_molecule.bond_graph[mut_atom] \ + if bond.name in mut_res.backbone] assert len(bonds) == len(mut_bonds) diff --git a/moldesign/interfaces/pdbfixer_interface.py b/moldesign/interfaces/pdbfixer_interface.py index ee3e931..eb64a16 100644 --- a/moldesign/interfaces/pdbfixer_interface.py +++ b/moldesign/interfaces/pdbfixer_interface.py @@ -116,11 +116,9 @@ def mutate_residues(mol, residue_map): # atoms. orig_bonds = [] for res in residues_to_copy: - if res.type not in mdt.data.BACKBONES: + if not res.backbone: continue - for atom in res.atoms: - if atom.name not in mdt.data.BACKBONES[res.type]: - continue + for atom in res.backbone: for bond_atom in atom.bond_graph: if bond_atom.residue in residue_map: mutant_res = old_residue_map[bond_atom.residue] From c972db3f97e03bbb9f71a49c783719db27315f92 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 18 Sep 2017 11:22:55 -0700 Subject: [PATCH 04/11] Change test to use fixtures. --- moldesign/_tests/test_pdbfixer_xface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/moldesign/_tests/test_pdbfixer_xface.py b/moldesign/_tests/test_pdbfixer_xface.py index 8d915e7..82ad69f 100644 --- a/moldesign/_tests/test_pdbfixer_xface.py +++ b/moldesign/_tests/test_pdbfixer_xface.py @@ -92,9 +92,9 @@ def test_mutation_nomenclature_string_only(pdb3aid): assert len(mut25) == 2 assert [r.resname for r in mut25] == ['MET', 'MET'] -def test_mutation_topology(): +def test_mutation_topology(pdb1yu8): """ Test the topology of the backbone atoms for a mutated molecule. """ - molecule = mdt.read(get_data_path('1yu8.pdb')) + molecule = pdb1yu8 mutation_residues = ["X.13G"] mutated_molecule = mdt.mutate_residues(molecule, mutation_residues) # Check that the number of bonds for backbone atoms match. From 84aed80c352073b84573d4dd198a25f3573ab3ee Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Thu, 5 Oct 2017 10:20:14 -0700 Subject: [PATCH 05/11] Add "full-stack" docker image, get notebook image working again --- .dockerignore | 1 + .gitignore | 2 +- DockerMakefiles/DockerMake.yml | 2 +- DockerMakefiles/Moldesign.yml | 28 +++++++++++++++---- DockerMakefiles/PythonTools.yml | 6 +--- DockerMakefiles/SymMol.yml | 11 +++++--- .../moldesign/moldesign.dockerignore | 22 +++++++++++++++ .../buildfiles/moldesign/moldesign.yml | 4 +++ .../buildfiles/notebook/run_notebook.sh | 2 +- deployment/build-env.dockerfile | 3 +- moldesign/compute/configuration.py | 12 ++++++-- requirements.txt | 2 +- 12 files changed, 74 insertions(+), 21 deletions(-) create mode 100644 DockerMakefiles/buildfiles/moldesign/moldesign.dockerignore create mode 100644 DockerMakefiles/buildfiles/moldesign/moldesign.yml diff --git a/.dockerignore b/.dockerignore index bbff344..12ba0fb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -17,3 +17,4 @@ docs/_build **/tokens **/codeship.aes **/tmp +**/Untitled*.ipynb \ No newline at end of file diff --git a/.gitignore b/.gitignore index 38acb0a..34f0134 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,4 @@ moldesign/_static_data/components.ci* moldesign/_static_data/aa-variants-v1.ci* tmp *.bak - +Untitled*.ipynb diff --git a/DockerMakefiles/DockerMake.yml b/DockerMakefiles/DockerMake.yml index 1dd766a..16a6327 100644 --- a/DockerMakefiles/DockerMake.yml +++ b/DockerMakefiles/DockerMake.yml @@ -17,7 +17,7 @@ _ALL_: - moldesign_complete_py2 - moldesign_minimal - moldesign_minimal_py2 - # - moldesign_notebook + - moldesign_notebook - nucleic_acid_builder - nwchem_build - openblas diff --git a/DockerMakefiles/Moldesign.yml b/DockerMakefiles/Moldesign.yml index 0ca6287..6ae254e 100644 --- a/DockerMakefiles/Moldesign.yml +++ b/DockerMakefiles/Moldesign.yml @@ -5,12 +5,12 @@ moldesign_requirements: RUN conda install -qy -c omnia parmed biopython - moldesign_minimal_requirements: description: Base installation of the MDT library. Built from the current directory. requires: - moldesign_requirements build_directory: ../ + ignorefile: buildfiles/moldesign/moldesign.dockerignore build: | COPY requirements.txt /tmp/mdtreqs.txt RUN apt-get update \ @@ -49,12 +49,30 @@ moldesign_complete_py2: moldesign_notebook: - description: OUT OF DATE A production-ready, fully outfitted jupyter server container + description: A production-ready, fully outfitted jupyter server container requires: - moldesign_complete - notebook build: | - RUN pip install nbmolviz # == 0.7.0 + RUN adduser --disabled-password --gecos '' nbuser + RUN pip install nbmolviz==0.7.0rc4 + USER nbuser + RUN python -m nbmolviz activate --user + USER root RUN python -m moldesign copyexamples - RUN jupyter nbextension enable --python --sys-prefix widgetsnbextension \ - && jupyter nbextension enable --python --sys-prefix nbmolviz + RUN chmod -R a+rw . + + + +moldesign_stack: + description: An extra-large image with everything needed to run the example notebooks + build_directory: buildfiles/moldesign + requires: + - opsin + - symmol_base + - nucleic_acid_builder + - moldesign_notebook + build: | + USER nbuser + RUN mkdir -p /home/nbuser/.moldesign + ADD moldesign.yml /home/nbuser/.moldesign/moldesign.yml diff --git a/DockerMakefiles/PythonTools.yml b/DockerMakefiles/PythonTools.yml index 5e69332..bdd2375 100644 --- a/DockerMakefiles/PythonTools.yml +++ b/DockerMakefiles/PythonTools.yml @@ -3,16 +3,12 @@ notebook: - python_deploy_base build_directory: buildfiles/notebook/ build: | - RUN conda install -yq matplotlib jupyter ipywidgets + RUN conda install -yq matplotlib jupyter ipywidgets nbformat ENTRYPOINT /run_notebook.sh EXPOSE 8888 RUN mkdir /notebooks WORKDIR /notebooks COPY run_notebook.sh /run_notebook.sh - # workaround below, not sure why it's necessary or even whose fault it is - RUN pip uninstall -y backports.ssl_match_hostname backports.shutil_get_terminal_size \ - && pip install backports.ssl_match_hostname backports.shutil_get_terminal_size - pyquante2: requires: diff --git a/DockerMakefiles/SymMol.yml b/DockerMakefiles/SymMol.yml index 637fe7c..df814f8 100644 --- a/DockerMakefiles/SymMol.yml +++ b/DockerMakefiles/SymMol.yml @@ -17,9 +17,7 @@ symmol_build: && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN mv /src/symmol/symmol /usr/local/bin -symmol: - requires: - - deploybase +symmol_base: build: | RUN apt-get update \ && apt-get install -y --no-install-recommends \ @@ -27,4 +25,9 @@ symmol: && cleanapt copy_from: symmol_build: - /usr/local/bin/symmol: /usr/local/bin \ No newline at end of file + /usr/local/bin/symmol: /usr/local/bin + +symmol: + requires: + - deploybase + - symmol_base \ No newline at end of file diff --git a/DockerMakefiles/buildfiles/moldesign/moldesign.dockerignore b/DockerMakefiles/buildfiles/moldesign/moldesign.dockerignore new file mode 100644 index 0000000..a5b0b77 --- /dev/null +++ b/DockerMakefiles/buildfiles/moldesign/moldesign.dockerignore @@ -0,0 +1,22 @@ +**/*.pyc +**/*.pyo +.idea +**/.ipynb_checkpoints/ +**/pyquante.log +**/_docker_make_tmp +**/lastfailed +dist +build +**/*.egg-info +**/__pycache__ +moldesign/_static_data/components.ci* +moldesign/_static_data/aa-variants-v1.ci* +**/*.bak +**/.coverage +docs/_build +**/tokens +**/codeship.aes +**/tmp +**/Untitled*.ipynb +DockerMakefiles +docs diff --git a/DockerMakefiles/buildfiles/moldesign/moldesign.yml b/DockerMakefiles/buildfiles/moldesign/moldesign.yml new file mode 100644 index 0000000..e29ecf4 --- /dev/null +++ b/DockerMakefiles/buildfiles/moldesign/moldesign.yml @@ -0,0 +1,4 @@ +run_local: + nab: true + opsin: true + symmol: true diff --git a/DockerMakefiles/buildfiles/notebook/run_notebook.sh b/DockerMakefiles/buildfiles/notebook/run_notebook.sh index 6b4438f..ea5b1f1 100755 --- a/DockerMakefiles/buildfiles/notebook/run_notebook.sh +++ b/DockerMakefiles/buildfiles/notebook/run_notebook.sh @@ -1,3 +1,3 @@ #!/bin/bash -jupyter notebook --ip=0.0.0.0 --no-browser --port=8888 $@ +jupyter notebook --ip=0.0.0.0 --no-browser --port=8888 --allow-root $@ diff --git a/deployment/build-env.dockerfile b/deployment/build-env.dockerfile index 015f6d6..c92465d 100644 --- a/deployment/build-env.dockerfile +++ b/deployment/build-env.dockerfile @@ -1,5 +1,6 @@ FROM python:2.7-slim - +# This is the environment that "docker-make" will run in on the CI server +# The expected build context is the root of the MDT repository RUN apt-get update && apt-get install -y curl # Install docker CLI only, not the full engine diff --git a/moldesign/compute/configuration.py b/moldesign/compute/configuration.py index 7c971f8..8a67c1a 100644 --- a/moldesign/compute/configuration.py +++ b/moldesign/compute/configuration.py @@ -190,11 +190,19 @@ def init_config(): for pkg, do_remote in list(config.run_remote.items()): if do_remote: - getattr(packages, pkg).force_remote = True + try: + getattr(packages, pkg).force_remote = True + except AttributeError: + print('WARNING: unknown key "%s" in %s' % (pkg, path), + file=sys.stderr) for pkg, do_local in list(config.run_local.items()): if do_local: - getattr(packages, pkg).run_local = True + try: + getattr(packages, pkg).run_local = True + except AttributeError: + print('WARNING: unknown key "%s" in %s' % (pkg, path), + file=sys.stderr) def _check_override(tagname, expected, path): diff --git a/requirements.txt b/requirements.txt index 8d020fd..36930c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ numpy >= 1.12 pathlib2 ; python_version < '3.3' parmed >= 2.7.3 pint >= 0.8.1 -pyccc >= 0.7.12 +pyccc >= 0.7.13 pyyaml requests scipy From 5c4bee3bf3d0c77ddb66c5c73ed519d56c6c7632 Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Thu, 5 Oct 2017 16:46:35 -0700 Subject: [PATCH 06/11] Update docker-make version for ignorefile feature --- DockerMakefiles/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DockerMakefiles/requirements.txt b/DockerMakefiles/requirements.txt index 6bc8298..676d81f 100644 --- a/DockerMakefiles/requirements.txt +++ b/DockerMakefiles/requirements.txt @@ -1 +1,2 @@ -DockerMake >= 0.5.6 +DockerMake >= 0.6.0rc2 + From 54e5ea104049a66d18ba525d44655e3ab92e60af Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Thu, 5 Oct 2017 19:02:54 -0700 Subject: [PATCH 07/11] Fix and tweak CI --- codeship-services.yml | 4 +-- codeship-steps.yml | 33 ++++++++++--------- .../moldesign-complete-cache.dockerfile | 5 ++- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/codeship-services.yml b/codeship-services.yml index 4f38acf..dc63886 100644 --- a/codeship-services.yml +++ b/codeship-services.yml @@ -10,8 +10,8 @@ docker_make: publisher: encrypted_env_file: deployment/tokens.crypt build: - context: ./deployment - dockerfile: ./moldesign-complete-cache.dockerfile + context: ./ # this one builds at the root of the repository + dockerfile: ./deployment//moldesign-complete-cache.dockerfile add_docker: true working_dir: /opt/molecular-design-toolkit volumes: diff --git a/codeship-steps.yml b/codeship-steps.yml index 895e935..35e6559 100644 --- a/codeship-steps.yml +++ b/codeship-steps.yml @@ -2,13 +2,7 @@ service: docker_make type: serial steps: - - command: - docker-make -p -n --dockerfile-dir /makefiles - nwchem_build - pyscf_build - deploybase - python_deploy_base - python_deploy_base_py2 + - command: docker-make -p -n --dockerfile-dir /makefiles nwchem_build pyscf_build deploybase python_deploy_base python_deploy_base_py2 name: write_dockerfiles - command: cp buildfiles/deploybase/cleanapt buildfiles/notebook/run_notebook.sh /makefiles name: copy_contexts @@ -70,15 +64,22 @@ steps: - command: deployment/print_environment.sh -- type: serial - name: complete_tests - services: - - test_moldesign_complete - - test_moldesign_complete_py2 - - test_moldesign_minimal - - test_moldesign_minimal_py2 - steps: - - command: deployment/codeship_runtests.sh +- service: test_moldesign_complete + name: test_moldesign_complete + command: deployment/codeship_runtests.sh + +- service: test_moldesign_complete_py2 + name: test_moldesign_complete_py2 + command: deployment/codeship_runtests.sh + +- service: test_moldesign_minimal + name: test_moldesign_minimal + command: deployment/codeship_runtests.sh + +- service: test_moldesign_minimal_py2 + name: test_moldesign_minimal_py2 + command: deployment/codeship_runtests.sh + - name: publish service: publisher diff --git a/deployment/moldesign-complete-cache.dockerfile b/deployment/moldesign-complete-cache.dockerfile index 102710a..fe1b2c0 100644 --- a/deployment/moldesign-complete-cache.dockerfile +++ b/deployment/moldesign-complete-cache.dockerfile @@ -1,5 +1,8 @@ +# this is meant to built at the ROOT of the repository + FROM moldesign_complete:dev -ADD requirements.txt provision_testrunner_image.sh /tmp/ +ADD DockerMakefiles /opt/molecular-design-toolkit/DockerMakefiles +ADD deployment/requirements.txt deployment/provision_testrunner_image.sh /tmp/ RUN cd /tmp && ./provision_testrunner_image.sh RUN pip install twine WORKDIR /opt/molecular-design-toolkit From 0c4c7e91d8407a3d24f9bed928e3e0f5226eed0e Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Thu, 5 Oct 2017 19:38:59 -0700 Subject: [PATCH 08/11] Fix service defs --- codeship-services.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/codeship-services.yml b/codeship-services.yml index dc63886..47c58dd 100644 --- a/codeship-services.yml +++ b/codeship-services.yml @@ -10,8 +10,8 @@ docker_make: publisher: encrypted_env_file: deployment/tokens.crypt build: - context: ./ # this one builds at the root of the repository - dockerfile: ./deployment//moldesign-complete-cache.dockerfile + context: . # this one builds at the root of the repository + dockerfile: ./deployment/moldesign-complete-cache.dockerfile add_docker: true working_dir: /opt/molecular-design-toolkit volumes: @@ -50,8 +50,8 @@ test_moldesign_minimal_py2: test_moldesign_complete: encrypted_env_file: deployment/tokens.crypt build: - context: ./deployment - dockerfile: moldesign-complete-cache.dockerfile + context: ./ # this one builds at the root of the repository + dockerfile: ./deployment/moldesign-complete-cache.dockerfile cached: false # do not cache this! It gets built before the cache is triggered working_dir: /opt/molecular-design-toolkit/ add_docker: true From d905b50f3c83c38643e3536920e663bccfb2f49d Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Thu, 5 Oct 2017 21:23:39 -0700 Subject: [PATCH 09/11] For some reason we now need to install libpng12? --- DockerMakefiles/PythonTools.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/DockerMakefiles/PythonTools.yml b/DockerMakefiles/PythonTools.yml index bdd2375..c57f7d6 100644 --- a/DockerMakefiles/PythonTools.yml +++ b/DockerMakefiles/PythonTools.yml @@ -22,6 +22,9 @@ chem_python_conda: - deploy_requirements description: All of the external python chemistry libraries in one place build: | + RUN apt-get update \ + && apt-get install -y libpng12-dev \ + && cleanapt RUN conda install -qy -c openbabel openbabel=2.4.1 RUN conda install -qy -c omnia \ biopython=1.68 \ From 316ab0b4d9fd7c52d80612812e682c580c7618a1 Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Fri, 6 Oct 2017 20:24:39 -0700 Subject: [PATCH 10/11] Fixes nucleic acid builder docker image --- DockerMakefiles/CLI.yml | 12 +++-------- DockerMakefiles/Dockerfile.build_environment | 22 -------------------- moldesign/compute/packages.py | 2 +- 3 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 DockerMakefiles/Dockerfile.build_environment diff --git a/DockerMakefiles/CLI.yml b/DockerMakefiles/CLI.yml index 4bb2380..6db3176 100644 --- a/DockerMakefiles/CLI.yml +++ b/DockerMakefiles/CLI.yml @@ -11,19 +11,13 @@ ambertools: - miniconda build: | RUN apt-get update \ - && apt-get install --no-install-recommends -y libgfortran3 \ - && apt-get -y clean && apt-get autoremove -y --purge && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + && apt-get install --no-install-recommends -y \ + libgfortran3 gcc gfortran libfftw3-dev libnetcdf-dev \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN python -c "print('name = molecular-design-toolkit-builder\ninstitution = Autodesk\ncity = San Francisco\nstate or province = CA\ncountry = USA')" > /root/.amberrc RUN conda install -qy -c ambermd ambertools=16.21.1 ENV AMBERHOME=/opt/conda/ -nucleic_acid_builder: - requires: - - ambertools - build: | - RUN apt-get update \ - && apt-get install --no-install-recommends -y gcc gfortran libfftw3-dev libnetcdf-dev \ - && apt-get -y clean && apt-get autoremove -y --purge && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* dssp: diff --git a/DockerMakefiles/Dockerfile.build_environment b/DockerMakefiles/Dockerfile.build_environment deleted file mode 100644 index 851d774..0000000 --- a/DockerMakefiles/Dockerfile.build_environment +++ /dev/null @@ -1,22 +0,0 @@ -FROM python:2.7-slim - -# Installing docker CLI -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - curl \ - gnupg2 \ - software-properties-common \ - && curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \ - && add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/debian \ - $(lsb_release -cs) \ - stable" \ - && apt-get update \ - && apt-get install -y docker-ce - -ADD . /opt/molecular-design-toolkit -RUN pip install -r /opt/molecular-design-toolkit/DockerMakefiles/requirements.txt -WORKDIR /opt/molecular-design-toolkit/DockerMakefiles - diff --git a/moldesign/compute/packages.py b/moldesign/compute/packages.py index 1c53172..8878afb 100644 --- a/moldesign/compute/packages.py +++ b/moldesign/compute/packages.py @@ -256,7 +256,7 @@ def make_job(self, **kwargs): nwchem = InterfacedExecutable('nwchem.exe', None, 'nwchem', version_flag=None) opsin = InterfacedExecutable('opsin', None, 'opsin', version_flag=None) -nab = InterfacedExecutable('nab', '16', 'nucleic_acid_builder', version_flag=None) +nab = InterfacedExecutable('nab', '16', 'ambertools', version_flag=None) symmol = InterfacedExecutable('symmol', None, 'symmol', version_flag=None) tleap = InterfacedExecutable('tleap', '16', 'ambertools', version_flag=None) antechamber = InterfacedExecutable('antechamber', '16', 'ambertools', version_flag=None) From e1fa0286193b307a72ac4abea02965511698e2b5 Mon Sep 17 00:00:00 2001 From: Aaron Virshup Date: Fri, 6 Oct 2017 20:55:49 -0700 Subject: [PATCH 11/11] Finish removing special NAB image --- DockerMakefiles/DockerMake.yml | 1 - DockerMakefiles/Moldesign.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/DockerMakefiles/DockerMake.yml b/DockerMakefiles/DockerMake.yml index 16a6327..703ee8f 100644 --- a/DockerMakefiles/DockerMake.yml +++ b/DockerMakefiles/DockerMake.yml @@ -18,7 +18,6 @@ _ALL_: - moldesign_minimal - moldesign_minimal_py2 - moldesign_notebook - - nucleic_acid_builder - nwchem_build - openblas - pyscf_build diff --git a/DockerMakefiles/Moldesign.yml b/DockerMakefiles/Moldesign.yml index 6ae254e..61da0e9 100644 --- a/DockerMakefiles/Moldesign.yml +++ b/DockerMakefiles/Moldesign.yml @@ -70,7 +70,7 @@ moldesign_stack: requires: - opsin - symmol_base - - nucleic_acid_builder + - ambertools - moldesign_notebook build: | USER nbuser