import sys from Tailor.Condition import HBondCondition, NoneCombiner from Tailor.Description import ChainDescription, AtomDescription from Tailor.Measure import PropertyMeasure, DistanceMeasure from Tailor.Run import Run, Pipe path = sys.argv[1] maxHO = 3.5 minHOC = 90.0 minNHO = 90.0 helixTerm = ChainDescription({"chainID" : "h"}) helixTerm.createResidues(9) helixTerm.createBackboneHBondCondition(6, 2, maxHO, minHOC, minNHO) helixTerm.createBackboneHBondCondition(7, 3, maxHO, minHOC, minNHO) helixTerm.getResidue(8).addPropertyCondition("resname", "PRO") helixTerm.getResidue(8).children.pop() helixTerm.getResidue(8).children.append(AtomDescription({"name" : "2HD"})) measures = [] measures.extend(helixTerm.createPhiPsiMeasures([6, 7, 8])) o = helixTerm.selectResidue(5).selectAtom("O") h = helixTerm.selectResidue(8).selectAtom("2HD") measures.append(DistanceMeasure(o, h)) pipes = [Pipe(helixTerm, measures, sys.stdout)] run = Run(pipes, path) run.run()
import sys from Tailor.Description import ChainDescription from Tailor.DataSource import structureFromFile from Tailor.Engine import Matcher from Tailor.Measure import DistanceMeasure # read in the structure filepath = sys.argv[1] structure = structureFromFile(filepath) # create a simple description description = ChainDescription({"chainType" : "Protein"}) description.createResidues(3) description.createPhiBoundCondition(2, -30, 100) # create a simple measure o = description.selectResidue(1).selectAtom("O") n = description.selectResidue(3).selectAtom("N") distanceMeasure = DistanceMeasure(o, n) # match and measure matcher = Matcher(description) for fragment in matcher.findAll(structure): print(fragment.chainID, "".join([str(r) for r in fragment]), distanceMeasure.measure(fragment))
# a copy of SimpleExample.java, for comparative testing import sys from Tailor.Description import ChainDescription, ResidueDescription, AtomDescription from Tailor.Condition import PropertyCondition from Tailor.Measure import DistanceMeasure from Tailor.Run import Run motif = ChainDescription({"chainID" : "valmot"}) residueDescription = ResidueDescription({"position" : 1, "resname" : "VAL"}) nAtom = AtomDescription({"name" : "N"}) oAtom = AtomDescription({"name" : "O"}) residueDescription.addSubDescription(nAtom) residueDescription.addSubDescription(oAtom) motif.addSubDescription(residueDescription) atom1 = motif.selectResidue(1).selectAtom("N") atom2 = motif.selectResidue(1).selectAtom("O") Run(motif, sys.argv[1], [], [DistanceMeasure(atom1, atom2)]).run()
helixTerm.createResidues(12) helixTerm.createBackboneHBondCondition(6, 2, maxHO, minHOC, minNHO) helixTerm.createBackboneHBondCondition(7, 3, maxHO, minHOC, minNHO) helixTerm.createBackboneHBondCondition(8, 4, maxHO, minHOC, minNHO) helixTerm.createBackboneHBondCondition(9, 5, maxHO, minHOC, minNHO) helixTerm.createBackboneHBondCondition(10, 6, maxHO, minHOC, minNHO) helixTerm.getResidue(11).addPropertyCondition("resname", "PRO") helixTerm.getResidue(11).children.pop() #antiBond = helixTerm.createBackboneHBondCondition(11, 7, maxHO, minHOC, minNHO) #antiBond.negate() #antiPhiBound9 = helixTerm.createPhiBoundCondition(11, -90, 90) #antiPsiBound9 = helixTerm.createPsiBoundCondition(11, -30, 60) #helixTerm.conditions.remove(antiPhiBound9) #helixTerm.conditions.remove(antiPsiBound9) #antiPhiPsiBound9 = NoneCombiner([antiPhiBound9, antiPsiBound9]) #helixTerm.addCondition(antiPhiPsiBound9) measures = [] measures.extend(helixTerm.createPhiPsiMeasures([9, 10, 11])) measures.append(PropertyMeasure(helixTerm.selectResidue(9), "resname", str)) measures.append(PropertyMeasure(helixTerm.selectResidue(10), "resname", str)) measures.append(PropertyMeasure(helixTerm.selectResidue(11), "resname", str)) pipes = [Pipe(helixTerm, measures, sys.stdout)] run = Run(pipes, path) run.run()
import sys from Tailor.Condition import HBondCondition, NoneCombiner from Tailor.Description import ChainDescription, AtomDescription from Tailor.Measure import PropertyMeasure, DistanceMeasure from Tailor.Run import Run, Pipe path = sys.argv[1] tripep = ChainDescription({"chainID" : "h"}) tripep.createResidues(3) # for proline searches #tripep.getResidue(2).children.pop() measures = [] measures.extend(tripep.createPhiPsiMeasure(2)) measures.append(PropertyMeasure(tripep.selectResidue(1), "resname", str)) measures.append(PropertyMeasure(tripep.selectResidue(2), "resname", str)) measures.append(PropertyMeasure(tripep.selectResidue(3), "resname", str)) pipes = [Pipe(tripep, measures, sys.stdout)] run = Run(pipes, path) run.run()
# turns defined by a CAlpha(i)<->CAlpha(i + 3) < 7.0 Ang import sys from Tailor.Condition import DistanceBoundCondition, AllCombiner, NoneCombiner from Tailor.Description import ChainDescription, AtomDescription from Tailor.Measure import PropertyMeasure, DistanceMeasure from Tailor.Run import Run, Pipe path = sys.argv[1] tetrapep = ChainDescription({"chainID" : "t"}) tetrapep.createResidues(4) # the < 7 distance constraint ca1 = tetrapep.selectResidue(1).selectAtom("CA") ca2 = tetrapep.selectResidue(4).selectAtom("CA") tetrapep.addCondition(DistanceBoundCondition(ca1, ca2, 3.5, 3.5)) # no helical angles #phi2 = tetrapep.createPhiBoundCondition(2, -60, 10) #psi2 = tetrapep.createPsiBoundCondition(2, -60, 10) #phi3 = tetrapep.createPhiBoundCondition(3, -60, 10) #psi3 = tetrapep.createPsiBoundCondition(3, -60, 10) #for torsion in [phi2, psi2, phi3, psi3]: tetrapep.conditions.remove(torsion) #tetrapep.addCondition(NoneCombiner([phi2, psi2])) #tetrapep.addCondition(NoneCombiner([phi3, psi3])) # for proline searches #for i in range(1, 5): tetrapep.getResidue(i).children.pop() measures = []