From 98da48dbd51e0822c8776c4d374ae54218f43f33 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Sat, 1 Aug 2020 17:32:12 +0530 Subject: Publish deploy 2020-08-01 17:32 --- posts/2020-07-01-Install-rdkit-colab/index.html | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 posts/2020-07-01-Install-rdkit-colab/index.html (limited to 'posts/2020-07-01-Install-rdkit-colab/index.html') diff --git a/posts/2020-07-01-Install-rdkit-colab/index.html b/posts/2020-07-01-Install-rdkit-colab/index.html new file mode 100644 index 0000000..4421a1f --- /dev/null +++ b/posts/2020-07-01-Install-rdkit-colab/index.html @@ -0,0 +1,87 @@ +Navan Chauhan
2 minute readCreated on July 1, 2020Last modified on August 1, 2020

RDKit is one of the most integral part of any Cheminfomatic specialist's toolkit but it is notoriously difficult to install unless you already have conda installed. I originally found this in a GitHub Gist but I have not been able to found that gist again :/

Just copy and paste this in a Colab cell and it will install it 👍

import sys +import os +import requests +import subprocess +import shutil +from logging import getLogger, StreamHandler, INFO + + +logger = getLogger(__name__) +logger.addHandler(StreamHandler()) +logger.setLevel(INFO) + + +def install( + chunk_size=4096, + file_name="Miniconda3-latest-Linux-x86_64.sh", + url_base="https://repo.continuum.io/miniconda/", + conda_path=os.path.expanduser(os.path.join("~", "miniconda")), + rdkit_version=None, + add_python_path=True, + force=False): + """install rdkit from miniconda + ``` + import rdkit_installer + rdkit_installer.install() + ``` + """ + + python_path = os.path.join( + conda_path, + "lib", + "python{0}.{1}".format(*sys.version_info), + "site-packages", + ) + + if add_python_path and python_path not in sys.path: + logger.info("add {} to PYTHONPATH".format(python_path)) + sys.path.append(python_path) + + if os.path.isdir(os.path.join(python_path, "rdkit")): + logger.info("rdkit is already installed") + if not force: + return + + logger.info("force re-install") + + url = url_base + file_name + python_version = "{0}.{1}.{2}".format(*sys.version_info) + + logger.info("python version: {}".format(python_version)) + + if os.path.isdir(conda_path): + logger.warning("remove current miniconda") + shutil.rmtree(conda_path) + elif os.path.isfile(conda_path): + logger.warning("remove {}".format(conda_path)) + os.remove(conda_path) + + logger.info('fetching installer from {}'.format(url)) + res = requests.get(url, stream=True) + res.raise_for_status() + with open(file_name, 'wb') as f: + for chunk in res.iter_content(chunk_size): + f.write(chunk) + logger.info('done') + + logger.info('installing miniconda to {}'.format(conda_path)) + subprocess.check_call(["bash", file_name, "-b", "-p", conda_path]) + logger.info('done') + + logger.info("installing rdkit") + subprocess.check_call([ + os.path.join(conda_path, "bin", "conda"), + "install", + "--yes", + "-c", "rdkit", + "python=={}".format(python_version), + "rdkit" if rdkit_version is None else "rdkit=={}".format(rdkit_version)]) + logger.info("done") + + import rdkit + logger.info("rdkit-{} installation finished!".format(rdkit.__version__)) + + +if __name__ == "__main__": + install() +
Tagged with:
\ No newline at end of file -- cgit v1.2.3