Sequence-Structure Comparison with Evol

The part shows how to compare sequence conservation properties with structural mobility obtained from Gaussian network model (GNM) calculations.

Setting up environment


In [ ]:
from prody import *
from pylab import *
%matplotlib inline

Entropy Calculation

First, we retrieve MSA for protein for protein family PF00074:


In [ ]:
fetchPfamMSA('PF00074')

We parse the MSA file:


In [ ]:
msa = parseMSA('PF00074_full.sth')

Then, we refine it using refineMSA() based on the sequence of RNAS1_BOVIN:


In [ ]:
msa_refine = refineMSA(msa, label='RNAS1_BOVIN', rowocc=0.8, seqid=0.98)

We calculate entropy for refined MSA.


In [ ]:
entropy = calcShannonEntropy(msa_refine)

Mobility calculation

Next, we obtain residue fluctuations or mobility for protein member of the above family. We will use chain B of 2W5I.


In [ ]:
pdb = parsePDB('2W5I', chain='B')

chB_ca = pdb.select('protein and name CA and resid 1 to 119')

We perform GNM as follows:


In [ ]:
gnm = GNM('2W5I')

gnm.buildKirchhoff(chB_ca)

gnm.calcModes(n_modes=None)  # calculate all modes

In [ ]:
mobility_1 = calcSqFlucts(gnm[0])

mobility_1to8 = calcSqFlucts(gnm[:8])

mobility_all = calcSqFlucts(gnm[:])

Plotting


In [ ]:
indices = range(1,120)

bar(indices, entropy, width=1.2, color='grey', hold='True');

xlim(min(indices)-1, max(indices)+1);

plot(indices, mobility_all*(max(entropy)/mean(mobility_all)), color='b',
linewidth=2);

xlabel('residue index')
ylabel('mobility/entropy')