MLnanoshaper is an experimental sofware designed to compute proteins surface like the Nanoshaper program but with less computations using Machine Learning.
Instead of having a probe (a virtual water molecule) that rolls over the surface, like in Nanoshaper, we will have a machine learning algorithme will generate a scalar "energy" field from the atoms. We will then define the surface as an implicit surface ie
- install julia
julia --project MLNanoShaperRunner/build/build.jl
- clone this repository:
git clone https://github.com/concept-lab/MLNanoShaper.jl
- clone the submodule
cd MLNanoShaper.jl
git submodule init
git submodule update
- download dependency:
julia -e 'using Pkg; Pkg.activate(".");Pkg.instantiate()'
mkdir ~/datasets
mkdir ~/datasets/models
mkdir ~/datasets/logs
mkdir ~/datasets/pqr
curl https://zenodo.org/records/14886938/files/shrec.tar.gz --output ~/datasets/shrec.tar.gz
tar -xzf ~/datasets/shrec.tar.gz -C ~/datasets/pqr
install parallel and run commands
julia --project ./build/build.jl install
./scripts/training.bash
By default, logs and weights should be stored in ~/datasets/logs/ and ~/datasets/models
The ./scripts/ folder contains some Pluto Notebooks. Theses are for creating figures and for debugging. To execute these notebooks, you should install pluto and launch server with
julia -e "using Pluto; Pluto.run()"
Each notebooks will use the environement in scripts.
We have an example of code in MLNanoShaperRunner/example. Here is the commands to compile the example.
julia --project MLNanoShaperRunner/build/build.jl
clang MLNanoShaperRunner/examples/dummy_example.c \
-I MLNanoShaperRunner/build/lib/include \
-L MLNanoShaperRunner/build/lib/lib/ \
-l MLNanoShaperRunner \
-o MLNanoShaperRunner/examples/test
in the `MLNanoShaperRunner/examples/`` directory
LD_LIBRARY_PATH=$(pwd)/../build/lib/lib ./test
weights are on the https://zenodo.org/records/16601766