Tool to compute decoding quantities.
Most functionality is available through a Python package which can be installed with:
pip install asmc-preparedecodingThis Python package is currently available on Linux and macOS, x86_64 and arm64.
Examples for using the Python package can be found in the following Jupyter notebook:
Please note that you must install Jupyter in order to view the notebook, and then open it:
pip install jupyter
jupyter-notebook notebooks/CreatingDecodingQuantities.ipynbGet the source, together with the vcpkg submodule:
git clone --recurse-submodules https://github.com/PalamaraLab/PrepareDecoding.git
cd PrepareDecodingThe recommended way to install dependencies is via the vcpkg submodule. If you have checked out this submodule, the dependencies will be automatically installed when you run the CMake configuration step (below).
Several additional system dependencies should be obtained from your package manager prior to the CMake configuration step:
-
Ubuntu/Debian:
sudo apt install cmake
-
CentOS/Fedora:
sudo yum install cmake
-
macOS:
brew install libomp pkg-config automake autoconf autoconf-archive libtool cmake
This project uses CMake.
Create a build directory:
mkdir build
cd buildConfigure, and build the PrepareDecoding library and executable:
cmake ..
cmake --build . --parallel 4 --target prepare_decoding_lib
cmake --build . --parallel 4 --target prepare_decoding_exeYou can optionally build the and run the unit tests:
cmake --build . --parallel 4 --target unit_tests
ctest --output-on-failureConfigure with coverage enabled, using g++ or clang++:
cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON
cmake --build . --parallel 2 --target unit_tests
ctest -j2 --output-on-failure
lcov --directory . --capture --output-file coverage.info
lcov --remove coverage.info '/usr/*' '*/vcpkg/*' '*/test/*' --output-file coverage.info
lcov --list coverage.infoThis project is configured to work with clang tidy and cppcheck.
Enable the relevant option and compile with clang++.
For clang tidy:
cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CLANG_TIDY=ON
cmake --build . --parallel 2 --target prepare_decoding_lib prepare_decoding_exeFor cppcheck:
cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CPPCHECK=ON
cmake --build . --parallel 2 --target prepare_decoding_lib prepare_decoding_exeThis project is configured to work with various LLVM sanitisers.
Enable the relevant option, compile with clang++, and run the unit tests.
cmake .. -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_SANITISER_{{{SANITISER}}}=ON
cmake --build . --parallel 2 --target unit_tests
./test/unit_testswhere {{{SANITISER}}} is one of:
- Bump the version number in pyproject.toml, CMakeLists.txt, and vcpkg.json
- Update RELEASE_NOTES.md
- Ensure supported python versions are up-to-date in pyproject.toml
- Push changes and check that all GitHub workflows pass
- Tag the commit in Git using syntax
vX.Y.Z - Make a release on GitHub, which should trigger a new build that will upload Python wheels to PyPI
This project is currently released under the GNU General Public License Version 3.