Я пытаюсь отделить РНК от белка в сложном PDB-файле белок / РНК, и мне нужна вся информация о РНК с гетероатомами между основаниями, НО без H2O и т. Д. Короче говоря, я хочу, чтобы РНК-часть файла pdb была без прерывистых линий.
Мне удалось отделить РНК от белка с помощью Bio PDB Select, но он считает гетероатомы аминокислотами, когда я использую is_aa (остаток). Так что гетероатомы не появятся в моем файле «только РНК».
from Bio.PDB import *
from Bio.PDB import PDBParser, PDBIO, Select
import os
class ProtSelect(Select):
def accept_residue(self, residue):
return 1 if is_aa(residue) == True else 0
class RNASelect(Select):
def accept_residue(self, residue):
return 1 if is_aa(residue) == False and residue.id[0] != "W" else 0
pdb = PDBParser().get_structure("2bh2", "pdb2bh2.ent")
io = PDBIO()
io.set_structure(pdb)
io.save("seqprotest.pdb", ProtSelect())
io.save("seqRNAtest.pdb", RNASelect())