diff --git a/MX/alphafold/README.md b/MX/alphafold/README.md new file mode 100644 index 0000000..5a4d8be --- /dev/null +++ b/MX/alphafold/README.md @@ -0,0 +1,60 @@ +# Alphafold + +Alphafold contains two parts: +1. A conda environment containing dependencies +2. The alphafold module itself, containing the current code and submission scripts. + +## Conda Environment + +Alphafold was installed based on Dima's instructions on ra +(`/das/work/common/opt/alphafold/2021-07/INSTALL`). + +On pmod6 as an admin user: + +``` +conda create --name alphafold python==3.8 +conda update -n base conda + +source miniconda3/etc/profile.d/conda.sh +conda activate alphafold + +conda install -y -c conda-forge openmm==7.5.1 cudnn==8.2.1.32 cudatoolkit==11.0.3 pdbfixer==1.7 +conda install -y -c bioconda hmmer==3.3.2 hhsuite==3.3.0 kalign2==2.04 + +pip install absl-py==0.13.0 biopython==1.79 chex==0.0.7 dm-haiku==0.0.4 \ + dm-tree==0.1.6 immutabledict==2.0.0 jax==0.2.14 ml-collections==0.1.0 \ + numpy==1.19.5 scipy==1.7.0 tensorflow==2.5.0 +pip install --upgrade jax jaxlib==0.1.69+cuda111 \ + -f https://storage.googleapis.com/jax-releases/jax_releases.html +``` + +If this needs to be updated in the future we may need to have versioned conda envs. + +## Alphafold module + +Add version to files/variants. The version number should match a github tag +(e.g. `v2.0.1`) or else have the commit hash as `$V_RELEASE`. + +As admin user: +``` +cd MX/alphafold +./build +``` + +## Testing + +Here's an example sequence: + +``` +mkdir example +cd example +cat > query.fasta <dummy_sequence +GWSTELEKHREELKEFLKKEGITNVEIRIDNGRLEVRVEGGTERLKRFLEELRQKLEKKGYTVDIKIE +EOF + +module use MX unstable +module load alphafold/2.0.1 +sbatch $ALPHAFOLD_DIR/bin/submit_merlin.sh query.fasta +``` + diff --git a/MX/alphafold/bin/submit.sh b/MX/alphafold/bin/submit.sh index de5e3c5..9912bb9 100755 --- a/MX/alphafold/bin/submit.sh +++ b/MX/alphafold/bin/submit.sh @@ -49,7 +49,7 @@ hostname >> "$LOG" set +u # Allow unset variables in activate commands module purge module use MX unstable -module load anaconda/2019.07 cuda/11.0.3 alphafold/2.0.0-b88f8da 2>> "$LOG" +module load alphafold/ALPHAFOLD_VERSION 2>> "$LOG" conda activate "${ALPHAFOLD_ENV:?"Error: ALPHAFOLD_ENV not set. Try 'module use MX unstable; module load alphafold'"}" set -u diff --git a/MX/alphafold/bin/submit_merlin.sh b/MX/alphafold/bin/submit_merlin.sh index 2df1348..15cf40c 100755 --- a/MX/alphafold/bin/submit_merlin.sh +++ b/MX/alphafold/bin/submit_merlin.sh @@ -18,6 +18,6 @@ export ALPHAFOLD_DATA=/data/project/bio/shared/alphafold module purge module use MX unstable -module load anaconda/2019.07 cuda/11.0.3 alphafold/2.0.0-b88f8da +module load alphafold/ALPHAFOLD_VERSION exec "${ALPHAFOLD_DIR:?Error loading module}/bin/submit.sh" "$@" diff --git a/MX/alphafold/bin/submit_ra.sh b/MX/alphafold/bin/submit_ra.sh index 3b8bb22..1ef0c2f 100755 --- a/MX/alphafold/bin/submit_ra.sh +++ b/MX/alphafold/bin/submit_ra.sh @@ -24,7 +24,7 @@ module --version module purge module use MX unstable Programming -module load anaconda/2019.07 cuda/11.0.3 alphafold/2.0.0-b88f8da +module load alphafold/ALPHAFOLD_VERSION module list exec "${ALPHAFOLD_DIR:?Error loading module}/bin/submit.sh" "$@" diff --git a/MX/alphafold/build b/MX/alphafold/build index ffd9f4b..80565fe 100755 --- a/MX/alphafold/build +++ b/MX/alphafold/build @@ -29,9 +29,14 @@ pbuild::install() { git clone --depth=1 -b "$BRANCH" https://github.com/deepmind/alphafold.git "$ALPHAFOLD_HOME" || return $? if ! [ -f "$ALPHAFOLD_HOME/alphafold/common/stereo_chemical_props.txt" ]; then wget -q -P "$ALPHAFOLD_HOME/alphafold/common/" \ + --no-check-certificate `# wget root certs are old` \ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt fi wget -O "$ALPHAFOLD_HOME/run_alphafold.sh" \ https://raw.githubusercontent.com/kalininalab/alphafold_non_docker/main/run_alphafold.sh chmod +x "$ALPHAFOLD_HOME/run_alphafold.sh" + + cp -r "$BUILDBLOCK_DIR/bin" "$PREFIX/" + sed -i "s/ALPHAFOLD_VERSION/$V/g" "$PREFIX/bin/"* } + diff --git a/MX/alphafold/files/variants b/MX/alphafold/files/variants index 37ff276..ddc8119 100644 --- a/MX/alphafold/files/variants +++ b/MX/alphafold/files/variants @@ -1 +1,2 @@ -alphafold/2.0.0-b88f8da anaconda/2019.07 b:gcc/10.3.0 cuda/11.0.3 +alphafold/2.0.0-b88f8da unstable anaconda/2019.07 b:gcc/10.3.0 cuda/11.0.3 +alphafold/2.0.1 unstable anaconda/2019.07 b:gcc/10.3.0 cuda/11.0.3 diff --git a/Programming/anaconda/2019.07/conda-env-defs/alphafold/README b/Programming/anaconda/2019.07/conda-env-defs/alphafold/README new file mode 100644 index 0000000..3067d29 --- /dev/null +++ b/Programming/anaconda/2019.07/conda-env-defs/alphafold/README @@ -0,0 +1,2 @@ +The alphafold environment is a complex mixture of conda and pip. See +MX/alphafold/README.md.