A working example from here, with small modifications. Note that this prints only the first 10 residues, and uses 1ako.pdb
as input:
from Bio import PDB
pdbfile=open('1ako.pdb')
p=PDB.PDBParser()
s=p.get_structure('X', pdbfile)
m=s[0]
RADIUS=12.0
hse=PDB.HSExposureCB(m, RADIUS)
residue_list=PDB.Selection.unfold_entities(m,'R')
hse=PDB.HSExposureCA(m, RADIUS)
residue_list=PDB.Selection.unfold_entities(m,'R')
for r in residue_list[:10]:
print(r.get_resname(), r.xtra)
It prints out:
('MET', {'EXP_HSE_B_U': 14, 'EXP_HSE_B_D': 15})
('LYS', {'EXP_CB_PCB_ANGLE': 0.36779144132803365, 'EXP_HSE_A_D': 16, 'EXP_HSE_A_U': 14, 'EXP_HSE_B_U': 12, 'EXP_HSE_B_D': 18})
('PHE', {'EXP_CB_PCB_ANGLE': 0.5011565950966005, 'EXP_HSE_A_D': 19, 'EXP_HSE_A_U': 27, 'EXP_HSE_B_U': 24, 'EXP_HSE_B_D': 22})
('VAL', {'EXP_CB_PCB_ANGLE': 0.42791751525779714, 'EXP_HSE_A_D': 26, 'EXP_HSE_A_U': 19, 'EXP_HSE_B_U': 19, 'EXP_HSE_B_D': 26})
('SER', {'EXP_CB_PCB_ANGLE': 0.47380644203839845, 'EXP_HSE_A_D': 27, 'EXP_HSE_A_U': 23, 'EXP_HSE_B_U': 24, 'EXP_HSE_B_D': 26})
('PHE', {'EXP_CB_PCB_ANGLE': 0.3983307352464271, 'EXP_HSE_A_D': 27, 'EXP_HSE_A_U': 23, 'EXP_HSE_B_U': 25, 'EXP_HSE_B_D': 25})
('ASN', {'EXP_CB_PCB_ANGLE': 0.46401180501955763, 'EXP_HSE_A_D': 21, 'EXP_HSE_A_U': 25, 'EXP_HSE_B_U': 22, 'EXP_HSE_B_D': 24})
('ILE', {'EXP_CB_PCB_ANGLE': 0.7672368218765522, 'EXP_HSE_A_D': 24, 'EXP_HSE_A_U': 20, 'EXP_HSE_B_U': 23, 'EXP_HSE_B_D': 21})
('ASN', {'EXP_CB_PCB_ANGLE': 0.8444275895178895, 'EXP_HSE_A_D': 22, 'EXP_HSE_A_U': 11, 'EXP_HSE_B_U': 10, 'EXP_HSE_B_D': 23})
('GLY', {'EXP_CB_PCB_ANGLE': 0.8558605272890972, 'EXP_HSE_A_D': 26, 'EXP_HSE_A_U': 9, 'EXP_HSE_B_U': 9, 'EXP_HSE_B_D': 26})