예제 #1
0
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()
예제 #2
0
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))

예제 #3
0
# 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()
예제 #4
0
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()
예제 #5
0
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()
예제 #6
0
# 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 = []