code: 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")),
      add_python_path=True,
      # default channels are "conda-forge" and "omnia"
      additional_channels=[],
      # default packages are "rdkit", "openmm" and "pdbfixer"
      additional_packages=[],
  ):
      """Install conda packages on Google Colab
  
      For GPU/CPU notebook
      ```
      import conda_installer
      conda_installer.install()
      ```
  
      If you want to add other packages, you can use additional_conda_channels and
      additional_conda_package arguments. Please see the example.
      ```
      import conda_installer
      conda_installer.install(
        additional_conda_channels=[]
        additional_conda_packages=["mdtraj", "networkx"]
      )
  
      // add channel
      import conda_installer
      conda_installer.install(
        additional_conda_channels=["dglteam"]
        additional_conda_packages=["dgl-cuda10.1"]
      )
      ```
      """
  
      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)
  
      is_installed = []
      packages = list(set(default_packages + additional_packages))
      for package in packages:
          package = "simtk" if package == "openmm" else package
          is_installed.append(
              os.path.isdir(os.path.join(python_path, package))
          )
  
      if all(is_installed):
          logger.info("all packages are already installed")
          return
  
      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 openmm, pdbfixer")
      channels = list(set(default_channels + additional_channels))
      for channel in channels:
          subprocess.check_call(
              [
                  os.path.join(conda_path, "bin", "conda"),
                  "config",
                  "--append",
                  "channels",
                  channel,
              ]
          )
          logger.info("added {} to channels".format(channel))
      subprocess.check_call(
          [
              os.path.join(conda_path, "bin", "conda"),
              "install",
              "--yes",
              "python=={}".format(python_version),
              *packages,
          ]
      )
      logger.info("done")
      logger.info("conda packages installation finished!")
  
imports: import sys
  import os
  import requests
  import subprocess
  import shutil
  from logging import getLogger, StreamHandler, INFO
label_desc: Use image node_id 1 for calling a global function with example usage: install(chunk_size, file_name, url_base, conda_path, add_python_path, additional_channels, additional_packages) without return types