from matriarch import * from math import * def collagen(seq1, seq2): a1 = chain(seq1) a2 = chain(seq2) hel1 = helixBuilder(a1,1.5,9.5238,'L') hel2 = helixBuilder(a2,1.5,9.5238,'L') helhel1 = helixBuilder(hel1,4,85.5,'L') helhel2 = helixBuilder(hel2,4,85.5,'L') helhel1rot = shiftOrbs(rotateOrbs(helhel1,2*pi/3),2.8) helhel2rot = shiftOrbs(rotateOrbs(helhel2,4*pi/3),5.6) homodimer = overlay(helhel1,helhel1rot) output = overlay(homodimer,helhel2rot) return output def helixBuilder(myBB,rad,pitch,handed): scale = sqrt(rad*rad + pitch*pitch/(4*pi*pi)) if handed=='R': sign=1 elif handed=='L': sign=-1 else: print handed,' should be L or R.' def parameterizedHelix(t): sc = sign/scale return [rad*cos(sc*t),-rad*sin(sc*t),pitch*t/(2*pi*scale)] W = buildAxisTwister(parameterizedHelix) return twist(myBB, W) seq1 = 'GFZGPKGTAGEZGKAGERGVZGPZGAVGPAGKDGEAGAQGAZGPAGPAGERGEQGPA' seq2 = 'GFZGPKGPSGDZGKZGEKGHPGLAGARGAZGPDGNNGAQGPZGPQGVQGGKGEQGPA' collgn = collagen(seq1,seq2) fileOut(collgn,'collgn.pdb') |
from matriarch import * from math import * def triangleTwister(side, pitch, length, smoothingFactor): iterations = int(length/(3*side)) + 2 const = sqrt(3)/6 def loop(Z0): return [[side*2*const,0,Z0],[-side*const,side/2.0,Z0+pitch/3.0],[-side*const,-side/2.0,Z0+pitch*2/3.0]] PList = [] for n in range(0,iterations): PList.extend(loop(pitch*n)) Rout = Ray([0,0,0],[0,0,1]) provideTheta = [] return smoothedPieceWiseLinear(PList, Rout, provideTheta, smoothingFactor) aminoLength=3.4 actualSeq ='TNVIIEGNVTLGHRVKIGTGCVIKNSVIGDDCEISP' Mult=3 Side=9*aminoLength Pitch=7 SmthFact = 0.33 totalLen=Mult*aminoLength*len(actualSeq) myChain = attachSeries(chain(actualSeq),Mult) myTriangle = twist(myChain, triangleTwister(Side, Pitch, totalLen, SmthFact)) fileOut(myTriangle,'triangleHelix.pdb')
from matriarch import * from math import * seq1 = 'AAAAGGPGGYGGPGGAAAA' a = chain(seq1) ser = attachSeries(a,25) def SphSprl(k,Rout): def curve(t): return [k*sin(t)*cos(20*t), k*sin(t)*sin(20*t), k*cos(t)] tmax=pi Thetaspec=0 return buildAxisTwister(curve,Rout,Thetaspec,tmax) Rout = Ray([0,0,0], [0,0,0]) k1 = 1 #first try W1 = SphSprl(k1,Rout) contourLength = length(ser) lengthOfCurveWithKEquals1 = W1[0].length knew = contourLength / lengthOfCurveWithKEquals1 SphSprlTwister = SphSprl(knew + 0.001,Rout) output = twist(ser, SphSprlTwister) fileOut(output,'sphericalSpiral.pdb')
from matriarch import * mySeqG = 'GGGGGGGGG' mySeqA = 'AAA' myChainG = chain(mySeqG) myChainA = chain(mySeqA) spacedBlock = space(myChainG, myChainA, 10) array = makeArray(spacedBlock, 10, 15, 4, 6, True) fileOut(array, 'arraySpaced.pdb')