1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
try:
from mmtf import fetch, parse
except ImportError:
from Bio import MissingPythonDependencyError
raise MissingPythonDependencyError("Install mmtf to use Bio.PDB.mmtf "
"(e.g. pip install mmtf-python)")
from Bio.PDB.mmtf.DefaultParser import StructureDecoder
def get_from_decoded(decoder):
structure_decoder = StructureDecoder()
decoder.pass_data_on(structure_decoder)
return structure_decoder.structure_bulder.get_structure()
class MMTFParser(object):
"""Class to get a BioPython structure from a URL or a filename."""
@staticmethod
def get_structure_from_url(pdb_id):
"""Get a structure from a URL - given a PDB id.
:param pdb_id: the input PDB id
:return the structure
"""
decoder = fetch(pdb_id)
return get_from_decoded(decoder)
@staticmethod
def get_structure(file_path):
"""Get a structrue from a file - given a file path.
:param file_path: the input file path
:return the structure
"""
decoder = parse(file_path)
return get_from_decoded(decoder)
|