# create a multichain description
proteinChain = ChainDescription({"chainType": "Protein", "chainID": ""})
proteinChain.createResidues(3)

waterResidue = ResidueDescription({"position": 1})
waterResidue.addAtom("O")
waterChain = ChainDescription({"chainType": "Water"})
waterChain.addResidue(waterResidue)

description = StructureDescription({}, name="niche")
description.addChain(proteinChain)
description.addChain(waterChain)

# create some simple measures and conditions
c1 = constructSelection(chainType="Protein", residuePosition=1, atomName="C")
n3 = constructSelection(chainType="Protein", residuePosition=3, atomName="N")
ow = constructSelection(chainType="Water", residuePosition=1, atomName="O")
phi, psi = proteinChain.createPhiPsiMeasure(2)

description.addCondition(DistanceBoundCondition(c1, ow, 1.5, 1.5))
description.addCondition(DistanceBoundCondition(n3, ow, 1.5, 1.5))

distanceMeasure1 = DistanceMeasure(c1, ow)
distanceMeasure2 = DistanceMeasure(n3, ow)
angleMeasure = AngleMeasure(c1, ow, n3)
measures = [phi, psi, distanceMeasure1, distanceMeasure2, angleMeasure]

# match and measure
pipe = Pipe(description, measures)
run = Run([pipe], filepath)
Exemple #2
0
# create a multichain description
backboneChain = ChainDescription({"chainType" : "Protein", "chainID" : ""})
backboneChain.createResidues(4)

sidechainResidue = ResidueDescription({"position" : 1, "resname" : "ASN" })
sidechainResidue.addAtom("ND2")
sidechainChain = ChainDescription({"chainType" : "Protein"})
sidechainChain.addResidue(sidechainResidue)

description = StructureDescription({}, name="classAStructure")
description.addChain(backboneChain)
description.addChain(sidechainChain)

# create some simple measures and conditions
o1 = constructSelection(chainType="Protein", residuePosition=1, atomName="O")
o3 = constructSelection(chainType="Protein", residuePosition=3, atomName="O")
n  = constructSelection(chainType="Protein", residuePosition=1, atomName="ND2")
phi1, psi1 = backboneChain.createPhiPsiMeasure(2)
phi2, psi2 = backboneChain.createPhiPsiMeasure(3)

description.addCondition(DistanceBoundCondition(o1, n, 1.8, 1.8))
description.addCondition(DistanceBoundCondition(o3, n, 1.8, 1.8))

distanceMeasure1 = DistanceMeasure(o1, n)
distanceMeasure2 = DistanceMeasure(o3, n)
angleMeasure = AngleMeasure(o1, n, o3)
measures = [phi1, psi1, phi2, psi2, distanceMeasure1, distanceMeasure2, angleMeasure]

# match and measure
pipe = Pipe(description, measures)