In [13]:
%reset 
import Bio.PDB
import numpy as np
import pandas as pd

#pdb_code = "HLA_A2_1"
#pdb_filename = "HLA_A2_1.pdb" 

#pdb_code = "HLA_B5_801"
#pdb_filename = "HLA_B5_801.pdb" 


pdb_code = "HLA_B5_701"
pdb_filename = "HLA_B5_701.pdb" 

structure = Bio.PDB.PDBParser().get_structure(pdb_code, pdb_filename)
model = structure[0]


Once deleted, variables cannot be recovered. Proceed (y/[n])? y
C:\Users\Ekpyrotic\Anaconda3\lib\site-packages\Bio\PDB\StructureBuilder.py:85: PDBConstructionWarning: WARNING: Chain A is discontinuous at line 3535.
  PDBConstructionWarning)
C:\Users\Ekpyrotic\Anaconda3\lib\site-packages\Bio\PDB\StructureBuilder.py:85: PDBConstructionWarning: WARNING: Chain B is discontinuous at line 3749.
  PDBConstructionWarning)
C:\Users\Ekpyrotic\Anaconda3\lib\site-packages\Bio\PDB\StructureBuilder.py:85: PDBConstructionWarning: WARNING: Chain C is discontinuous at line 3826.
  PDBConstructionWarning)

In [17]:
#difference between two alpha carbons
def calc_residue_dist(coord_one, coord_two) :
    diff_vector  = coord_one- coord_two
    return np.sqrt(np.sum(diff_vector * diff_vector))

def calc_dist_matrix(model) :
    alphanum = 0
    residuelist = model.get_residues()
    coords = np.zeros([1,3])
    for res in residuelist:
        if 'CA' in res:
            alphanum = alphanum+1
            #print([res['CA'].coord])
            #print(coords)
            coords = np.concatenate((coords,[res['CA'].coord]),axis =0)
    distances = np.zeros((alphanum,alphanum),np.float)
    for i in range(0,alphanum):
        for j in range(0, alphanum):
            coords1 = coords[i,:]
            coords2 = coords[j,:]
            distances[i,j] = calc_residue_dist(coords1, coords2)
    return distances, coords

#print(1 for i in residuelist)
t, coords = calc_dist_matrix(model)
print(np.size(coords))
#print(coords)
#print(np.size(t))





#np.savetxt('HLA_A2_1_dist.csv', t, delimiter=',')
#np.savetxt('HLA_B5_801_dist.csv', t, delimiter=',')
np.savetxt('HLA_B5_701_dist.csv', t, delimiter=',')
#for t in residuelist:
#    print(t)


1152

In [ ]:


In [ ]:


In [ ]: