Biopython ; pdb file parsing
0
0
Entering edit mode
9.5 years ago

How do I extract a specific residue from a pdb file though biopython? for example I have to extract 23,24th and 27th residue only. How do I do that?

Here is my code:

from Bio.PDB import *
from itertools import groupby
from operator import itemgetter
parser=PDBParser()
structure=parser.get_structure('X', '4wwt_loop_mcannotate.pdb')
faa=open('4wwt_loop_mcannotate.pd','w')
#fasta=[]
reslist=[]
structure=parser.get_structure('X' , '4wwt_loop_mcannotate.pdb')
for model in structure:
    for chain in model:
        for residue in chain:
            #few=residue.get_id[1]
            reslist.append(residue.get_id())
            faa.write(residue.get_resname().strip())
faa.close()
residuelist=[]
for items in reslist:
    for elemts in items:
        if elemts==' ':
            continue
        else:
            residuelist.append(elemts)
fraglist=[]
for k,g in groupby(enumerate(residuelist), lambda(i,x):i-x):
    fraglist.append(map(itemgetter(1),g))
print fraglist
myfrags=[]
myfragment=''
for ies in fraglist:
    for item in ies:   
        for model in structure:
            for chain in model:
                for residue in chain:
                    if item in residue.get_id():
                        myfragment+=residue.get_resname().strip()
                        myfragment+=str(item)
                        myfrags.append(myfragment)
                        myfragment=''
print myfrags

and this is the output I am getting

[[2724, 2725], [2741, 2742, 2743, 2744, 2745, 2746], [2792, 2793, 2794, 2795, 2796]]
['C2724', 'C2725', 'G2741', 'U2742', 'G2743', 'G2744', 'A2745', 'U2746', 'A2792', 'A2793', 'U2794', 'C2795', 'G2796']

while I want the output as set of fragments, like [CC,GUGGA, UAAUCG]

Please if someone could help

PDB biopython • 2.5k views
ADD COMMENT
0
Entering edit mode

Can you show your pdb file? Is it taken form Protein data bank?

ADD REPLY
0
Entering edit mode

No it's generated by a tool. here it is:

ADD REPLY

Login before adding your answer.

Traffic: 1260 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6