Structural Bioinformatics (2011/2012)

Practical GK-9

Side-chain modelling

Aims

Objectives

After this practical you will:

Exercises

  1. Copy the file find_ser.c (from directory /chalmers/users/kemp/TDA506/practical2/question2) to rotate_ser.c.

    Modify the program rotate_ser.c so that it finds the transformations that will adjust the chi-1 torsion angle of each serine residue by +20°. For each serine in Protein Data Bank entry 1CRN, apply this transformation to the gamma-oxygen atom, and print out its new coordinates and the new value of the chi-1 torsion angle (in degrees).

  2. Write a program that applies a +20° adjustment to the chi-1 angle of a serine residue, then tests whether the relocated gamma-oxygen atom overlaps/clashes with any other atom in the protein (for simplicity, assume that all atoms have a radius of 1.5Å). Your program should count how many distance calculations are performed. Start with a straightforward approach that might involve many distance calculations.

    How could you modify your program to reduce the number of distance calculations performed?

  3. Read the description of the main file format for a traditional rotamer model.

    1. Describe, in as much detail as possible, how you would implement a program that compares side-chain conformations in PDB entry 1CRN with the conformations in this rotamer library.

    2. Describe, in as much detail as possible, how you would implement a program that reads data from a PDB file and writes a modified structure (to standard output in PDB format) in which all side-chains have been replaced with the most probable rotamer conformation from the sorted backbone-dependent rotamer library.

  4. Look at the C source code in /chalmers/users/kemp/TDA506/practical9/initialise_cube.c

    1. Suppose we have an atom with its centre at (15.885, 12.426, 10.016), and radius 1.77Å. Describe how you could use the data structures in initialise_cube.c to find whether this atom overlaps with any other atom in a known structure.

    2. Suppose that we have an array of residue structures (as in program /chalmers/users/kemp/TDA506/practical2/question1/residue_array.c) instead of an array of atoms. Describe how the approach in initialise_cube.c could be adapted for use with an array of residue structures.


Last Modified: 10 February 2012 by Graham Kemp