Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature merge2 #183

Merged
merged 91 commits into from
Apr 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
f5a307b
WIP - adding in mutate and merge functions to make it easier to use A…
chryswoods Feb 18, 2024
5a8d34e
Added the ability in AtomMapping to store the atoms that weren't mapp…
chryswoods Feb 19, 2024
326032a
Added quick functions to get and set the expression used for the pote…
chryswoods Feb 20, 2024
605e820
Merge branch 'fix_164' of https://github.com/openbiosim/sire into fea…
chryswoods Feb 20, 2024
807270b
Merge branch 'fix_164' of https://github.com/openbiosim/sire into fea…
chryswoods Feb 21, 2024
f31f5c8
Merge branch 'fix_164' of https://github.com/openbiosim/sire into fea…
chryswoods Feb 21, 2024
7c31ecb
Merge branch 'devel' of https://github.com/openbiosim/sire into featu…
chryswoods Feb 22, 2024
e3668f8
WIP - VERY WIP
chryswoods Feb 22, 2024
469e284
WIP - filling in missing functions and fixing wrappers
chryswoods Feb 22, 2024
85b2419
All functions implemented - can now compile and run code that has alt…
chryswoods Feb 22, 2024
1d87e8f
Added functions to switch to or remove the alternate names.
chryswoods Feb 23, 2024
8b2cdca
Merge branch 'fix_170' of https://github.com/openbiosim/sire into fea…
chryswoods Feb 23, 2024
dc43473
Fixed new code - all compiles, links and tests pass. Out of the rabbi…
chryswoods Feb 23, 2024
2855d9f
Making good progress - realised that can use properties of the atoms …
chryswoods Feb 23, 2024
8d33ce3
WIP (not compiling yet)
chryswoods Feb 25, 2024
2338e91
WIP (still) - added ability to control the value of ghost atom parame…
chryswoods Feb 25, 2024
52156d1
Merge branch 'fix_170' of https://github.com/openbiosim/sire into fea…
chryswoods Feb 26, 2024
4588f20
Added a SireBase::Console that connects through the sire.utils.Consol…
chryswoods Feb 26, 2024
ad73472
Added a warning that these higher-level properties aren't being merge…
chryswoods Feb 26, 2024
60abd65
WIP - I've been filling in the merge function for most of the MolView…
chryswoods Feb 27, 2024
e6a3223
Finished filling in null merge functions for the MolViewProperty clas…
chryswoods Feb 28, 2024
04f103e
AtomProperty merging is working quite well :-)
chryswoods Feb 28, 2024
44a4eaa
WIP - working out how to merge bonds...
chryswoods Feb 28, 2024
6bdf012
Making progress - am merging the bonds. To test this, I need to next …
chryswoods Mar 1, 2024
ce46594
Added code to merge the connectivities, plus build a shared connectiv…
chryswoods Mar 2, 2024
4f27171
Connectivity, atomtype, charge, LJ, mass, name and bond properties lo…
chryswoods Mar 2, 2024
9b1005c
Some optimisation, plus made sure that bonds involving atoms that exi…
chryswoods Mar 3, 2024
e0f3674
Added the same code to ThreeAtomFunctions and FourAtomFunctions and a…
chryswoods Mar 3, 2024
026cb15
Make sure to add connections from ghosts to reference atoms in the re…
chryswoods Mar 3, 2024
42ff6bd
Fixed a bug in AtomIdxMapping, and remembered to add the connections/…
chryswoods Mar 3, 2024
e5ae14e
Merge branch 'fix_constraints' of https://github.com/openbiosim/sire …
chryswoods Mar 4, 2024
1dab9f3
Added the code to merge the CLJNBPairs.
chryswoods Mar 4, 2024
f53bae3
Added a "to_xml" function so that it is easier to convert sire OpenMM…
chryswoods Mar 4, 2024
5348fcd
Added an AtomNumMatcher as this perfectly re-matches the separated ex…
chryswoods Mar 4, 2024
0a6c0ae
I've added alignment and also got the mutation working. A quick look …
chryswoods Mar 5, 2024
51a68eb
Working on adding in the checks for ring size breaking and changing, …
chryswoods Mar 5, 2024
e344caa
Added in the ring growing and breaking checks, ported from Python to C++
chryswoods Mar 6, 2024
ec46c5c
Added function-level documentation, plus also the sr.morph.decouple f…
chryswoods Mar 6, 2024
8bde2df
Fixes to make the merge, mutate and decouple work for the demo
chryswoods Mar 7, 2024
5cf821c
Added kartograf support to the match function. Can now pass in a Kart…
chryswoods Mar 8, 2024
ce1baa6
Optimised the code that edits proteins, so that the merge is not O(N2…
chryswoods Mar 9, 2024
0fbd040
Optimised the CLJNBPairs makeCompatible function, so that it works an…
chryswoods Mar 10, 2024
85546e8
Merge branch 'devel' of https://github.com/openbiosim/sire into featu…
chryswoods Mar 10, 2024
79ac2b6
Bringing in the fix for Mol2 atom types
chryswoods Mar 10, 2024
05969bb
Copying ghost NBSCL parameters from the alternate end state.
chryswoods Mar 10, 2024
ae47981
Added more to the merge test
chryswoods Mar 10, 2024
f724cf8
Optimised the perturbation object, fixed a small bug in the merge cod…
chryswoods Mar 10, 2024
c639827
Remerged does give the same energy as original merge
chryswoods Mar 10, 2024
08141be
Added in lambda=0.5 check - it is different - worth checking why
chryswoods Mar 10, 2024
86b3ca0
Fixed the crash (I think) caused by not removing atoms from the conne…
chryswoods Mar 17, 2024
dc78ac2
Updated requirements to not pull in kartograf on Windows
chryswoods Mar 17, 2024
50fab9a
Added decorators to skip tests for functionality not supported on win…
chryswoods Mar 17, 2024
ec5f357
Added the annihilate function, and cleaned up the LambdaSchedule func…
chryswoods Mar 17, 2024
d211da6
Added in the code to create the schedules for decoupling and annihila…
chryswoods Mar 18, 2024
ec1fc46
Added ability to print out changed constraints
chryswoods Mar 18, 2024
2cdf38c
Worked it out - just need to add in the missing bonds and angles to each
chryswoods Mar 18, 2024
d3b2dd4
Added good tests of the annihilate and decouple functions. Also found…
chryswoods Mar 20, 2024
4a0dea0
Small fix to iterate over the right object...
chryswoods Mar 20, 2024
e18ed45
Merge branch 'devel' of https://github.com/openbiosim/sire into featu…
chryswoods Mar 20, 2024
79f4f11
Committing test changes
chryswoods Mar 22, 2024
269b6cc
Writing the tutorial section that documents the softening potential
chryswoods Mar 25, 2024
d8cce6b
Changed 1/r to 1/r_safe for custom forces, where r_safe is max(r, 0.001)
chryswoods Mar 27, 2024
942abd2
Working on docs - updated miniconda recipe to v3
chryswoods Mar 28, 2024
93bc4fd
Laying out the structure of the rest of the tutorial
chryswoods Mar 28, 2024
50dce6c
Working on the tutorial...
chryswoods Mar 29, 2024
c326adc
Continuing the tutorial...
chryswoods Mar 29, 2024
a7e5a4b
More progress on the tutorial
chryswoods Mar 29, 2024
204cd90
Finished the merge section of the tutorial. Included a description on…
chryswoods Mar 29, 2024
0e92aaa
Working on the decoupling chapter. Working on how to handle kappa
chryswoods Mar 29, 2024
27d8453
Working on a function to print out all of the parameters as a functio…
chryswoods Mar 30, 2024
b851341
Fixed a bug in the LambdaSchedule that meant that standard morphs in …
chryswoods Mar 30, 2024
fa45c8f
Added a section to show how to use the new functionality to print out…
chryswoods Mar 30, 2024
682051e
Finished the decoupling section
chryswoods Mar 30, 2024
2c39aef
Finished the annihilation section of the tutorial
chryswoods Mar 30, 2024
6c34007
Finished up part 7 of the tutorial now. Just some more cleaning, plus
chryswoods Mar 30, 2024
8a5f1b1
Merge branch 'devel' of https://github.com/openbiosim/sire into featu…
chryswoods Mar 30, 2024
3c2d46e
Fixed the logic of the randomly failing test
chryswoods Mar 30, 2024
cdf360a
Updated the changelog :-)
chryswoods Mar 30, 2024
6708758
Added power and square root support to GeneralUnit
chryswoods Mar 30, 2024
85751b7
Fully switch over to conda build
chryswoods Mar 30, 2024
3ea0e3f
Switched back to older miniconda setup, plus removed even more mamba
chryswoods Mar 30, 2024
eeb2ccd
Pinned gemmi to 0.6.4 on Windows to see if that resolves the symbol p…
chryswoods Mar 31, 2024
a3cd27b
Removed the boa pin and experimenting with removing the pin for packa…
chryswoods Mar 31, 2024
096eff6
Missed this gemmi pin
chryswoods Mar 31, 2024
7e36a4a
Removed the pin on gemmi and moved it to windows for pybind11
chryswoods Apr 1, 2024
e4f72b3
MacOS x86 3.12 didn't work, so using 3.11 for MacOS for now.
chryswoods Apr 1, 2024
73fe384
Update documentation about support Python versions, plus added instru…
chryswoods Apr 1, 2024
ae2f9d3
Atom/residue name information is now saved to the RDKit molecule :-)
chryswoods Apr 1, 2024
8e4981e
I've added in support for preserving metadata when converting to and …
chryswoods Apr 2, 2024
2549c3e
Added a "auto-bonds" constraint option that constrains bonds based on…
chryswoods Apr 3, 2024
b613f48
Added the unit test, changelog entry and documentation. Accidentally
chryswoods Apr 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/choose_branch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
max-parallel: 5
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.10", "3.11", "3.12"]
platform:
- { name: "windows", os: "windows-latest", shell: "pwsh" }
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
Expand All @@ -30,14 +30,14 @@ jobs:
# but Linux
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.8"
python-version: "3.10"
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.8"
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.9"
python-version: "3.12" # MacOS can't run 3.12 yet...
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.9"
python-version: "3.11"
environment:
name: sire-build
defaults:
Expand All @@ -49,7 +49,7 @@ jobs:
REPO: "${{ github.repository }}"
steps:
#
- uses: conda-incubator/setup-miniconda@v2
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand All @@ -62,7 +62,7 @@ jobs:
run: git clone https://github.com/${{ env.REPO }} -b ${{ github.event.inputs.branch }} sire
#
- name: Setup Conda
run: mamba install -y -c conda-forge boa anaconda-client packaging=21 pip-requirements-parser
run: mamba install -y -c conda-forge boa anaconda-client packaging pip-requirements-parser
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/sire/actions/update_recipe.py
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/devel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:
name: build (${{ matrix.python-version }}, ${{ matrix.platform.name }})
runs-on: ${{ matrix.platform.os }}
strategy:
max-parallel: 5
max-parallel: 6
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12"]
platform:
- { name: "windows", os: "windows-latest", shell: "pwsh" }
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
Expand All @@ -28,11 +28,11 @@ jobs:
# but Linux
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.9"
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.9"
python-version: "3.12" # MacOS can't run 3.12 yet... We want 3.10 and 3.11
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.10"
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.11"
environment:
name: sire-build
defaults:
Expand All @@ -44,7 +44,7 @@ jobs:
REPO: "${{ github.repository }}"
steps:
#
- uses: conda-incubator/setup-miniconda@v2
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand All @@ -57,7 +57,7 @@ jobs:
run: git clone https://github.com/${{ env.REPO }} sire
#
- name: Setup Conda
run: mamba install -y -c conda-forge boa anaconda-client packaging=21 pip-requirements-parser
run: mamba install -y -c conda-forge boa anaconda-client packaging pip-requirements-parser
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/sire/actions/update_recipe.py
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@ jobs:
max-parallel: 9
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12"]
platform:
- { name: "windows", os: "windows-latest", shell: "pwsh" }
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
- { name: "macos", os: "macos-latest", shell: "bash -l {0}" }
exclude:
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.12" # MacOS can't run 3.12 yet...
environment:
name: sire-build
defaults:
Expand All @@ -40,7 +44,7 @@ jobs:
REPO: "${{ github.event.pull_request.head.repo.full_name || github.repository }}"
steps:
#
- uses: conda-incubator/setup-miniconda@v2
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand All @@ -53,7 +57,7 @@ jobs:
run: git clone -b main https://github.com/openbiosim/sire sire
#
- name: Setup Conda
run: mamba install -y -c conda-forge boa anaconda-client packaging=21 pip-requirements-parser
run: mamba install -y -c conda-forge boa anaconda-client packaging pip-requirements-parser
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/sire/actions/update_recipe.py
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
max-parallel: 5
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12"]
platform:
- { name: "windows", os: "windows-latest", shell: "pwsh" }
- { name: "linux", os: "ubuntu-latest", shell: "bash -l {0}" }
Expand All @@ -27,14 +27,14 @@ jobs:
# but Linux
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.9"
python-version: "3.10"
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.9"
python-version: "3.10"
- platform:
{ name: "macos", os: "macos-latest", shell: "bash -l {0}" }
python-version: "3.10"
python-version: "3.12" # MacOS can't run 3.12 yet...
- platform: { name: "windows", os: "windows-latest", shell: "pwsh" }
python-version: "3.10"
python-version: "3.11"
environment:
name: sire-build
defaults:
Expand All @@ -46,7 +46,7 @@ jobs:
REPO: "${{ github.event.pull_request.head.repo.full_name || github.repository }}"
steps:
#
- uses: conda-incubator/setup-miniconda@v2
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand All @@ -59,7 +59,7 @@ jobs:
run: git clone -b ${{ github.head_ref }} --single-branch https://github.com/${{ env.REPO }} sire
#
- name: Setup Conda
run: mamba install -y -c conda-forge boa anaconda-client packaging=21 pip-requirements-parser
run: mamba install -y -c conda-forge boa anaconda-client packaging pip-requirements-parser
#
- name: Update Conda recipe
run: python ${{ github.workspace }}/sire/actions/update_recipe.py
Expand Down
39 changes: 37 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,53 @@ To create a new environment:

.. code-block:: bash

conda create -n openbiosim "python<3.12"
conda create -n openbiosim "python<3.13"
conda activate openbiosim
conda install -c conda-forge -c openbiosim sire

To install the latest development version you can use:

.. code-block:: bash

conda create -n openbiosim-dev "python<3.12"
conda create -n openbiosim-dev "python<3.13"
conda activate openbiosim-dev
conda install -c conda-forge -c openbiosim/label/dev sire

Installing older versions
-------------------------

You can install a specific version of sire by specifying the version number
in the conda install command, e.g.

.. code-block:: bash

conda install -c conda-forge -c openbiosim sire==2024.1.0

Note that limited space means that we can only keep a small number of
versions of sire on the official openbiosim conda channel. Generally
these are all point releases of the latest major version, plus the latest
point release of the last major version.

We do provide an
`archive channel <https://openbiosim.blob.core.windows.net/archive/index.html>`__
of all previous releases. You can search this archive channel for the
release you are interested in using the following command:

.. code-block:: bash

conda search -c https://openbiosim.blob.core.windows.net/archive sire

This will return a list of all versions of sire available in the archive.

You can install a specific version from the archive using a command like:

.. code-block:: bash

conda install -c https://openbiosim.blob.core.windows.net/archive sire==2023.2.3

Installation from source
------------------------

However, as you are here, it is likely you want to download the latest,
greatest version of the code, which you will need to compile. To compile
sire,
Expand Down
2 changes: 1 addition & 1 deletion actions/update_recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,4 @@ def check_reqs(reqs0, reqs1):
channels = " ".join([f"-c {x}" for x in channels])

print("\nBuild this package using the command")
print(f"conda mambabuild {channels} {condadir}")
print(f"conda build {channels} {condadir}")
2 changes: 2 additions & 0 deletions corelib/src/libs/SireBase/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ set ( SIREBASE_HEADERS
combineproperties.h
convert_property.hpp
countflops.h
console.h
cpuid.h
errors.h
findexe.h
Expand Down Expand Up @@ -87,6 +88,7 @@ set ( SIREBASE_SOURCES
chunkedhash.cpp
chunkedvector.cpp
combineproperties.cpp
console.cpp
countflops.cpp
cpuid.cpp
errors.cpp
Expand Down
88 changes: 88 additions & 0 deletions corelib/src/libs/SireBase/console.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/********************************************\
*
* Sire - Molecular Simulation Framework
*
* Copyright (C) 2024 Christopher Woods
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* For full details of the license please see the COPYING file
* that should have come with this distribution.
*
* You can contact the authors via the website
* at https://sire.openbiosim.org
*
\*********************************************/

#include "SireBase/console.h"

using namespace SireBase;

ConsoleBase::ConsoleBase()
{
}

ConsoleBase::~ConsoleBase()
{
}

ConsoleBase *Console::c(0);

Console::Console()
{
}

Console::~Console()
{
}

/** Write the passed debug message to the console */
void Console::debug(const QString &message)
{
if (c)
c->debug(message);
}

/** Write the passed warning message to the console */
void Console::warning(const QString &message)
{
if (c)
c->warning(message);
}

/** Write the passed error message to the console */
void Console::error(const QString &message)
{
if (c)
c->error(message);
}

/** Write the passed info message to the console */
void Console::info(const QString &message)
{
if (c)
c->info(message);
}

/** Set the driver for the global console - this will delete
* any existing console - and will take ownership of the pointer!
*/
void Console::setConsole(ConsoleBase *console)
{
if (c)
delete c;

c = console;
}
Loading