def __init__(self, id=None, parent=None, elementType=Residue, list=None, childrenName='residues', setClass=ChainSet, childrenSetClass=ResidueSet, top=None, childIndex=None, assignUniqIndex=1): """Chain constructor. Arguments: id (string) optional parent (instance of a TreeNode) optional elementType (instance of class inheriting from TreeNode)""" Molecule.__init__(self, str(id), parent, elementType, list, childrenName, setClass, childrenSetClass, top, childIndex, assignUniqIndex) self.id = id self.hasBonds = 0 # 1 for bondsByDistance is supported self.gaps = [] # list to store tuple (Res, Res) define the edge of a gap
def __init__(self, name='NoName', parent=None, elementType=Chain, list=None, childrenName='chains', setClass=ProteinSet, childrenSetClass=ChainSet, top=None, childIndex=None, assignUniqIndex=1): """Protein constructor. Arguments: name (string) optional parent (instance of a TreeNode) optional elementType (instance of class inheriting from TreeNode, defaults to Chain)""" Molecule.__init__(self, name=name, parent=parent, elementType=elementType, list=list, childrenName=childrenName, setClass=setClass, childrenSetClass=childrenSetClass, top=top, childIndex=childIndex, assignUniqIndex=assignUniqIndex) self.bondsflag = 0 self.hasSS = [] self.hasBonds = 0 # 1 for bondsByDistance is supported
def __init__(self, type='UNK', number=-1, icode='', parent=None, elementType=Atom, list=None, childrenName='atoms', setClass=ResidueSet, childrenSetClass=AtomSet, top=None, childIndex=None, assignUniqIndex=1): """Residue constructor. Arguments: type (string) number (integer or string) icode (1character) insertion code optional parent (instance of a TreeNode) optional elementType (instance of class inheriting from TreeNode)""" name = type+str(number)+icode Molecule.__init__(self, name, parent, elementType, list, childrenName, setClass, childrenSetClass, top, childIndex, assignUniqIndex) self.type = type self.number = number self.icode = icode self.psi = None # not calculated self.phi = None # not calculated
def build2LevelsTree(self, atomlines): """ Function to build a two level tree. """ print 'try to build a 2 level tree' self.mol = Molecule() self.mol.allAtoms = AtomSet() self.mol.atmNum = {} self.mol.parser = self if self.mol.name == 'NoName': self.mol.name = os.path.basename( os.path.splitext(self.filename)[0]) self.mol.children = AtomSet([]) self.mol.childrenName = 'atoms' self.mol.childrenSetClass = AtomSet self.mol.elementType = Atom self.mol.levels = [Molecule, Atom] ##1/18:self.mol.levels = [Protein, Atom] for atmline in atomlines: atom = Atom(atmline[1], self.mol, chemicalElement=string.split(atmline[5], '.')[0], top=self.mol) #atom.element = atmline[5][0] atom.element = atom.chemElem atom.number = int(atmline[0]) self.mol.atmNum[atom.number] = atom atom._coords = [[ float(atmline[2]), float(atmline[3]), float(atmline[4]) ]] if len(atmline) >= 9: atom._charges['mol2'] = float(atmline[8]) atom.chargeSet = 'mol2' # atom.conformation = 0 atom.hetatm = 0 #add altname so buildBondsByDist doesn't croak atom.altname = None self.mol.allAtoms.append(atom) self.mol.atoms = self.mol.children
def isBelow(self, Klass): if Klass is Molecule: Klass=Protein return Molecule.isBelow(self, Klass)