Skip to content

Commit af6f9d6

Browse files
committed
Merge for 2.21.0 release
2 parents 88de4f3 + 6c1d0d6 commit af6f9d6

File tree

449 files changed

+9555
-1989
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

449 files changed

+9555
-1989
lines changed

.github/workflows/flake.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ jobs:
2121
- name: Test
2222
run: |
2323
pip install flake8
24-
flake8 tools modules/cnmultifit/pyext modules/EMageFit/pyext modules/parallel/pyext modules/test/pyext modules/mmcif/pyext modules/statistics/pyext modules/pepdock/pyext modules/saxs_merge/bin/saxs_merge
24+
flake8 tools modules/cnmultifit/pyext modules/EMageFit/pyext modules/parallel/pyext modules/test/pyext modules/mmcif/pyext modules/statistics/pyext modules/pepdock/pyext modules/saxs_merge/bin/saxs_merge modules/isd/pyext modules/multifit/pyext modules/spatiotemporal/pyext

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,7 @@
1818
path = modules/sampcon
1919
url = https://github.com/salilab/imp-sampcon.git
2020
branch = imp_module
21+
[submodule "modules/nestor"]
22+
path = modules/nestor
23+
url = https://github.com/isblab/nestor.git
24+
branch = imp-integration

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ if(POLICY CMP0056)
5757
cmake_policy(SET CMP0056 NEW)
5858
endif(POLICY CMP0056)
5959

60+
# Don't complain about our use of FindCUDA for now
61+
if(POLICY CMP0146)
62+
cmake_policy(SET CMP0146 OLD)
63+
endif(POLICY CMP0146)
64+
6065
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPExecuteProcess.cmake)
6166
include(${CMAKE_SOURCE_DIR}/cmake_modules/IMPAddTests.cmake)
6267
include(${CMAKE_SOURCE_DIR}/cmake_modules/CheckCompiles.cmake)
@@ -488,6 +493,9 @@ file(WRITE ${CMAKE_BINARY_DIR}/IMPConfig.cmake
488493
"set(IMP_SWIG_DIR \"${CMAKE_BINARY_DIR}/swig\" )\n"
489494
"set(RMF_SWIG_DIR \"${CMAKE_SOURCE_DIR}/modules/rmf/dependency/RMF/swig\" )\n"
490495
"set(IMP_MODULES_DIR \"${CMAKE_SOURCE_DIR}/cmake_modules\" )\n"
496+
"set(IMP_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" )\n"
497+
"set(IMP_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}\" )\n"
498+
"set(IMP_OSX_SYSROOT \"${CMAKE_OSX_SYSROOT}\" )\n"
491499
"set(RMF_INCLUDE_PATH \"${RMF_INCLUDE_PATH}\" )\n"
492500
"set(IMP_USE_FILE \"\${IMP_USE_DIR}/UseIMP.cmake\" )\n")
493501
# Installed locations
@@ -505,6 +513,9 @@ file(WRITE ${CMAKE_BINARY_DIR}/cmake/IMPConfig.cmake
505513
"set(RMF_SWIG_DIR \"${CMAKE_INSTALL_FULL_SWIGDIR}\" )\n"
506514
"set(IMP_MODULES_DIR \"${CMAKE_INSTALL_FULL_CMAKEDIR}\" )\n"
507515
"set(RMF_INCLUDE_PATH \"${CMAKE_INSTALL_FULL_INCLUDEDIR}\" )\n"
516+
"set(IMP_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" )\n"
517+
"set(IMP_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}\" )\n"
518+
"set(IMP_OSX_SYSROOT \"${CMAKE_OSX_SYSROOT}\" )\n"
508519
"set(IMP_USE_FILE \"\${IMP_USE_DIR}/UseIMP.cmake\" )\n")
509520
list(REMOVE_DUPLICATES IMP_ALL_DEPENDS_VARS)
510521
foreach(cmakefile ${CMAKE_BINARY_DIR}/IMPConfig.cmake

ChangeLog.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
ChangeLog {#changelog}
22
=========
33

4+
# 2.21.0 - 2024-06-13 # {#changelog_2_21_0}
5+
- The new IMP::spatiotemporal module can be used to assist in building stepwise
6+
spatiotemporal models, such as those we used to compute our model of
7+
NPC assembly.
8+
- The new IMP::nestor module performs nested sampling-based optimization of
9+
representation.
10+
- This is the last version of IMP to support Python 2. Please port your
11+
workflows to Python 3.
12+
- The IMP::atom::ChainPDBSelector constructor that takes a single string has
13+
been removed; pass a list of chain IDs instead.
14+
- The IMP::pmi::get_is_canonical function has been removed; PMI no longer
15+
supports the older PMI1-style hierarchies.
16+
- .deb packages for IMP for Ubuntu LTS, for both amd64 and arm64 architectures,
17+
are now provided by an
18+
[Ubuntu PPA](https://launchpad.net/~salilab/+archive/ubuntu/ppa)
19+
- Many runtime checks on the VectorD and Array (e.g. used by ParticleIndexPair)
20+
classes have now been moved to compile-time checks, which makes restraint
21+
evaluation significantly faster in release builds, without sacrificing
22+
correctness.
23+
424
# 2.20.2 - 2024-04-04 # {#changelog_2_20_2}
525
- Add support for building ARM64 .deb packages.
626
- Bugfix: fix use of nested classes with latest SWIG.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.20.2
1+
2.21.0

cmake_modules/IMPFindCompilerFlags.cmake

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ endif()
1515
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
1616
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE
1717
GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
18-
message(STATUS "GCC version: ${GCC_VERSION}")
19-
if (GCC_VERSION VERSION_GREATER 4.6 OR GCC_VERSION VERSION_EQUAL 4.6)
20-
message(STATUS "No conversion issue")
21-
elseif (GCC_VERSION VERSION_GREATER 4.3 OR GCC_VERSION VERSION_EQUAL 4.3)
18+
if (GCC_VERSION VERSION_LESS 4.6 AND (GCC_VERSION VERSION_GREATER 4.3 OR GCC_VERSION VERSION_EQUAL 4.3))
2219
add_definitions("-Wno-conversion")
2320
endif()
2421
endif()

cmake_modules/IMPFindPython.cmake

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,23 @@ function(imp_find_python)
2929
endif()
3030
set(PYTHON_EXECUTABLE ${python_full_path} CACHE INTERNAL "" FORCE)
3131
set(PYTHON_TEST_EXECUTABLE ${python_full_path} CACHE STRING "")
32-
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print('%d.%d.%d' % sys.version_info[:3])"
33-
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
34-
OUTPUT_VARIABLE python_full_version
35-
OUTPUT_STRIP_TRAILING_WHITESPACE)
36-
string(REGEX REPLACE "^([0-9])+\\.[0-9]+.*" "\\1" major
37-
"${python_full_version}")
38-
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" minor
39-
"${python_full_version}")
40-
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" patch
41-
"${python_full_version}")
42-
set(PYTHON_VERSION ${python_full_version} CACHE INTERNAL "" FORCE)
43-
set(PYTHON_VERSION_MAJOR ${major} CACHE INTERNAL "" FORCE)
44-
set(PYTHON_VERSION_MINOR ${minor} CACHE INTERNAL "" FORCE)
45-
set(PYTHON_VERSION_PATCH ${patch} CACHE INTERNAL "" FORCE)
46-
message(STATUS "Python binary is " ${python_full_path} " (version " ${python_full_version} ")")
47-
32+
endif()
33+
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print('%d.%d.%d' % sys.version_info[:3])"
34+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
35+
OUTPUT_VARIABLE python_full_version
36+
OUTPUT_STRIP_TRAILING_WHITESPACE)
37+
string(REGEX REPLACE "^([0-9])+\\.[0-9]+.*" "\\1" major
38+
"${python_full_version}")
39+
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" minor
40+
"${python_full_version}")
41+
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" patch
42+
"${python_full_version}")
43+
set(PYTHON_VERSION ${python_full_version} CACHE INTERNAL "" FORCE)
44+
set(PYTHON_VERSION_MAJOR ${major} CACHE INTERNAL "" FORCE)
45+
set(PYTHON_VERSION_MINOR ${minor} CACHE INTERNAL "" FORCE)
46+
set(PYTHON_VERSION_PATCH ${patch} CACHE INTERNAL "" FORCE)
47+
message(STATUS "Python binary is " ${PYTHON_EXECUTABLE} " (version " ${python_full_version} ")")
48+
if(NOT DEFINED PYTHON_INCLUDE_DIRS)
4849
find_package(PythonLibs ${python_full_version} EXACT REQUIRED)
4950
# Make sure PYTHON_INCLUDE_DIRS is in the cache so it can be
5051
# used elsewhere

doc/manual/cmake_config.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ Various aspects of %IMP build behavior can be controlled via variables. These ca
5151
- `IMP_MAX_CHECKS`: One of `NONE`, `USAGE`, `INTERNAL` to control what check levels will be supported. The default is `USAGE` for release builds and `INTERNAL` for debug builds (setting this to `INTERNAL` will impact performance; `NONE` is not recommended as all sanity checks will be skipped).
5252
- `IMP_MAX_LOG`: One of `SILENT`, `PROGRESS`, `TERSE`, `VERBOSE` to control what log levels are supported.
5353
- `IMP_PER_CPP_COMPILATION`: A colon-separated list of modules to build one .cpp at a time, or `ALL` to do this for all modules.
54+
- `IMP_CUDA`: A colon-separated list of modules to build with CUDA (GPU) support, or `ALL` to do this for all modules. This is experimental and is currently in development. See [here](@ref gpu) for more details.
5455
- `USE_PYTHON2`: Set to `on` to have CMake build %IMP with Python 2 (by default it will use Python 3 if available).
5556
- `IMP_USE_SYSTEM_RMF`: Set to `on` to build %IMP using an external (system) copy of the RMF library, instead of that bundled with IMP itself.
5657
- `IMP_USE_SYSTEM_IHM`: Set to `on` to build %IMP using an external (system) copy of the python-ihm library, instead of that bundled with IMP itself.

doc/manual/gpu.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
GPU support {#gpu}
2+
===========
3+
4+
%IMP currently has only very rudimentary support for running on a graphics
5+
processing unit (GPU), although this is currently in development.
6+
7+
%IMP currently only supports NVIDIA GPUs using the CUDA toolkit (although this
8+
is likely to switch to use [SYCL](https://sycl.tech/) as the ecosystem matures).
9+
To build %IMP from source code with CUDA support (there are currently no
10+
prebuilt %IMP binaries that use CUDA), ensure that the `nvcc` compiler
11+
from NVIDIA's [CUDA toolkit](https://developer.nvidia.com/cuda-downloads)
12+
is available, and add `-DIMP_CUDA` to your
13+
[CMake invocation](@ref cmake_config).

doc/manual/installation.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ to see if the code is currently stable enough for your purposes.
2121
To experiment with IMP on [Google Colaboratory](https://colab.research.google.com), use the following code snippet:
2222

2323
\code{.unparsed}
24-
!echo "deb https://integrativemodeling.org/latest/download $(lsb_release -cs)/" > /etc/apt/sources.list.d/salilab.list
25-
!wget -O /etc/apt/trusted.gpg.d/salilab.asc https://salilab.org/~ben/pubkey256.asc
26-
!apt update
24+
!add-apt-repository -y ppa:salilab/ppa
2725
!apt install imp
2826
import sys, os, glob
2927
sys.path.append(os.path.dirname(glob.glob('/usr/lib/python*/dist-packages/IMP')[0]))

0 commit comments

Comments
 (0)