diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c24946cd10dc69d536b2b640b315799d87ec420c..6476bce78f8fc3708d528125e9090ba470b0e0dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,76 +6,45 @@ stages: - test -# CentOS7 STAGE -test:centos7.3: +# Ubuntu22.04 STAGE +test:ubuntu22.04: stage: test - image: centos:7.3.1611 + image: ubuntu:22.04 before_script: - - echo "Running centos7.3 'before_script'..." - - yum -y -q -e 0 install tcl - - yum -y -q -e 0 install glibc-common - - yum -y -q -e 0 install glibc-devel - - yum -y -q -e 0 install make - - yum -y -q -e 0 install libicu - - yum -y -q -e 0 install libjpeg-turbo - - yum -y -q -e 0 install freetype - - yum -y -q -e 0 install openssl - - mkdir -p /scicore/soft/modules - - ln -s /export/soft/apps/centos7/generic /scicore/soft/apps - - ln -s /export/soft/modules/centos7/generic/all /scicore/soft/modules - - source /export/soft/lua_lmod/centos7/lmod/lmod/init/bash - - module use /scicore/soft/modules/all - - module load foss/2021a - - module load wget/1.21.1-GCCcore-10.3.0 - - module load CMake/3.23.1-GCCcore-10.3.0 - - module load Python/3.9.5-GCCcore-10.3.0 - - module load Eigen/3.4.0-GCCcore-10.3.0 - - module load Boost.Python/1.76.0-GCC-10.3.0 - - module load LibTIFF/.4.2.0-GCCcore-10.3.0 - - module load libpng/.1.6.37-GCCcore-10.3.0 - - module load HH-suite/3.2.0-gompi-2021a - - module load Perl/5.32.1-GCCcore-10.3.0 - - module load OpenMM/7.7.0-foss-2021a - - module load SQLite/3.35.4-GCCcore-10.3.0 - - module load dssp/2.2.1-foss-2021a - - module load msms/2.6.1-linux-x86_64 - - module load ClustalW2/2.1-foss-2021a - - module load networkx/2.5.1-foss-2021a - - echo "... done running centos7.3 'before_script'." + - echo "Running ubuntu22.04 'before_script'..." + - apt-get update -y + - apt-get install -y cmake + - apt-get install -y g++ + - apt-get install -y wget + - apt-get install -y libsqlite3-dev + - apt-get install -y sip-dev + - apt-get install -y libtiff-dev + - apt-get install -y libfftw3-dev + - apt-get install -y libeigen3-dev + - apt-get install -y libboost-all-dev + - apt-get install -y libpng-dev + - apt-get install -y python3-all + - apt-get install -y python3-numpy + - apt-get install -y python3-scipy + - apt-get install -y python3-networkx + - apt-get install -y clustalw + - apt-get install -y voronota + - apt-get install -y libopenmm-dev + - apt-get install -y libparasail-dev + - echo "... done running ubuntu22.04 'before_script'." script: - - echo "Testing on CentOS 7..." + - echo "Testing on Ubuntu 22.04..." - echo " Building OST..." - mkdir build-ci - cd build-ci - - cmake .. -DENABLE_MM=1 - -DOPEN_MM_LIBRARY=$EBROOTOPENMM/lib/libOpenMM.so - -DOPEN_MM_PLUGIN_DIR=$EBROOTOPENMM/lib/plugins - -DOPEN_MM_INCLUDE_DIR=$EBROOTOPENMM/include - -DCOMPILE_TMTOOLS=1 - -DENABLE_INFO=OFF - -DENABLE_GFX=OFF + - cmake .. -DOPTIMIZE=ON + -DENABLE_GFX=ON -DENABLE_GUI=OFF - -DUSE_RPATH=1 - -DPython_ROOT_DIR=$EBROOTPYTHON - -DEIGEN3_INCLUDE_DIR=$EBROOTEIGEN/include - -DFFTW_LIBRARY=$EBROOTFFTW/lib/libfftw3f.a - -DFFTW_INCLUDE_DIR=$EBROOTFFTW/include - -DSQLITE3_LIBRARY=$EBROOTSQLITE/lib/libsqlite3.so - -DSQLITE3_INCLUDE_DIR=$EBROOTSQLITE/include - -DBOOST_ROOT=$EBROOTBOOST - -DPNG_LIBRARY=$EBROOTLIBPNG/lib/libpng.so - -DPNG_PNG_INCLUDE_DIR=$EBROOTLIBPNG/include - -DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.so - -DZLIB_INCLUDE_DIR=$EBROOTZLIB/include - -DTIFF_INCLUDE_DIR=$EBROOTLIBTIFF/include - -DTIFF_LIBRARY=$EBROOTLIBTIFF/lib/libtiff.so - -DZLIB_INCLUDE_DIR=$EBROOTZLIB/include - -DZLIB_LIBRARY=$EBROOTZLIB/lib/libz.so - -DOPTIMIZE=1 - -DCMAKE_C_FLAGS='-L${EBROOTLIBPNG}/lib/ -L${EBROOTLIBTIFF}/lib/ -L${EBROOTZLIB}/lib/ -isystem ${EBROOTBOOST}/include -isystem ${EBROOTOPENMM}/include' - -DCMAKE_CXX_FLAGS='-L${EBROOTLIBPNG}/lib/ -L${EBROOTLIBTIFF}/lib/ -L${EBROOTZLIB}/lib/ -isystem ${EBROOTBOOST}/include -isystem ${EBROOTOPENMM}/include' - -DCMAKE_EXE_LINKER_FLAGS=" -pthread" - - make -j 2 chemdict_tool + -DENABLE_INFO=OFF + -DENABLE_MM=1 + -DOPEN_MM_PLUGIN_DIR=/usr/lib/x86_64-linux-gnu/openmm + -DENABLE_PARASAIL=1 + - make -j 2 - echo " ... done building OST." - echo " Downloading chemical compounds..." - wget ftp://ftp.wwpdb.org/pub/pdb/data/monomers/components.cif.gz @@ -91,4 +60,5 @@ test:centos7.3: - echo " Running unit tests for OST..." - make check - echo " ... done running unit tests for OST..." - - echo "... done testing on CentOS 7." + - echo "... done testing on Ubuntu 22.04." + diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 406518a8eb0617e93ffde7a289536b271900c5e4..ef6d7297c4ad593b5988e81ecbd21a7e2c58ca3e 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,4 +1,4 @@ -Changes in Release x.x.x +Changes in Release 2.8.0 -------------------------------------------------------------------------------- * heavy water (DOD) is now recognised as 'water' instead of 'non-polymer' by diff --git a/CMakeLists.txt b/CMakeLists.txt index c5a7f82a84892190623d18f200922d01fa694ae6..1ff94f97da8a9eced92f710db9139ef91150ea2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ cmake_policy(SET CMP0060 NEW) project(OpenStructure CXX C) set (CMAKE_EXPORT_COMPILE_COMMANDS 1) set (OST_VERSION_MAJOR 2) -set (OST_VERSION_MINOR 7) +set (OST_VERSION_MINOR 8) set (OST_VERSION_PATCH 0) set (OST_VERSION_STRING ${OST_VERSION_MAJOR}.${OST_VERSION_MINOR}.${OST_VERSION_PATCH} ) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake_support) diff --git a/docker/Dockerfile b/docker/Dockerfile index 075735de67f94fa7207ed4ff6bfd69377bdaa500..b7bbf68ab362aed955d0279f68455b31aadcc90a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:22.04 # ARGUMENTS ########### -ARG OPENSTRUCTURE_VERSION="2.7.0" +ARG OPENSTRUCTURE_VERSION="2.8.0" ARG SRC_FOLDER="/usr/local/src" ARG CPUS_FOR_MAKE=2 ARG OPENMM_VERSION="7.7.0" diff --git a/modules/mol/mm/src/topology_creator.cc b/modules/mol/mm/src/topology_creator.cc index 00ba0738d68f5730d362097d0eee446d4ccef39b..9f0222b9c43edd72db0290fe1670b241315615ec 100644 --- a/modules/mol/mm/src/topology_creator.cc +++ b/modules/mol/mm/src/topology_creator.cc @@ -88,7 +88,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, //this should be enough for most needs ost::mol::ResidueHandle next,prev; - bool n_ter,c_ter; + bool n_ter, c_ter; + std::set<unsigned long> n_ter_residues, c_ter_residues; ost::mol::AtomHandle peptide_n,peptide_c,nucleotide_p,nucleotide_o; for(ost::mol::ResidueHandleList::iterator i = res_list.begin(); @@ -133,8 +134,8 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } - if(n_ter) i->SetBoolProp("n_ter",true); - if(c_ter) i->SetBoolProp("c_ter",true); + if(n_ter) n_ter_residues.insert(i->GetHashCode()); + if(c_ter) c_ter_residues.insert(i->GetHashCode()); } @@ -181,7 +182,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, } } //check for n terminus - if(i->HasProp("n_ter")){ + if(n_ter_residues.find(i->GetHashCode()) != n_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i); @@ -193,7 +194,7 @@ TopologyPtr TopologyCreator::Create(ost::mol::EntityHandle& ent, block->RemoveInteractionsToPrev(); } } - if(i->HasProp("c_ter")){ + if(c_ter_residues.find(i->GetHashCode()) != c_ter_residues.end()){ String exception_name = ""; if(settings->termini_exceptions->HasException(*i)){ exception_name = settings->termini_exceptions->GetException(*i); diff --git a/singularity/Singularity b/singularity/Singularity index e16d4ad5491baf7aa034de4153c0726800dbfbe3..395c512ca3289341613932f39e24ae9aed0fc264 100644 --- a/singularity/Singularity +++ b/singularity/Singularity @@ -1,5 +1,5 @@ BootStrap: docker -From: registry.scicore.unibas.ch/schwede/openstructure:2.7.0-jammy +From: registry.scicore.unibas.ch/schwede/openstructure:2.8.0 %post ############################################################################## # POST