diff --git a/README.md b/README.md index 768e4dd..9cf3592 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb) on your local PC (or macOS) +## New Updates + +- 04Dec2021, LocalColabFold is now compatible with the latest [pip installable ColabFold](https://github.com/sokrypton/ColabFold#running-locally). In this repository, I will provide a script to install ColabFold with some external parameter files to perform relaxation with AMBER. The weight parameters of AlphaFold and AlphaFold-Multimer will be downloaded automatically at your first run. + ## Installation ### For Linux @@ -14,10 +18,9 @@ Built on Mon_Oct_12_20:09:46_PDT_2020 Cuda compilation tools, release 11.1, V11.1.105 Build cuda_11.1.TC455_06.29190527_0 DO NOT use `nvidia-smi` for checking the version.
See [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) if you haven't installed it. -1. Download `install_colabfold_linux.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_linux.sh
and run it in the directory where you want to install:
$ bash install_colabfold_linux.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. -1. Type `cd colabfold` to enter the directory. -1. Modify the variables such as `sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`, `jobname = "test"`, and etc. in `runner.py` for your prediction. For more information, please refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). -1. To run the prediction, type
$ colabfold-conda/bin/python3.7 runner.py
in the `colabfold` directory. The result files will be created in the `predition__` in the `colabfold` directory. After the prediction finished, you may move the results from the `colabfold` directory. +1. Download `install_colabbatch_linux.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabbatch_linux.sh
and run it in the directory where you want to install:
$ bash install_colabbatch_linux.sh
About 5 minutes later, `colabfold_batch` directory will be created. Do not move this directory after the installation. +1. Add environment variable PATH:
# bash
export PATH="/bin:\$PATH"
#i.e. export PATH="/home/moriwaki/Desktop/colabfold_batch/bin:\$PATH"
+2. To run the prediction, type
colabfold_batch --amber --templates --num-recycle 3 inputfile outputdir/ 
The result files will be created in the `outputdir`. For more details, see `colabfold_batch --help`. ### For macOS @@ -36,54 +39,16 @@ Please use the correct installer for your Mac. #### For Mac with Intel CPU 1. Install [Homebrew](https://brew.sh/index_ja) if not present:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-1. Install `wget` command using Homebrew:
$ brew install wget
-1. Download `install_colabfold_intelmac.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_intelmac.sh
and run it in the directory where you want to install:
$ bash install_colabfold_intelmac.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. +1. Install `wget` command using Homebrew:
$ brew install wget gnu-sed
\$ brew install brewsci/bio/hh-suite brewsci/bio/kalign
+1. Download `install_colabbatch_intelmac.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabbatch_intelmac.sh
and run it in the directory where you want to install:
$ bash install_colabbatch_intelmac.sh
About 5 minutes later, `colabfold_batch` directory will be created. Do not move this directory after the installation. 1. The rest procedure is the same as "For Linux". #### For Mac with Apple Silicon (M1 chip) -**Note: This installer is experimental because most of the dependent packages are not fully tested on Apple Silicon Mac.** - -1. Install [Homebrew](https://brew.sh/index_ja) if not present:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-1. Install `wget` and `cmake` commands using Homebrew:
$ brew install wget cmake
-1. Install `miniforge` command using Homebrew:
$ brew install --cask miniforge
-1. Download `install_colabfold_M1mac.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_M1mac.sh
and run it in the directory where you want to install:
$ bash install_colabfold_M1mac.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. -1. Type `cd colabfold` to enter the directory. -1. Modify the variables such as `sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`, `jobname = "test"`, and etc. in `runner.py` for your prediction. For more information, please refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). -1. To run the prediction, type
$ colabfold-conda/bin/python3.8 runner.py
in the `colabfold` directory. The result files will be created in the `predition__` in the `colabfold` directory. After the prediction finished, you may move the results from the `colabfold` directory. - -A Warning message appeared when you run the prediction: -``` -You are using an experimental build of OpenMM v7.5.1. -This is NOT SUITABLE for production! -It has not been properly tested on this platform and we cannot guarantee it provides accurate results. -``` - -This message is due to Apple Silicon, but I think we can ignore it. - -## Usage of `colabfold` shell script (Linux) - -An executable `colabfold` shell script is installed in `/path/to/colabfold/bin` directory. This is more helpful for installation on a shared computer and users who want to predict many sequences. - -1. Prepare a FASTA file containing the amino acid sequence for which you want to predict the structure (e.g. `6x9z.fasta`).
>6X9Z_1|Chain A|Transmembrane beta-barrels|synthetic construct (32630)
-MEQKPGTLMVYVVVGYNTDNTVDVVGGAQYAVSPYLFLDVGYGWNNSSLNFLEVGGGVSYKVSPDLEPYVKAGFEYNTDNTIKPTAGAGALYRVSPNLALMVEYGWNNSSLQKVAIGIAYKVKD
-2. Type `export PATH="/path/to/colabfold/bin:$PATH"` to add a path to the PATH environment variable. For example, `export PATH="/home/foo/bar/colabfold/bin:$PATH"` if you installed localcolabfold on `/home/foo/bar/colabfold`. -3. Run colabfold command with your FASTA file. For example,
$ colabfold --input 6x9z.fasta \\
-   --output_dir 6x9z \\
-   --max_recycle 18 \\
-   --use_ptm \\
-   --use_turbo \\
-   --num_relax Top5
This will predict a protein structure [6x9z](https://www.rcsb.org/structure/6x9z) with increasing the number of 'recycling' to 18. This may be effective for *de novo* structure prediction. For another example, [PDB: 3KUD](https://www.rcsb.org/structure/3KUD),
$ colabfold --input 3kud_complex.fasta \\
-   --output_dir 3kud \\
-   --homooligomer 1:1 \\
-   --use_ptm \\
-   --use_turbo \\
-   --max_recycle 3 \\
-   --num_relax Top5
where the input sequence `3kud_complex.fasta` is
>3KUD_complex
-   MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHQYREQIKRVKDSDDVPMVLVGNKCDLAARTVESRQAQDLARSYGIPYIETSAKTRQGVEDAFYTLVREIRQH:
-   PSKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARLDWNTDAASLIGEELQVDFL
This will predict a heterooligomer. For more information about the options, type `colabfold --help` or refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). +Currently not supported. ## Advantages of LocalColabFold + - **Structure inference and relaxation will be accelerated if your PC has Nvidia GPU and CUDA drivers.** - **No Time out (90 minutes and 12 hours)** - **No GPU limitations** @@ -100,16 +65,15 @@ MEQKPGTLMVYVVVGYNTDNTVDVVGGAQYAVSPYLFLDVGYGWNNSSLNFLEVGGGVSYKVSPDLEPYVKAGFEYNTDN - Yes, the sequence input is the same as ColabFold. See [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). - Is it possible to create MSA by jackhmmer? - **No, it is not currently supported**. -- I want to run the predictions step-by-step like Google Colab. - - You can use VSCode and Python plugin to do the same. See https://code.visualstudio.com/docs/python/jupyter-support-py. - I want to use multiple GPUs to perform the prediction. - - You need to set the environment variables `TF_FORCE_UNIFIED_MEMORY`,`XLA_PYTHON_CLIENT_MEM_FRACTION` before execution. See [this discussion](https://github.com/YoshitakaMo/localcolabfold/issues/7#issuecomment-923027641). -- I want to solve the `ResourceExhausted` error when trying to predict for a sequence with > 1000 residues. - - See the same discussion as above. + - **AlphaFold and ColabFold does not support multiple GPUs**. Only One GPU can model your protein. - I got an error message `CUDA_ERROR_ILLEGAL_ADDRESS: an illegal memory access was encountered`. - You may not have updated to CUDA 11.1 or later. Please check the version of Cuda compiler with `nvcc --version` command, not `nvidia-smi`. - Is this available on Windows 10? - You can run LocalColabFold on your Windows 10 with [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10). +- I want to use a custom MSA file in the format of a3m. + - **ColabFold can accept various input files now**. See the help messsage. You can set your own A3M file, a fasta file that contains multiple sequences (in FASTA format), or a directory that contains multiple fasta files. + ## Tutorials & Presentations @@ -121,7 +85,16 @@ MEQKPGTLMVYVVVGYNTDNTVDVVGGAQYAVSPYLFLDVGYGWNNSSLNFLEVGGGVSYKVSPDLEPYVKAGFEYNTDN ## How do I reference this work? -- Mirdita M, Schuetze K, Moriwaki Y, Heo L, Ovchinnikov S and Steinegger M. ColabFold - Making protein folding accessible to all. *bioRxiv*, doi: [10.1101/2021.08.15.456425](https://www.biorxiv.org/content/10.1101/2021.08.15.456425v2) (2021) -- John Jumper, Richard Evans, Alexander Pritzel, et al. - Highly accurate protein structure prediction with AlphaFold. *Nature*, 1–11, doi: [10.1038/s41586-021-03819-2](https://www.nature.com/articles/s41586-021-03819-2) (2021) +- Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S and Steinegger M. ColabFold - Making protein folding accessible to all.
+ bioRxiv (2021) doi: [10.1101/2021.08.15.456425](https://www.biorxiv.org/content/10.1101/2021.08.15.456425v2) +- If you’re using **AlphaFold**, please also cite:
+ Jumper et al. "Highly accurate protein structure prediction with AlphaFold."
+ Nature (2021) doi: [10.1038/s41586-021-03819-2](https://doi.org/10.1038/s41586-021-03819-2) +- If you’re using **AlphaFold-multimer**, please also cite:
+ Evans et al. "Protein complex prediction with AlphaFold-Multimer."
+ biorxiv (2021) doi: [10.1101/2021.10.04.463034v1](https://www.biorxiv.org/content/10.1101/2021.10.04.463034v1) +- If you are using **RoseTTAFold**, please also cite:
+ Minkyung et al. "Accurate prediction of protein structures and interactions using a three-track neural network."
+ Science (2021) doi: [10.1126/science.abj8754](https://doi.org/10.1126/science.abj8754) [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.5123296.svg)](https://doi.org/10.5281/zenodo.5123296) diff --git a/install_colabbatch_intelmac.sh b/install_colabbatch_intelmac.sh new file mode 100755 index 0000000..35cc642 --- /dev/null +++ b/install_colabbatch_intelmac.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# check commands +type wget || { echo "wget command is not installed. Please install it at first using Homebrew." ; exit 1 ; } +type gsed || { echo "gnu-sed command is not installed. Please install it at first using Homebrew." ; exit 1 ; } +type hhsearch || { echo "hhsearch command is not installed. Please install it at first using Homebrew." ; exit 1 ; } +type kalign || { echo "kalign command is not installed. Please install it at first using Homebrew." ; exit 1 ; } + +# check whether Apple Silicon (M1 mac) or Intel Mac +arch_name="$(uname -m)" + +if [ "${arch_name}" = "x86_64" ]; then + if [ "$(sysctl -in sysctl.proc_translated)" = "1" ]; then + echo "Running on Rosetta 2" + else + echo "Running on native Intel" + fi +elif [ "${arch_name}" = "arm64" ]; then + echo "Running on Apple Silicon (M1 mac)" + echo "This installer is only for intel Mac. Use install_colabfold_M1mac.sh to install on this Mac." + exit 1 +else + echo "Unknown architecture: ${arch_name}" + exit 1 +fi + +CURRENTPATH=`pwd` +COLABFOLDDIR="${CURRENTPATH}/colabfold_batch" + +mkdir -p ${COLABFOLDDIR} +cd ${COLABFOLDDIR} +wget https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt --no-check-certificate +wget -q -P . https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh +bash ./Miniconda3-latest-MacOSX-x86_64.sh -b -p ${COLABFOLDDIR}/conda +rm Miniconda3-latest-MacOSX-x86_64.sh +. "${COLABFOLDDIR}/conda/etc/profile.d/conda.sh" +export PATH="${COLABFOLDDIR}/conda/condabin:${PATH}" +conda create -p $COLABFOLDDIR/colabfold-conda python=3.7 -y +conda activate $COLABFOLDDIR/colabfold-conda +conda update -n base conda -y +conda install -c conda-forge python=3.7 openmm==7.5.1 pdbfixer -y +# patch to openmm +wget -qnc https://raw.githubusercontent.com/deepmind/alphafold/main/docker/openmm.patch --no-check-certificate +(cd ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages; patch -s -p0 < ${COLABFOLDDIR}/openmm.patch) +rm openmm.patch +# install ColabFold and Jaxlib +colabfold-conda/bin/python3.7 -m pip install "colabfold[alphafold] @ git+https://github.com/sokrypton/ColabFold" +colabfold-conda/bin/python3.7 -m pip install https://storage.googleapis.com/jax-releases/mac/jaxlib-0.1.74-cp37-none-macosx_10_9_x86_64.whl + +# bin directory to run +mkdir -p $COLABFOLDDIR/bin +cd $COLABFOLDDIR/bin +cat << EOF > colabfold_batch +#!/bin/sh +$COLABFOLDDIR/colabfold-conda/bin/colabfold_batch --cpu \$@ +EOF +chmod +x colabfold_batch + +# hack to share the parameter files in a workstation. +gsed -i -e "s#props_path = \"stereo_chemical_props.txt\"#props_path = \"${COLABFOLDDIR}/stereo_chemical_props.txt\"#" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/batch.py +gsed -i -e "s#kalign_binary_path=\"kalign\"#kalign_binary_path=\"/usr/local/bin/kalign\"#g" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/batch.py +gsed -i -e "s#binary_path=\"hhsearch\"#binary_path=\"/usr/local/bin/hhsearch\"#g" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/batch.py +gsed -i -e "s#Path(appdirs.user_cache_dir(__package__ or \"colabfold\"))#${COLABFOLDDIR}#g" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/download.py + +echo "Installation of colabFold_batch finished." +echo "Note: AlphaFold2 weight parameters will be donwloaded at ${COLABFOLDDIR}/params directory in the first run." +echo "Please set your PATH to ${COLABFOLDDIR}/bin to run 'colabfold_batch'." +echo "i.e. For Bash, export PATH=\"${COLABFOLDDIR}/bin:\$PATH\"" +echo "For more details, please type 'colabfold_batch --help'." \ No newline at end of file diff --git a/install_colabbatch_linux.sh b/install_colabbatch_linux.sh new file mode 100755 index 0000000..baa1a12 --- /dev/null +++ b/install_colabbatch_linux.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +type wget || { echo "wget command is not installed. Please install it at first using apt or yum." ; exit 1 ; } +type curl || { echo "curl command is not installed. Please install it at first using apt or yum. " ; exit 1 ; } + +CURRENTPATH=`pwd` +COLABFOLDDIR="${CURRENTPATH}/colabfold_batch" + +mkdir -p ${COLABFOLDDIR} +cd ${COLABFOLDDIR} +wget https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt --no-check-certificate +wget -q -P . https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh +bash ./Miniconda3-latest-Linux-x86_64.sh -b -p ${COLABFOLDDIR}/conda +rm Miniconda3-latest-Linux-x86_64.sh +. "${COLABFOLDDIR}/conda/etc/profile.d/conda.sh" +export PATH="${COLABFOLDDIR}/conda/condabin:${PATH}" +conda create -p $COLABFOLDDIR/colabfold-conda python=3.7 -y +conda activate $COLABFOLDDIR/colabfold-conda +conda update -n base conda -y +conda install -c conda-forge python=3.7 cudnn==8.2.1.32 cudatoolkit==11.1.1 openmm==7.5.1 pdbfixer -y +# patch to openmm +wget -qnc https://raw.githubusercontent.com/deepmind/alphafold/main/docker/openmm.patch --no-check-certificate +(cd ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages; patch -s -p0 < ${COLABFOLDDIR}/openmm.patch) +rm openmm.patch +# install alignment tools +conda install -c conda-forge -c bioconda kalign3=3.2.2 hhsuite=3.3.0 -y +# install ColabFold and Jaxlib +colabfold-conda/bin/python3.7 -m pip install "colabfold[alphafold] @ git+https://github.com/sokrypton/ColabFold" +colabfold-conda/bin/python3.7 -m pip install https://storage.googleapis.com/jax-releases/cuda111/jaxlib-0.1.72+cuda111-cp37-none-manylinux2010_x86_64.whl + +# bin directory to run +mkdir -p $COLABFOLDDIR/bin +cd $COLABFOLDDIR/bin +cat << EOF > colabfold_batch +#!/bin/sh +export TF_FORCE_UNIFIED_MEMORY="1" +export XLA_PYTHON_CLIENT_MEM_FRACTION="4.0" +$COLABFOLDDIR/colabfold-conda/bin/colabfold_batch \$@ +EOF +chmod +x colabfold_batch + +# hack to share the parameter files in a workstation. +cd ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold +sed -i -e "s#props_path = \"stereo_chemical_props.txt\"#props_path = \"${COLABFOLDDIR}/stereo_chemical_props.txt\"#" batch.py +sed -i -e "s#kalign_binary_path=\"kalign\"#kalign_binary_path=\"${COLABFOLDDIR}/colabfold-conda/bin/kalign\"#g" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/batch.py +sed -i -e "s#binary_path=\"hhsearch\"#binary_path=\"${COLABFOLDDIR}/colabfold-conda/bin/hhsearch\"#g" ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/colabfold/batch.py +sed -i -e "s#Path(appdirs.user_cache_dir(__package__ or \"colabfold\"))#\"${COLABFOLDDIR}\"#g" download.py +cd ${COLABFOLDDIR}/colabfold-conda/lib/python3.7/site-packages/alphafold/relax +sed -i -e 's/CPU/CUDA/g' amber_minimize.py + +echo "Installation of colabFold_batch finished." +echo "Note: AlphaFold2 weight parameters will be donwloaded at ${COLABFOLDDIR}/params directory in the first run." +echo "Please set your PATH to ${COLABFOLDDIR}/bin to run 'colabfold_batch'." +echo "i.e. For Bash, export PATH=\"${COLABFOLDDIR}/bin:\$PATH\"" +echo "For more details, please type 'colabfold_batch --help'." \ No newline at end of file diff --git a/v1.0.0/README.md b/v1.0.0/README.md new file mode 100644 index 0000000..768e4dd --- /dev/null +++ b/v1.0.0/README.md @@ -0,0 +1,127 @@ +# LocalColabFold + +[ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb) on your local PC (or macOS) + +## Installation + +### For Linux + +1. Make sure `curl`, `git`, and `wget` commands are already installed on your PC. If not present, you need install them at first. For Ubuntu, type `sudo apt -y install curl git wget`. +2. Make sure your Cuda compiler driver is **11.1 or later**:
$ nvcc --version
+nvcc: NVIDIA (R) Cuda compiler driver
+Copyright (c) 2005-2020 NVIDIA Corporation
+Built on Mon_Oct_12_20:09:46_PDT_2020
+Cuda compilation tools, release 11.1, V11.1.105
+Build cuda_11.1.TC455_06.29190527_0
+
DO NOT use `nvidia-smi` for checking the version.
See [NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) if you haven't installed it. +1. Download `install_colabfold_linux.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_linux.sh
and run it in the directory where you want to install:
$ bash install_colabfold_linux.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. +1. Type `cd colabfold` to enter the directory. +1. Modify the variables such as `sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`, `jobname = "test"`, and etc. in `runner.py` for your prediction. For more information, please refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). +1. To run the prediction, type
$ colabfold-conda/bin/python3.7 runner.py
in the `colabfold` directory. The result files will be created in the `predition__` in the `colabfold` directory. After the prediction finished, you may move the results from the `colabfold` directory. + +### For macOS + +**Caution: Due to the lack of Nvidia GPU/CUDA driver, the structure prediction on macOS are 5-10 times slower than on Linux+GPU**. For the test sequence (58 a.a.), it may take 30 minutes. However, it may be useful to play with it before preparing Linux+GPU environment. + +You can check whether your Mac is Intel or Apple Silicon by typing `uname -m` on Terminal. + +```bash +$ uname -m +x86_64 # Intel +arm64 # Apple Silicon +``` + +Please use the correct installer for your Mac. + +#### For Mac with Intel CPU + +1. Install [Homebrew](https://brew.sh/index_ja) if not present:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+1. Install `wget` command using Homebrew:
$ brew install wget
+1. Download `install_colabfold_intelmac.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_intelmac.sh
and run it in the directory where you want to install:
$ bash install_colabfold_intelmac.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. +1. The rest procedure is the same as "For Linux". + +#### For Mac with Apple Silicon (M1 chip) + +**Note: This installer is experimental because most of the dependent packages are not fully tested on Apple Silicon Mac.** + +1. Install [Homebrew](https://brew.sh/index_ja) if not present:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+1. Install `wget` and `cmake` commands using Homebrew:
$ brew install wget cmake
+1. Install `miniforge` command using Homebrew:
$ brew install --cask miniforge
+1. Download `install_colabfold_M1mac.sh` from this repository:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_M1mac.sh
and run it in the directory where you want to install:
$ bash install_colabfold_M1mac.sh
About 5 minutes later, `colabfold` directory will be created. Do not move this directory after the installation. +1. Type `cd colabfold` to enter the directory. +1. Modify the variables such as `sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`, `jobname = "test"`, and etc. in `runner.py` for your prediction. For more information, please refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). +1. To run the prediction, type
$ colabfold-conda/bin/python3.8 runner.py
in the `colabfold` directory. The result files will be created in the `predition__` in the `colabfold` directory. After the prediction finished, you may move the results from the `colabfold` directory. + +A Warning message appeared when you run the prediction: +``` +You are using an experimental build of OpenMM v7.5.1. +This is NOT SUITABLE for production! +It has not been properly tested on this platform and we cannot guarantee it provides accurate results. +``` + +This message is due to Apple Silicon, but I think we can ignore it. + +## Usage of `colabfold` shell script (Linux) + +An executable `colabfold` shell script is installed in `/path/to/colabfold/bin` directory. This is more helpful for installation on a shared computer and users who want to predict many sequences. + +1. Prepare a FASTA file containing the amino acid sequence for which you want to predict the structure (e.g. `6x9z.fasta`).
>6X9Z_1|Chain A|Transmembrane beta-barrels|synthetic construct (32630)
+MEQKPGTLMVYVVVGYNTDNTVDVVGGAQYAVSPYLFLDVGYGWNNSSLNFLEVGGGVSYKVSPDLEPYVKAGFEYNTDNTIKPTAGAGALYRVSPNLALMVEYGWNNSSLQKVAIGIAYKVKD
+2. Type `export PATH="/path/to/colabfold/bin:$PATH"` to add a path to the PATH environment variable. For example, `export PATH="/home/foo/bar/colabfold/bin:$PATH"` if you installed localcolabfold on `/home/foo/bar/colabfold`. +3. Run colabfold command with your FASTA file. For example,
$ colabfold --input 6x9z.fasta \\
+   --output_dir 6x9z \\
+   --max_recycle 18 \\
+   --use_ptm \\
+   --use_turbo \\
+   --num_relax Top5
This will predict a protein structure [6x9z](https://www.rcsb.org/structure/6x9z) with increasing the number of 'recycling' to 18. This may be effective for *de novo* structure prediction. For another example, [PDB: 3KUD](https://www.rcsb.org/structure/3KUD),
$ colabfold --input 3kud_complex.fasta \\
+   --output_dir 3kud \\
+   --homooligomer 1:1 \\
+   --use_ptm \\
+   --use_turbo \\
+   --max_recycle 3 \\
+   --num_relax Top5
where the input sequence `3kud_complex.fasta` is
>3KUD_complex
+   MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHQYREQIKRVKDSDDVPMVLVGNKCDLAARTVESRQAQDLARSYGIPYIETSAKTRQGVEDAFYTLVREIRQH:
+   PSKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARLDWNTDAASLIGEELQVDFL
This will predict a heterooligomer. For more information about the options, type `colabfold --help` or refer to the original [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). + +## Advantages of LocalColabFold +- **Structure inference and relaxation will be accelerated if your PC has Nvidia GPU and CUDA drivers.** +- **No Time out (90 minutes and 12 hours)** +- **No GPU limitations** +- **NOT necessary to prepare the large database required for native AlphaFold2**. + +## FAQ +- What else do I need to do before installation? Do I need sudo privileges? + - No, except for installation of `curl` and `wget` commands. +- Do I need to prepare the large database such as PDB70, BFD, Uniclust30, MGnify...? + - **No. it is not necessary.** Generation of MSA is performed by the MMseqs2 web server, just as implemented in ColabFold. +- Are the pLDDT score and PAE figures available? + - Yes, they will be generated just like the ColabFold. +- Is it possible to predict homooligomers and complexes? + - Yes, the sequence input is the same as ColabFold. See [ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb). +- Is it possible to create MSA by jackhmmer? + - **No, it is not currently supported**. +- I want to run the predictions step-by-step like Google Colab. + - You can use VSCode and Python plugin to do the same. See https://code.visualstudio.com/docs/python/jupyter-support-py. +- I want to use multiple GPUs to perform the prediction. + - You need to set the environment variables `TF_FORCE_UNIFIED_MEMORY`,`XLA_PYTHON_CLIENT_MEM_FRACTION` before execution. See [this discussion](https://github.com/YoshitakaMo/localcolabfold/issues/7#issuecomment-923027641). +- I want to solve the `ResourceExhausted` error when trying to predict for a sequence with > 1000 residues. + - See the same discussion as above. +- I got an error message `CUDA_ERROR_ILLEGAL_ADDRESS: an illegal memory access was encountered`. + - You may not have updated to CUDA 11.1 or later. Please check the version of Cuda compiler with `nvcc --version` command, not `nvidia-smi`. +- Is this available on Windows 10? + - You can run LocalColabFold on your Windows 10 with [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10). + +## Tutorials & Presentations + +- ColabFold Tutorial presented at the Boston Protein Design and Modeling Club. [[video]](https://www.youtube.com/watch?v=Rfw7thgGTwI) [[slides]](https://docs.google.com/presentation/d/1mnffk23ev2QMDzGZ5w1skXEadTe54l8-Uei6ACce8eI). + +## Acknowledgments + +- The original colabfold was first created by Sergey Ovchinnikov ([@sokrypton](https://twitter.com/sokrypton)), Milot Mirdita ([@milot_mirdita](https://twitter.com/milot_mirdita)) and Martin Steinegger ([@thesteinegger](https://twitter.com/thesteinegger)). + +## How do I reference this work? + +- Mirdita M, Schuetze K, Moriwaki Y, Heo L, Ovchinnikov S and Steinegger M. ColabFold - Making protein folding accessible to all. *bioRxiv*, doi: [10.1101/2021.08.15.456425](https://www.biorxiv.org/content/10.1101/2021.08.15.456425v2) (2021) +- John Jumper, Richard Evans, Alexander Pritzel, et al. - Highly accurate protein structure prediction with AlphaFold. *Nature*, 1–11, doi: [10.1038/s41586-021-03819-2](https://www.nature.com/articles/s41586-021-03819-2) (2021) + +[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.5123296.svg)](https://doi.org/10.5281/zenodo.5123296) diff --git a/v1.0.0/README_ja.md b/v1.0.0/README_ja.md new file mode 100644 index 0000000..ae5b3e8 --- /dev/null +++ b/v1.0.0/README_ja.md @@ -0,0 +1,134 @@ +# LocalColabFold + +個人用パソコンのCPUとGPUで動かす[ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb)。 + +## インストール方法 + +### Linux+GPUの場合 + +1. ターミナル上で`curl`, `git`と`wget`コマンドがすでにインストールされていることを確認します。存在しない場合は先にこれらをインストールしてください。Ubuntuの場合はtype `sudo apt -y install curl git wget`でインストールできます。 +2. **Cuda compilerのバージョンが11.1以降であることを確認します。**
$ nvcc --version
+nvcc: NVIDIA (R) Cuda compiler driver
+Copyright (c) 2005-2020 NVIDIA Corporation
+Built on Mon_Oct_12_20:09:46_PDT_2020
+Cuda compilation tools, release 11.1, V11.1.105
+Build cuda_11.1.TC455_06.29190527_0
+
バージョンチェックの時に`nvidia-smi`コマンドを使わないでください。こちらでは不正確です。
まだCUDA Compilerをインストールしていない場合は、[NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)を参照してください。 +3. このリポジトリにある`install_colabfold_linux.sh`をダウンロードします。
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_linux.sh
これをインストールしたいディレクトリの上に置いた後、以下のコマンドを入力します:
$ bash install_colabfold_linux.sh
およそ5分後に`colabfold`ディレクトリができます。インストール後はこのディレクトリを移動させないでください。 +4. `cd colabfold`を入力してこのディレクトリに入ります。 +5. `runner.py`ファイル中の`sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`や`jobname = "test"`などのパラメータを変更し、構造予測のために必要な情報を入力します。詳細な設定方法についてはオリジナルの[ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb)を参考にしてください。こちらで可能な設定はほとんど利用可能です(MSA_methods以外)。 +6. 予測を行うには、`colabfold`ディレクトリ内で以下のコマンドをターミナルで入力してください:
$ colabfold-conda/bin/python3.7 runner.py
予測結果のファイルは`predition__`という形式で`colabfold`内に作成されます。予測が終了した後は、結果ファイルを`colabfold`ディレクトリの外に移動させたり結果ファイルのディレクトリの名前を変えてもOKです。 + +### macOSの場合 + +**注意: macOSではNvidia GPUとCUDAドライバがないため、構造推論部分がLinux+GPU環境に比べて5〜10倍ほど遅くなります**。テスト用のアミノ酸配列(58アミノ酸)ではおよそ30分ほど計算に時間がかかります。ただ、Linux+GPU環境を準備する前にこれで遊んでみるのはありかもしれません。 + +また、自身の持っているMacがIntel CPUのものか、M1 chip入りのもの(Apple Silicon)かを先に確認してください。ターミナルで`uname -m`の結果でどちらかが判明します。 + +```bash +$ uname -m +x86_64 # Intel +arm64 # Apple Silicon +``` + +(Apple SiliconでRosetta2を使っている場合はApple Siliconでもx86_64って表示されますけれど……今のところこれには対応していません。) + +以上の結果を踏まえて適切なインストーラーを選択してください。 + +#### Intel CPUのMacの場合 + +1. [Homebrew](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)をインストールします:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+2. Homebrewで`wget`コマンドをインストールします:
$ brew install wget
+3. `install_colabfold_intelmac.sh`をこのリポジトリからダウンロードします:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_intelmac.sh
これをインストールしたいディレクトリの上に置いた後、以下のコマンドを入力します:
$ bash install_colabfold_intelmac.sh
およそ5分後に`colabfold`ディレクトリができます。インストール後はこのディレクトリを移動させないでください。 +4. 残りの手順は"Linux+GPUの場合"と同様です. + +#### Apple Silicon (M1 chip)のMacの場合 + +**Note: 依存するPythonパッケージのほとんどがまだApple Silicon Macで十分にテストされていないため、このインストーラーによる動作は試験的なものです。** + +1. [Homebrew](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)をインストールします:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+1. Homebrweで`wget`と`cmake`コマンドをインストールします:
$ brew install wget cmake
+1. `miniforge`をHomebrewでインストールします:
$ brew install --cask miniforge
+1. インストーラー`install_colabfold_M1mac.sh`をこのリポジトリからダウンロードします:
$ wget https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabfold_M1mac.sh
これをインストールしたいディレクトリの上に置いた後、以下のコマンドを入力します:
$ bash install_colabfold_M1mac.sh
およそ5分後に`colabfold`ディレクトリができます。途中色々WarningsやErrorが出るかもしれません。インストール後はこのディレクトリを移動させないでください。 +1. `cd colabfold`を入力してこのディレクトリに入ります。 +1. `runner.py`ファイル中の`sequence = 'PIAQIHILEGRSDEQKETLIREVSEAISRSLDAPLTSVRVIITEMAKGHFGIGGELASK'`や`jobname = "test"`などのパラメータを変更し、構造予測のために必要な情報を入力します。詳細な設定方法についてはオリジナルの[ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb)を参考にしてください。こちらで可能な設定はほとんど利用可能です(MSA_methods以外)。 +1. 予測を行うには、`colabfold`ディレクトリ内で以下のコマンドをターミナルで入力してください:
$ colabfold-conda/bin/python3.8 runner.py
予測結果のファイルは`predition__`という形式で`colabfold`内に作成されます。予測が終了した後は、結果ファイルを`colabfold`ディレクトリの外に移動させたり結果ファイルのディレクトリの名前を変えてもOKです。 + +予測を行っているときに以下のようなメッセージが現れます: + +``` +You are using an experimental build of OpenMM v7.5.1. +This is NOT SUITABLE for production! +It has not been properly tested on this platform and we cannot guarantee it provides accurate results. +``` + +このメッセージはApple Silicon上で動作させる時のみ現れますが、たぶん無視して大丈夫です。 + +## `colabfold`コマンドの使い方(Linux向け) + +`colabfold`は`runner.py`の代わりにコマンドライン引数を取ることのできる実行可能シェルスクリプトです。こちらは共用計算機上に一度インストールするだけで済み、複数のユーザーがlocalcolabfoldを使ってより多くの配列を予測したい場合に有用です。 + +1. 予測したいアミノ酸配列が含まれるFASTA形式のファイルを同ディレクトリに用意します。例として`6x9z.fasta`とします。
>6X9Z_1|Chain A|Transmembrane beta-barrels|synthetic construct (32630)
+MEQKPGTLMVYVVVGYNTDNTVDVVGGAQYAVSPYLFLDVGYGWNNSSLNFLEVGGGVSYKVSPDLEPYVKAGFEYNTDNTIKPTAGAGALYRVSPNLALMVEYGWNNSSLQKVAIGIAYKVKD
+1. `export PATH="/path/to/colabfold/bin:$PATH"`と打つことで環境変数PATHにこのcolabfoldシェルスクリプトのファイルパスを設定します。例えばLocalColabFoldを`/home/foo/bar/colabfold`にインストールした場合は、`export PATH="/home/foo/bar/colabfold/bin:$PATH"`と入力します。 +1. 入力のアミノ酸配列ファイルを`--input`の引数に指定し、`colabfold`コマンドを実行します。例えばこんな感じ
$ colabfold --input 6x9z.fasta \\
+   --output_dir 6x9z \\
+   --max_recycle 18 \\
+   --use_ptm \\
+   --use_turbo \\
+   --num_relax Top5
上記コマンドは*de novo*タンパク質構造[PDB: 6X9Z](https://www.rcsb.org/structure/6x9z)を予想するときに、'recycling'回数を最大18回まで引き上げています。この回数の引き上げは*de novo*タンパク質構造を予測する時には効果的であることが示されています(通常のタンパク質は3回で十分なことがほとんどです)。
他の入力例として, [PDB: 3KUD](https://www.rcsb.org/structure/3KUD)の**複合体予測**を行おうとするときは
$ colabfold --input 3kud_complex.fasta \\
+   --output_dir 3kud \\
+   --homooligomer 1:1 \\
+   --use_ptm \\
+   --use_turbo \\
+   --max_recycle 3 \\
+   --num_relax Top5
ここで入力配列`3kud_complex.fasta`は以下の通りです。
>3KUD_complex
+   MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHQYREQIKRVKDSDDVPMVLVGNKCDLAARTVESRQAQDLARSYGIPYIETSAKTRQGVEDAFYTLVREIRQH:
+   PSKTSNTIRVFLPNKQRTVVNVRNGMSLHDCLMKALKVRGLQPECCAVFRLLHEHKGKKARLDWNTDAASLIGEELQVDFL
+   
`:`記号でアミノ酸配列を隔てることで複合体予測をすることができます。この場合はヘテロ複合体予測になっています。ホモオリゴマー予測を行いたいときなど、他の設定については`colabfold --help`で設定方法を読むか、オリジナルの[ColabFold / AlphaFold2_advanced](https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/beta/AlphaFold2_advanced.ipynb)にある説明を読んでください。 + +## LocalColabFoldを利用するメリット + +- **お使いのパソコンにNvidia GPUとCUDAドライバがあれば、AlphaFold2による構造推論(Structure inference)と構造最適化(relax)が高速になります。** +- **Google Colabは90分アイドルにしていたり、12時間以上の利用でタイムアウトしますが、その制限がありません。また、GPUの使用についても当然制限がありません。** +- **データベースをダウンロードしてくる必要がないです**。 + +## FAQ +- インストールの事前準備は? + - `curl`, `wget`コマンド以外は不要です +- BFD, Mgnify, PDB70, Uniclust30などの巨大なデータベースを用意する必要はありますか? + - **必要ないです**。 +- AlphaFold2の最初の動作に必要なMSA作成はどのように行っていますか? + - MSA作成はColabFoldと同様にMMseqs2のウェブサーバーによって行われています。 +- ColabFoldで表示されるようなpLDDTスコアやPAEの図も生成されますか? + - はい、生成されます。 +- ホモ多量体予測、複合体予測も可能ですか? + - はい、可能です。配列の入力方法はGoogle Colabのやり方と同じです。 +- jackhmmerによるMSA作成は可能ですか? + - **現在のところ対応していません**。 +- Google Colabのようにセルごとに実行したい。 + - VSCodeとPythonプラグインを使えば同様のことができます。See https://code.visualstudio.com/docs/python/jupyter-support-py . +- 複数のGPUを利用して計算を行いたい。 + - 実行前に環境変数`TF_FORCE_UNIFIED_MEMORY`,`XLA_PYTHON_CLIENT_MEM_FRACTION`を設定する必要があります。[こちらのissue](https://github.com/YoshitakaMo/localcolabfold/issues/7#issuecomment-923027641)を読んでください。 +- 長いアミノ酸を予測しようとしたときに`ResourceExhausted`というエラーが発生するのを解決したい。 + - 上と同じissueを読んでください。 +- `CUDA_ERROR_ILLEGAL_ADDRESS: an illegal memory access was encountered`というエラーメッセージが出る + - CUDA 11.1以降にアップデートされていない可能性があります。`nvcc --version`コマンドでCuda compilerのバージョンを確認してみてください。 +- Windows 10の上でも利用することはできますか? + - [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10)を入れればWindows 10の上でも同様に動作させることができます。 + +## Tutorials & Presentations + +- ColabFold Tutorial presented at the Boston Protein Design and Modeling Club. [[video]](https://www.youtube.com/watch?v=Rfw7thgGTwI) [[slides]](https://docs.google.com/presentation/d/1mnffk23ev2QMDzGZ5w1skXEadTe54l8-Uei6ACce8eI). + +## Acknowledgments + +- The original colabfold was first created by Sergey Ovchinnikov ([@sokrypton](https://twitter.com/sokrypton)), Milot Mirdita ([@milot_mirdita](https://twitter.com/milot_mirdita)) and Martin Steinegger ([@thesteinegger](https://twitter.com/thesteinegger)). + +## How do I reference this work? + +- Mirdita M, Schuetze K, Moriwaki Y, Heo L, Ovchinnikov S and Steinegger M. ColabFold - Making protein folding accessible to all. *bioRxiv*, doi: [10.1101/2021.08.15.456425](https://www.biorxiv.org/content/10.1101/2021.08.15.456425v2) (2021) +- John Jumper, Richard Evans, Alexander Pritzel, et al. - Highly accurate protein structure prediction with AlphaFold. *Nature*, 1–11, doi: [10.1038/s41586-021-03819-2](https://www.nature.com/articles/s41586-021-03819-2) (2021) + + +[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.5123296.svg)](https://doi.org/10.5281/zenodo.5123296) diff --git a/colabfold_alphafold.patch b/v1.0.0/colabfold_alphafold.patch similarity index 100% rename from colabfold_alphafold.patch rename to v1.0.0/colabfold_alphafold.patch diff --git a/gpurelaxation.patch b/v1.0.0/gpurelaxation.patch similarity index 100% rename from gpurelaxation.patch rename to v1.0.0/gpurelaxation.patch diff --git a/install_colabfold_M1mac.sh b/v1.0.0/install_colabfold_M1mac.sh similarity index 100% rename from install_colabfold_M1mac.sh rename to v1.0.0/install_colabfold_M1mac.sh diff --git a/install_colabfold_intelmac.sh b/v1.0.0/install_colabfold_intelmac.sh similarity index 100% rename from install_colabfold_intelmac.sh rename to v1.0.0/install_colabfold_intelmac.sh diff --git a/install_colabfold_linux.sh b/v1.0.0/install_colabfold_linux.sh similarity index 100% rename from install_colabfold_linux.sh rename to v1.0.0/install_colabfold_linux.sh diff --git a/residue_constants.patch b/v1.0.0/residue_constants.patch similarity index 100% rename from residue_constants.patch rename to v1.0.0/residue_constants.patch diff --git a/runner.py b/v1.0.0/runner.py similarity index 100% rename from runner.py rename to v1.0.0/runner.py diff --git a/runner_af2advanced.py b/v1.0.0/runner_af2advanced.py similarity index 100% rename from runner_af2advanced.py rename to v1.0.0/runner_af2advanced.py diff --git a/runner_af2advanced_old.py b/v1.0.0/runner_af2advanced_old.py similarity index 100% rename from runner_af2advanced_old.py rename to v1.0.0/runner_af2advanced_old.py