Although departmental computers may be available with the software you need to work through this course you will probably also want to run calculations on your own laptop or workstation. This page will help you with:
- Basic introduction to using the Linux command line.
- Installing the programs needed for the work in this course.
These instructions are also largely compatible with macOS and should be similar to what is required for use in the Windows Subsystem for Linux (but this has not been thoroughly tested, so it is possible that some things might not work correctly and WSL users will have to check this for themselves). Another option if you do not have Linux installed on your own machine and do not want to permanently change operating system is to use a virtual machine with Linux installed in it. A popular option for this is VirtualBox.
All the software that we will use here is freely available for educational and academic research purposes.
If you want to use this software for commercial purposes (e.g. a research collaboration with an industry partner) it is up to you to determine whether the license(s) for the relevant software permit you to do this or not.
Simple tutorials to learn basic Linux shell commands can be found online, for example:
Open a new terminal – you can either do this using the GUI or on the keyboard with
ctrl-alt-t. When the terminal opens it will be running the Linux ‘shell’ which is an environment that allows you to perform numerous tasks from the keyboard without the need to open menus over and over again. Although a number of shells exist, the default in Linux is
When the shell opens you will be in your
home directory and here you can create the files and directories that will be needed in these practicals. Let’s practice some useful commands:
pwd– the output will be your ‘present working directory’. This is very useful as it is easy to lose your place once you start creating more directories and moving around them.
ls– list the files and directories that exist in the directory that you are in.
bashhelpfully highlights things in different colours e.g. directories are blue and executable files are green. If you want to see what is in a directory type
(replacing directory with the name of the directory you want to look in).
mkdir– create a new directory e.g.
will create a directory named ‘practical_1’.
It is good to get into the habit of using underscores ( _ ) instead of spaces in file and directory names as empty spaces can lead to problems like the name being treated as two separate strings instead of one.
cd– change directory. So if you created the directory ‘practical_1’ then
will move you to that directory (do
cdand you will see that you are in a different directory).
Some simple shortcuts exist that help when moving around the Linux file system.
~is a shorthand for your home directory e.g.
cd ~will take you back to your home regardless of where you started from.
..is a shorthand for the directory above the one you are in, so
cd ..will move you one directory up.
- You can also use these with other commands e.g.
ls ~will show you what is in your home directory even if you are in a different one.
mv– this moves a file or directory. Typing
mv practical_1 first_practical
will move/rename the directory ‘practical_1’ to ‘first_practical’.
lswill now show the new name that you gave it.
cp– copies a file e.g.
cp file_1 file_2
will make a copy of ‘file_1’ and call it ‘file_2’.
Use the following commands carefully as Linux will not ask you if you are sure you want to delete things and there is no ‘undo’
rm– allows you to remove/delete files.
rmdir– removes directories (only if they are empty).
rm -r– can be used to remove a non-empty directory. In addition to removing any files in that directory it will also recursively (the
-rmodifier) remove any subdirectories in that directory along with their contents. Be very careful with this command as you could potentially remove all the files in your
homedirectory with it – or worse…
rm, all of these commands can do more complicated things if you supply modifiers/flags to them but these are beyond the scope of this basic introduction. If you want to know more about these commands you can type:
to display the manual page for the command. The up and down arrows will let you scroll through the page. When done viewing a man page, typing
q allows you to exit back to the command line.
1.2. Python installation
Although you may already have Python on your computer we will use a separate Python installation to avoid any potential conflicts with the system version. The full installation will exist in a folder in your home directory meaning that if you encounter problems later it will be possible to simply delete the entire folder and start again without harming your system.
We will use the
Miniconda Python distribution. This is a minimal installation that, in addition to a separate version of Python, will give you access to the
conda package manager which makes installation of Python programs simpler by taking care of any dependencies that they might have.
The Miniconda installer can be found at this page.
Follow this link and download the version of the installer you need from the section Latest Miniconda Installer Links. Download the relevant file and it will be placed in your
For Linux choose the Miniconda3 Linux 64-bit installer.
and you should see the
miniconda installer in the Downloads directory.
You can run the installer in the shell by typing:
Select the default answers to all of the questions that it asks and it will install
miniconda in a directory called
miniconda3 in your home directory.
Now you are ready to install the Python software needed for these classes.
1.3. AutoDock Vina
For this we will use the
conda package manager.
First, we will create a separate virtual Python environment for
vina. This is good practice since when installing packages like this that have a number of dependencies in a single environment there is always the risk of clashes with versions of libraries and other dependencies between one package and another. Separate environments avoid this problem.
To create a new environment for
vina do the following:
conda create --name vina python=3
This will create the environment and install the most recent version of
Python 3 in it.
At the start of the command prompt you will see ‘(base)’ which tells you that you are in the
miniconda base environment. Now type:
conda activate vina
You will see that ‘(base)’ has changed to ‘(vina)’ and this means that you are now in the new virtual environment that you created. From here you can now install the
vina software package. The command to do this is simply:
conda install -c conda-forge vina
-c conda-forge part tells conda to look for the
vina package in a software channel called ‘conda-forge’.
once you have installed
vina you can check if it is there by typing:
which will run the program and produce a usage menu and an error that ends with the line:
ERROR: The receptor or affinity maps must be specified.
vina is successfully installed you can exit the virtual environment by typing:
which will drop you back into the
base environment (check the beginning of the command prompt to make sure).
openbabel  is a powerful command line code for the manipulation of chemical structure files. In addition to being able to convert between a huge number of file formats,
openbabel can perform a wide range of cheminformatics and molecular modelling tasks.
Native versions for Windows and Mac exist and can be downloaded from the
openbabel site. On most Linux distributions it is possible to install via the system package managers. The method we will choose here though is to install using
conda as we did for the codes above.
It is important to install
openbabel version 3.x as in earlier versions there was an error in the creation of
pdbqt files needed for docking with
openbabel is a very useful piece of software we will install it in the
base Python environment so that it is available as soon as you start a terminal you do not need to activate and deactivate environments every time you want to use it. Note, however, that this means that you may not have access to it if you are in an environment other than
base – if you find you need to use
openbabel a lot in a different environment for your work, you can simply install it there as well.
To install with
conda do the following:
conda install -c conda-forge openbabel
Once it is installed run
obabel -L formats
for a full list of the different chemical file formats that
openbabel can convert. Simply running
results in a list of help topics that are available.
Although many structures for drug-like molecules can be downloaded from online databases it is always useful to have the ability to graphically edit them or even to create useable structures from scratch for your own research. A very useful piece of software for this is
avogadro  which can be found here.
In addition to building/editing molecules,
avogadro allows you to optimise their geometry and even perform conformational searches via an interface to
openbabel (a version of
openbabel is included with the
avogadro package so it will work independently of your command line
avogadro site has download instructions for installers for Windows and Mac but those fortunate enough to be using Linux can most probably install it directly from their package manager.
In the most recent Ubuntu Linux distributions the default
avogadro is a new version with a slightly different interface layout:
avogadro2. With some small differences (mainly in the menu layout) this newer version is compatible with the material in this course.
As different users of this course may not all be running the latest Ubuntu (or even Linux) we will stick with the instructions for what is still the most common version of
For example, in Ubuntu you can install avogadro with
apt as follows:
sudo apt install avogadro
sudo lets you run things with super-user (administrator) privileges and is required for installation using
When you use the
sudo command you will have to have administrator permissions and it will ask for your password to enable this (if you installed Linux on your own computer you will be the super-user and therefore your login passsword will be the one required – however, on e.g. a departmental Linux machine you probably won’t have these permissions and you will have to ask for
avogadro to be installed for you if it is not already there).
Some instructions for other Linux distributions are available on the
avogadro site. Note, however, that these do not appear to have been updated in some time.
1.6. UCSF Chimera
chimera  is a graphical program for the display and analysis of (bio)molecules and has many capabilities that go far beyond what we need for this course. Fortunately, it also makes graphical setup, running and subsequent analysis of
vina protein-ligand docking calculations much easier. It also has the ability to produce publication-quality graphics easily which is always handy.
Installers and installation instructions for your operating system can be found here. Choose the Current Production Releases as these are the most stable.