-- =============================================================== -- EMBL File Reader v.2 Light -- =============================================================== -- -- --------------------------------------------------------------- -- Created by Denis Savin -- Email: denis_savin@mail.ru -- --------------------------------------------------------------- -- Created On: 06/04/04 -- Modified On: 08/29/04 -- Tested Using: Max 6.1 -- --------------------------------------------------------------- -- Tuning by Alexander Kushelev 11/11/2010 (pi-helix) -- http://nanoworld.narod.ru/ -- Discussion: http://www.nanoworld.org.ru/forum/viewtopic.php?pid=96482#p96482 ( struct TAtom ( p = point3 0 0 0, ch1 = " " , ch2 = " " , ch3 = " " , n1 = 0, Ami = " ", con = undefined --#() -- Connects Index. if undefined then connect to next ) -- Gloals ------------------------------------------------------------------------------------- global TDNEFile global _c, _a, _t, _g global DNE_Angles, Script_Angles, Script_Coordinats, DNE_Groups, DNE_AMI, TCDSPair -- Target Struct global MItem global Source_Target_Map -- Functions global readBlock global AmiToGroup global strCheck global strExtractPair global fileGetSize global strCompress global nextCharCompress global strSCompress global AddPair global CorrectAtom global strReal global strInteger global fSpace global fAlign global round global mline global drawChainsAtoms global markCenterAtoms global ringAtoms global createRingsObject global buildCATrace -- Atoms ------- global AtomsIndex global Atoms_Common global Atoms_Lys global Atoms_Asn global Atoms_Thr global Atoms_Arg_bottom global Atoms_Ser_teta global Atoms_Ile global Atoms_Met global Atoms_Gln global Atoms_His global Atoms_Pro global Atoms_Arg_top global Atoms_Leu_lambda global Atoms_Glu global Atoms_Asp global Atoms_Ala global Atoms_Val global Atoms_Tyr global Atoms_Ser_lambda global Atoms_Cys global Atoms_Trp global Atoms_Leu_teta global Atoms_Phe -- Gloals ------------------------------------------------------------------------------------- -------------------------------------------------------- -- --- Rings --- -- Sphere -- Line -- segs sides Seg Sides GeomQuality = #(#( 5 , 3 , 1 , 3 ), #( 6 , 4 , 1 , 4 ), #( 8 , 5 , 2 , 6 ), #( 15 , 6 , 3 , 8 ), #( 34 , 8 , 4 , 12 )) TGroup = #{1..4} Extended_TGroup = #{1..5} -- TMIDIInstrument = #{0..127} -- TMIDINote =#{0..127} struct TDNEFile ( Angles_For_Script = point3 0 0 0, Coordinat_For_Script = point3 0 0 0, fDNESequence = "", fTarget = "", fDNEGroupsSequence = #(), -- array of TGroup fDNEExGroupsSequence= #(), -- array of Extended_TGroup fAtomsSequence = #(), -- array of TAtom fAtomsTM = #(), -- array of TAtom fSSSequence = "", fAmiCounter = 0, --FOnProgress, -- TProgressEvent FProgressTotalSize = 0, f_PrintAtoms = true, f_CATrace = off, f_RingAtoms = on, f_WireAtoms = off, f_Radical = on, f_AutoCreate = on, f_Single = on, f_ConnectSocket = off, f_Quality = 3, f_ExtendedGroup = off, -- Flag Extended Sequence Group from 4 to 5 Variants Angles -- procedure AddAtoms (const ami: string; const a: array of TAtom) fn AddAtoms ami a =( --if f_PrintAtoms then format "AddAtoms % \n%\n\n" ami a --else format "AddAtoms % -- \n" ami --format "fAmiCounter %\n\n" fAmiCounter local aa = for i in a collect ( local ci = copy i ci.p = CorrectAtom (ci.p) ci.n1 = fAmiCounter ci.Ami = ami (ci) ) join fAtomsSequence aa if a == Atoms_Common then ( local m = (Matrix3 1) local aa = #(copy m , 1) append fAtomsTM ( aa) ) else ( local c = fAtomsTM.count if c > 0 do ( local fa = findItem AtomsIndex a --format "AddAtoms a:% \n fa:%\n" a fa if fa == undefined do fa = 1 fAtomsTM[c][2] = fa ) ) if f_PrintAtoms then ( -- print fAtomsSequence --format "\n" ) ), -- procedure AddTriplet (_1,_2,_3: TGroup); fn AddTriplet _1 _2 _3 =( local ami = DNE_AMI[_1][_2][_3] if ami as name == #TKD then return false -- TKD AddAtoms ami Atoms_Common case _1 of ( _a: case _2 of ( _a: case _3 of ( _a: AddAtoms ami Atoms_Lys _c: AddAtoms ami Atoms_Asn _g: AddAtoms ami Atoms_Lys _t: AddAtoms ami Atoms_Asn ) _c: case _3 of ( _a: AddAtoms ami Atoms_Thr _c: AddAtoms ami Atoms_Thr _g: AddAtoms ami Atoms_Thr _t: AddAtoms ami Atoms_Thr ) _g: case _3 of ( _a: AddAtoms ami Atoms_Arg_bottom _c: AddAtoms ami Atoms_Ser_teta _g: AddAtoms ami Atoms_Arg_bottom _t: AddAtoms ami Atoms_Ser_teta ) _t: case _3 of ( _a: AddAtoms ami Atoms_Ile _c: AddAtoms ami Atoms_Ile _g: AddAtoms ami Atoms_Met _t: AddAtoms ami Atoms_Ile ) ) _c: case _2 of ( _a: case _3 of ( _a: AddAtoms ami Atoms_Gln _c: AddAtoms ami Atoms_His _g: AddAtoms ami Atoms_Gln _t: AddAtoms ami Atoms_His ) _c: case _3 of ( _a: AddAtoms ami Atoms_Pro _c: AddAtoms ami Atoms_Pro _g: AddAtoms ami Atoms_Pro _t: AddAtoms ami Atoms_Pro ) _g: case _3 of ( _a: AddAtoms ami Atoms_Arg_top _c: AddAtoms ami Atoms_Arg_top _g: AddAtoms ami Atoms_Arg_top _t: AddAtoms ami Atoms_Arg_top ) _t: case _3 of ( _a: AddAtoms ami Atoms_Leu_lambda _c: AddAtoms ami Atoms_Leu_lambda _g: AddAtoms ami Atoms_Leu_lambda _t: AddAtoms ami Atoms_Leu_lambda ) ) _g: case _2 of ( _a: case _3 of ( _a: AddAtoms ami Atoms_Glu _c: AddAtoms ami Atoms_Asp _g: AddAtoms ami Atoms_Glu _t: AddAtoms ami Atoms_Asp ) _c: case _3 of ( _a: AddAtoms ami Atoms_Ala _c: AddAtoms ami Atoms_Ala _g: AddAtoms ami Atoms_Ala _t: AddAtoms ami Atoms_Ala ) _g: case _3 of ( _a: return false -- AddAtoms ami Atoms_Gly _c: return false -- AddAtoms ami Atoms_Gly _g: return false -- AddAtoms ami Atoms_Gly _t: return false -- AddAtoms ami Atoms_Gly ) _t: case _3 of ( _a: AddAtoms ami Atoms_Val _c: AddAtoms ami Atoms_Val _g: AddAtoms ami Atoms_Val _t: AddAtoms ami Atoms_Val ) ) _t: case _2 of ( _a: case _3 of ( _a: return false -- TKD _c: AddAtoms ami Atoms_Tyr _g: return false -- TKD _t: AddAtoms ami Atoms_Tyr ) _c: case _3 of ( _a: AddAtoms ami Atoms_Ser_teta _c: AddAtoms ami Atoms_Ser_teta _g: AddAtoms ami Atoms_Ser_teta _t: AddAtoms ami Atoms_Ser_teta ) _g: case _3 of ( _a: return false -- TKD _c: AddAtoms ami Atoms_Cys _g: AddAtoms ami Atoms_Trp _t: AddAtoms ami Atoms_Cys ) _t: case _3 of ( _a: AddAtoms ami Atoms_Leu_teta _c: AddAtoms ami Atoms_Phe _g: AddAtoms ami Atoms_Leu_teta _t: AddAtoms ami Atoms_Phe ) ) ) return true ), -- procedure ConvertToGroups; fn ConvertToGroups =( local count = (fDNESequence.count / 3) as integer fDNEGroupsSequence = for i = 0 to count - 1 collect ( DNE_Groups [AmiToGroup (fDNESequence[i*3 + 1])]\ [AmiToGroup (fDNESequence[i*3 + 2])]\ [AmiToGroup (fDNESequence[i*3 + 3])]) ), -- procedure Reverse; fn Reverse =( local count = (fDNESequence.count / 2) as integer for i = 1 to count do swap fDNESequence[l-i+1] fDNESequence[i] ), -- procedure Invert; fn Invert =( local txt = "" for i in fDNESequence do txt += case i as name of ( #a: "T" #c: "G" #g: "C" #t: "A" ) fDNESequence = txt ), -- procedure RotateAtoms (Kind: Extended_TGroup); fn RotateAtoms Kind =( local r = DNE_Angles[Kind] local tm = Matrix3 1 /* tm *= rotateXMatrix r.x tm *= rotateYMatrix r.y tm *= rotateZMatrix r.z tm *= transMatrix [3,0,0] */ local sysTM = (matrix3 [-0.0289494,-0.0072179,-0.00313582] [0.00304267,0.000758627,-0.0298357] [0.00725766,-0.0291089,0] [2.04156,0.787284,-0.138013]) local min = createRingsObject scale:(11.5 * .03) transform:sysTM getSocket:#in local mout = createRingsObject scale:(11.5 * .03) transform:sysTM getSocket:#out local pos = min.pos - mout.pos local posTM = transMatrix pos local m = Matrix3 1 --copy sysTM local rotTM = (rotateXMatrix r.x) * (rotateYMatrix r.y) * (rotateZMatrix r.z) local tm1 = m * (xFormMat rotTM (inverse (transMatrix mout.pos))) local tm2 = tm1 * (xFormMat posTM (inverse (transMatrix mout.pos))) tm = tm2 for i = 1 to fAtomsSequence.count do ( /* local p = fAtomsSequence[i].p p = p * rotateXMatrix r.x p = p * rotateYMatrix r.y p = p * rotateZMatrix r.z p = p * transMatrix [3,0,0] fAtomsSequence[i].p = p */ local p = fAtomsSequence[i].p p = p * tm fAtomsSequence[i].p = p ) for i = 1 to fAtomsTM.count do ( local m = fAtomsTM[i][1] m = m * tm fAtomsTM[i][1] = m ) ), -- procedure MakeAtoms; fn MakeAtoms =( -- LoadAngels() local i = 0 local p = 1 --PChar(fDNESequence); local e = p + fDNESequence.count --p + Length(fDNESequence); --p = fDNESequence as stringstream fDNEExGroupsSequence = #() fAtomsSequence = #() Angles_For_Script = #() Coordinat_For_Script = #() Angles_For_Script[fDNESequence.count] = 0 Coordinat_For_Script[fDNESequence.count] = 0 fAmiCounter = 1 -- Global var f_PrintAtoms = true -- ProgressStart "Building atoms structure" ((e-p) / 3) --format "ProgressStart()\n" progressStart "Building atoms structure" --format "\n\n --- Start MakeAtoms ! ---------------------------\n" --format "Start While p:% e:% (p+2 10000 then ( format "\n\nWarning: MakeAtom defence from Looping - Exit !\n"; return false; ) -- Debug if i+1 < fDNESequence.count / 3 then gr5 = fDNEGroupsSequence[i+1] else gr5 = 3 if i+2 < fDNESequence.count / 3 then gr6 = fDNEGroupsSequence[i+2] else gr6 = 3 if i+3 < fDNESequence.count / 3 then gr7 = fDNEGroupsSequence[i+3] else gr7 = 3 if i > 1 then gr3 = fDNEGroupsSequence[i-1] else gr3 = 3 if i > 2 then gr2 = fDNEGroupsSequence[i-2] else gr2 = 3 if i > 3 then gr1 = fDNEGroupsSequence[i-3] else gr1 = 3 local s1 = "|" for j = -3 to 3 do ( if (j*3+p) > 0 and (j*3+p+2) < e then ( s1 += fDNESequence[j*3+p] s1 += fDNESequence[j*3+p+1] s1 += fDNESequence[j*3+p+2] ) else s1 += " " if j == -1 then s1 += "<" else if j == 0 then s1 += ">" else s1 += "|" ) --format "fDNESequence[p=%\t]=\t\"%\"\n" p s1 _1 = AmiToGroup (fDNESequence[p]); p +=1 _2 = AmiToGroup (fDNESequence[p]); p +=1 _3 = AmiToGroup (fDNESequence[p]); p +=1 gr4 = DNE_Groups[_1][_2][_3] local gr4_ = gr4 --fDNEGroupsSequence[i] if f_ExtendedGroup != undefined and f_ExtendedGroup == true then ( if gr4==4 then ( if gr3==4 and gr2==4 or gr3==1 and gr2==1 or gr3==4 and gr2==1 or gr3==1 and gr2==4 then ( ) else gr4 =5 --format "\n---- GR4 = % Set !!! -----\n" gr4 ) if gr4==1 then ( if gr2==4 and gr1==4 and gr3==1 or gr2==1 and gr1==1 and gr3==1 or gr2==4 and gr1==1 and gr3==1 or gr2==1 and gr1==4 and gr3==1 then () else gr4 =5 --format "\n---- GR4 = % Set !!! -----\n" gr4 ) ) append fDNEExGroupsSequence gr4 --format "DNE_Groups[%][%][%] gr4:% gr4Fix:% Angle:%\n" _1 _2 _3 gr4_ gr4 (DNE_Angles[gr4]) --format " % | % | % < % > % | % | % \n" gr1 gr2 gr3 gr4_ gr5 gr6 gr7 --format "gr1|gr2|gr3|gr4|gr5|gr6|gr7\n" RotateAtoms gr4 Angles_for_Script[i] = Script_Angles[gr4] --Angles_for_Script[i-1].x = Script_Angles[gr4].x; --Angles_for_Script[i-1].y = Script_Angles[gr4].y; --Angles_for_Script[i-1].z = script_Angles[gr4].z; /*Coordinat_for_Script[i-1].x = Script_Coordinats[gr4].x Coordinat_for_Script[i-1].y = Script_Coordinats[gr4].y Coordinat_for_Script[i-1].z = script_Coordinats[gr4].z */ -- writeln(fl,gr1,gr2,gr3,gr4,gr5,gr6,gr7); if i > 3 do f_PrintAtoms = false --format "AddTriplet % % %\n" _1 _2 _3 --format "fAmiCounter %\n" fAmiCounter AddTriplet _1 _2 _3 /* if f_PrintAtoms then print fAtomsSequence else format "fAtomsSequence[end:%]=% \n" (fAtomsSequence.count) fAtomsSequence[fAtomsSequence.count] format "\n" */ --ProgressRun(fAmiCounter) progressUpdate (100.0 * fAmiCounter / ((e - p + 1)/3)) --format "progressUpdate %\n" (100.0 * i / aAtomsTM.count) local fCacel = getProgressCancel() if fCacel do ( format "while:% loops. fCacel:% \n" i fCacel; format "ProgressEnd()\n"; progressEnd(); return false ) fAmiCounter +=1 ) --format "ProgressEnd()\n" progressEnd() --format "-- MakeAtoms() = OK.\n" return true ), -- procedure MakeSSSequence; --fn MakeSSSequence =(), -- procedure ProgressStart(const Title: string; Total: integer = 100); --fn ProgressStart Title Total =(), -- procedure ProgressRun(Complete: Integer); --fn ProgressRun Complete =(), -- procedure ProgressEnd; --fn ProgressEnd =(), -- procedure Progress(Stage: TProgressStage; CompleteRatio: single; const Msg: string); --fn Progress Stage CompleteRatio Msg =(), -- procedure LoadAngels; fn LoadAngles save: =( local fSave = false if save != unsupplied then (fSave = if save == on then on else off) local dnaRootPath = (getDir #scripts) + "\\Nanoworld" if scriptEMBLFileReader_InstallPath != undefined do dnaRootPath = (trimright scriptEMBLFileReader_InstallPath "\\/ ") local dnaScriptPath = dnaRootPath + "\\Script" local dnaFilesPath = dnaRootPath + "\\Files" --format "dnaScriptPath: \"%\"\n" dnaScriptPath local fname = "dneAngles.ini" local ffName = dnaRootPath + "\\" + fname local SearthPath = #( dnaScriptPath, dnaRootPath, (getDir #maxroot), (getDir #maxstart), (getDir #scripts), (getDir #startupScripts), (getDir #plugcfg), sysInfo.windowsdir, sysInfo.systemdir, sysInfo.currentdir, "C:" --,"" ) local j = 1 local f = "" local f_foindAngles = false while j <= SearthPath.count and not f_foindAngles do ( local i = SearthPath[j] local f = (if i.count>0 then i + "\\" else "") + fname if doesFileExist f then ( ffName = f; f_foindAngles = on;) j +=1; ) if fSave do f_foindAngles = false --format "Start LoadAngles save:% f_foindAngles:% \n" fSave f_foindAngles --format " LoadAngles \"%\"\n" ffName local dirName = "DNE_Angles" for i = 1 to DNE_Angles.count do ( local parName = "Angle" + i as string local strPar = (getINIsetting ffName dirName parName ) if fSave then strPar = "" local par = if strPar.count>0 then try readValue (strPar as stringstream) Catch (return false) else DNE_Angles[i] DNE_Angles[i] = par if not f_foindAngles then setINIsetting ffName dirName parName (par as string) ) local dirName = "Script_Angles" for i = 1 to Script_Angles.count do ( local parName = "Angle" + i as string local strPar = (getINIsetting ffName dirName parName ) if fSave then strPar = "" local par = if strPar.count>0 then try readValue (strPar as stringstream) Catch (return false) else Script_Angles[i] Script_Angles[i] = par if not f_foindAngles then setINIsetting ffName dirName parName (par as string) ) local dirName = "Options" ( local params = #( #( "AutoCreate", &f_AutoCreate ), #( "CATrace", &f_CATrace ), #( "WireAtoms", &f_WireAtoms ), #( "RingAtoms", &f_RingAtoms ), #( "Radical", &f_Radical ), #( "Single", &f_Single ), #( "ConnectSocket", &f_ConnectSocket), #( "Quality", &f_Quality ), #( "ExtendedGroup", &f_ExtendedGroup)) for i = 1 to params.count do ( local parName = params[i][1] local strPar = (getINIsetting ffName dirName parName ) if fSave then strPar = "" local par = if strPar.count>0 then try readValue (strPar as stringstream) Catch (return false) else *params[i][2] *params[i][2] = par --format "Param %: %\n" parName par if not f_foindAngles then setINIsetting ffName dirName parName (par as string) ) ) true ), -- procedure LoadFrom(const FileName: string); fn LoadFrom FileName =( local s = 0 local e = 0 local complement = false local cdsPairs = #() local dneString = "" local fTarget = "" local lineIndex = 0 local fStop = false local f --print FileName try ( f = openFile FileName print f )Catch (return false) if f == undefined then return false --format "-- Start LoadFrom\n" try ( --format "ProgressStart()\n" --ProgressStart "Loading file "" + FileName + """ (fileGetSize FileName) / 70 progressStart ("Loading file \"" + (filenameFromPath FileName) + "\" ...") seek f #eof local maxlen = filepos f seek f 0 while not (eof f) and not fStop do ( --Readln textFile sourceLine local sourceLine = readLine f local pSrc = sourceLine as stringstream local curlen = filepos f lineIndex +=1 --format "ReadLine\t-- % --\n" lineIndex --pSrc = PChar sourceLine --ProgressRun lineIndex -- stop reading if eof f or strCheck pSrc "//" then (fStop = true; continue) else if strCheck pSrc "FT" then ( --format "FT\t" if strCheck pSrc "CDS" then ( --format "CDS\t\t\t" if strCheck pSrc "join" then ( complement = false cdsPairs = #() --SetLength cdsPairs 0 local block = readBlock pSrc files:f if block == undefined do (close f; format "\n\nError: In Fn LoadFrom(). Block NotFoind - Exit !\n"; return false) local bSrc = block as stringstream while strExtractPair bSrc &s &e do ( AddPair cdsPairs s e --format "%..%" s e ) ) else if strCheck pSrc "complement" then ( --format "complement\t\t\t" if strExtractPair pSrc &s &e then ( complement = true cdsPairs = #() --SetLength cdsPairs 0 AddPair cdsPairs s e --format "%..%" s e ) ) else ( --format "NO complement\t\t\t" if strExtractPair pSrc &s &e then ( complement = false ScdsPairs = #() --SetLength cdsPairs 0 AddPair cdsPairs s e --format "%..%" s e ) ) ) --format "\n" ) else if strCheck pSrc " " then ( dneString += strCompress sourceLine --format "Data .. % \n" (strCompress sourceLine) ) -- Progress Bar Update progressUpdate (100.0 * curlen / maxlen) local fCacel = getProgressCancel() if fCacel do ( fStop = true; format "while:% loops. fCacel:% \n" i fCacel;) ) -- while end --format "\n\nEnd While..\n" --format "cdsPairs.count = % \n" cdsPairs.count --print cdsPairs if cdsPairs.count == 0 then fDNESequence = dneString else ( fDNESequence = "" for i = 1 to (cdsPairs.count ) do ( --with cdsPairs[s] do local s = cdsPairs[i].s local e = cdsPairs[i].e --+ copy(dneString, sequenceStart, sequenceEnd-sequenceStart+1); --format "cdsPairs[%] s:% e:% ..\n" i s e fDNESequence += substring dneString s (e - s + 1) ) ) --format "\nfDNESequence = \"%\" \n" fDNESequence if complement then ( Invert() Reverse() ) -- ProgressEnd() --format "ProgressEnd()\n" progressEnd() ) Catch (false) --format "\n-- Loading OK !\n" (true) ), -- function MakeGroupSequence: string; fn MakeGroupSequence =( ConvertToGroups() local s = "" for i in fDNEGroupsSequence do s += ("0" + i as string) (s) ), -- function MakeTarget: string; fn MakeTarget =( if fTarget == "" then ( --format "\n-- Start MakeTarget ! --------\n" local s = fDNESequence as stringstream local findTM = for i in Source_Target_Map collect i.src /* format "fDNESequence:\n" print s format "findTM = %\n" findTM format "findTM.count = %\n" (findTM.count) */ local i = 0 -- ProgressStart while not eof s do ( i +=1 local t = readChars s 3 errorAtEof:false --format " -- While %: t=% ------\n" i t if t == undefined do continue local fi = findItem findTM (t as name) if fi > 0 do( fTarget += Source_Target_Map[fi].target --format "findIndex:%\t .target = \"%\"\n" fi (Source_Target_Map[fi].target) ) --ProgressRun (FProgressTotalSize-(e-p) / 3) ) -- ProgressEnd() ) --format "\n-- Test fAtomsSequence[1].n1 = %\n" fAtomsSequence[1].n1 --print fAtomsSequence[1] local ss = "" ss += fTarget + "\n" ss += "----------------------------------\n" ss += fDNESequence + "\n" ss += "----------------------------------\n" ss += MakeGroupSequence() --format "\n%\n\n--- MakeTarget() END OK.\n" ss --format "\n-- Test fAtomsSequence[1].n1 = %\n" fAtomsSequence[1].n1 --print fAtomsSequence[1] (ss) ), -- function MakeTS: string; fn MakeTS =( --format "-- Start MakeScript ! --------------------------------------\n" MakeAtoms() --format "-- MakeAtoms() = OK.\n" --format "\n-- Test fAtomsSequence[1].n1 = %\n" fAtomsSequence[1].n1 --print fAtomsSequence[1] MakeTarget() --format "-- MakeTarget() = OK.\n" local DecimalSeparator = "." local ss = "" -- ProgressStart -- ATOM 1360 CA CYS 48 21.690 28.114 17.923 1.00 6.00 3 1SN3 447 -- ATOM 152 CG1BVAL A 25 30.805 18.788 57.449 0.72 15.11 A1 C -- " _" _" "" _"" "___" " " " " "______" " " -- 123456 1234 234 2345 112341 123456781234567812345678123456123456 12341212 -- 12345678901234567890123456789012345678901234567890123456789012345678901234567890 -- 1 2 3 4 5 6 7 8 --print fAtomsSequence.count --print fAtomsSequence --format "-- Start For i = i to fAtomsSequence.count do -------------- \n" for i = 1 to fAtomsSequence.count do ( --format "-- for i = % ---\n" i local p = fAtomsSequence[i].p local n1 = fAtomsSequence[i].n1 local ch1 = fAtomsSequence[i].ch1 local ch2 = fAtomsSequence[i].ch2 local ch3 = fAtomsSequence[i].ch3 local ami = fAtomsSequence[i].ami --format "fAtomsSequence[i:%] = %\n" i (fAtomsSequence[i]) local s = "ATOM " -- 6 "ATOM " s += " " -- 1 Space s += strInteger (i) 4 -- 4 serial Atom serial number. s += " " -- 2 Space s += ch1+ch2+ch3 -- 3 name Atom name. s += " " -- 1 altLoc Alternate location indicator. s += (Ami as string) -- 3 resName Residue name. s += " " -- 1 Space s += "A" -- 1 chainID Chain identifier. s += strInteger (n1) 4 -- 4 resSeq Residue sequence number. s += " " -- 1 iCode Code for insertion of residues. s += " " -- 3 Space s += strReal p.x 8 3 align:on -- 8 X Orthogonal coordinates for X in Angstroms. s += strReal p.y 8 3 align:on -- 8 X Orthogonal coordinates for X in Angstroms. s += strReal p.z 8 3 align:on -- 8 X Orthogonal coordinates for X in Angstroms. s += strReal (1.0) 6 2 align:on-- 6 occupancy Occupancy. s += strReal (0.5) 6 2 align:on-- 6 tempFactor Temperature factor. s += " " -- 6 Space s += "A " -- 4 segID Segment identifier, left-justified. --s += " " -- 2 element Element symbol, right-justified. --s += " " -- 2 charge Charge on the atom. ss += s + "\n" --ProgressRun(i) ) --format "-- For End. ---\n" local t = (fTarget as stringstream) local s = "" while not eof t do ( local c = readChars t 60 errorAtEof:false if c != undefined do s += "REMARK " + c + "\n" ) local txt = "PFRMAT TS\n" txt += "TARGET T00xx\n" txt += "AUTHOR 4236-1297-6301\n" txt += "REMARK Predictor remarks. See DEMO:\n" txt += "REMARK http://ftp.decsy.ru/nanoworld/DATA/IMAGES/SLIDES/990709/demo.htm\n" txt += "REMARK\n" txt += "REMARK Target sequence ("+(fTarget.count as string)+" acids)\n" txt += s txt += "REMARK\n" txt += "METHOD Method description\n" txt += "METHOD The strong correlation dependence of spatial structure\n" txt += "METHOD of the protein from its nucleotide sequence was\n" txt += "METHOD theoretically predicted by physical modelling,\n" txt += "METHOD experimentally discovered and statistically confirmed.\n" txt += "METHOD In the process of biosynthesis the third nucleotide of\n" txt += "METHOD the codon controls the orientation of the amino acid\n" txt += "METHOD forming the concrete spatial isomer that is the\n" txt += "METHOD conformation of the protein molecule cutting off\n" txt += "METHOD competition ways of the forming of 2D and 3D structures.\n" txt += "METHOD On this base the computer program \"Pikotechnology\" for\n" txt += "METHOD the prediction of 2D structure of the protins on their\n" txt += "METHOD nucleotide sequence was created.\n" txt += "MODEL 1\n" txt += "PARENT N/A 1\n" txt += ss txt += "TER\n" txt += "END\n" (txt) ), -- function MakeSS: string; --fn MakeSS =( --), -- function MakeRR: string; --fn MakeRR =(), -- function MakeSSHtml: string; --fn MakeSSHtml =(), -- function MakeScript: string; fn MakeScript =( local x0,y0,z0,phi,z1,y1,x1,x2,y2,x3,z2,y3,z3 local i = 0 local group = 0 local group1 = 0 local grup1 = "" local grup2 = "" local s1 = "" local s2 = "" local s3 = "" local s4 = "" local cl1 = "" local cl2 = "" local ss = "" -- TStringList; --local color local d = 3 -- Decemal Accuracy -- ss := TStringList.Create; --try ( --format "-- Start MakeScript ! --------------------------------------\n" /* ss += "-- Created by: NanoWorld laboratory [nanoworld@bigfoot.com]\n" ss += "-- http://ftp.decsy.ru/nanoworld/index.htm\n" ss += "-- http://nanoworld.narod.ru\n" ss += "--\n" ss += "undo off (\n" ss += "a = #()\n" ss += "b = #()\n" ss += "num = 12\n" ss += "r = 0.99\n" ss += "alfak = 360 / num\n" ss += "for i = 1 to num do (\n" ss += "alfa = i * alfak\n" ss += "a[i] = [r * cos(alfa),r * sin(alfa),0]\n" ss += "if (i > (num-1)) then b[i] = [2,num,1] else if (i > (num-2)) then b[i] = [1,num-1,num] else b[i] = [i+2,i,i+1])\n" ss += "m0 = torus radius1:0.9 radius2:0.1 segs:15 sides:5 position:[0,0,0] pivot:[0,0,-1.41] wirecolor:[255,0,0]\n" ss += "m = copy m0 pivot:[0,0,-1.41] wirecolor:[0,0,255]\n" ss += "rotate m 70.54 [1,0,0] --Rx 70.54\n" ss += "m1 = copy m pivot:[0,0,0] wirecolor:[0,0,255]\n" ss += "rotate m1 120 [0,0,1] --Rz 120\n" ss += "m2 = copy m1 pivot:[0,0,0] wirecolor:[0,0,255]\n" ss += "rotate m2 120 [0,0,1] --Rz 120\n" ss += "m3 = copy m2 pivot:[0,0,0] wirecolor:[255,0,0]\n" ss += "m3.pivot = [0,0,0]\n" ss += "rotate m3 60 [0,0,1] --rz 60\n" ss += "m3.pivot = [0,0,-1.41]\n" ss += "rotate m3 180 [0,1,0] --ry 180\n" ss += "m4 = copy m3 pivot:[0,0,0] wirecolor:[255,0,0]\n" ss += "rotate m4 120 [0,0,1] --rz 120\n" ss += "rotate m4 120 [0,0,1] --Rz 120\n" ss += "m5 = copy m4 pivot:[0,0,0] wirecolor:[0,0,255]\n" ss += "rotate m5 -120 [0,0,1] --rz -120\n" ss += "m5.pivot = [0,0,-1.41]\n" ss += "rotate m5 -70.54 [1,0,0] --Rx -70.54\n" ss += "zd1=-1.41\n" ss += "m100 = copy m0 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m10 = copy m pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m11 = copy m1 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m12 = copy m2 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m13 = copy m3 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m14 = copy m4 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m15 = copy m5 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "rotate m100 180 [0,1,0]\n" ss += "rotate m10 180 [0,1,0]\n" ss += "rotate m11 180 [0,1,0]\n" ss += "rotate m12 180 [0,1,0]\n" ss += "rotate m13 180 [0,1,0]\n" ss += "rotate m14 180 [0,1,0]\n" ss += "rotate m15 180 [0,1,0]\n" ss += "rotate m100 180 [1,0,0]\n" ss += "rotate m10 180 [1,0,0]\n" ss += "rotate m11 180 [1,0,0]\n" ss += "rotate m12 180 [1,0,0]\n" ss += "rotate m13 180 [1,0,0]\n" ss += "rotate m14 180 [1,0,0]\n" ss += "rotate m15 180 [1,0,0]\n" ss += "m100.pivot = [0,0,-3.82]\n" ss += "rotate m100 -90 [1,0,0] --Sy\n" ss += "m10.pivot = [0,0,-3.82]\n" ss += "rotate m10 -90 [1,0,0]\n" ss += "m11.pivot = [0,0,-3.82]\n" ss += "rotate m11 -90 [1,0,0]\n" ss += "m12.pivot = [0,0,-3.82]\n" ss += "rotate m12 -90 [1,0,0]\n" ss += "m13.pivot = [0,0,-3.82]\n" ss += "rotate m13 -90 [1,0,0]\n" ss += "m14.pivot = [0,0,-3.82]\n" ss += "rotate m14 -90 [1,0,0]\n" ss += "m15.pivot = [0,0,-3.82]\n" ss += "rotate m15 -90 [1,0,0] --r0 0 -3.82 -90 0 0\n" ss += "m200 = copy m0 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m20 = copy m pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m21 = copy m1 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m22 = copy m2 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m23 = copy m3 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m24 = copy m4 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m25 = copy m5 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "rotate m200 -35.27 [1,0,0]\n" ss += "rotate m20 -35.27 [1,0,0]\n" ss += "rotate m21 -35.27 [1,0,0]\n" ss += "rotate m22 -35.27 [1,0,0]\n" ss += "rotate m23 -35.27 [1,0,0]\n" ss += "rotate m24 -35.27 [1,0,0]\n" ss += "rotate m25 -35.27 [1,0,0]\n" ss += "move m200 [0,0,1.7] --R 0 0 -1.41 -35.27 0 0\n" ss += "move m20 [0,0,1.7]\n" ss += "move m21 [0,0,1.7]\n" ss += "move m22 [0,0,1.7]\n" ss += "move m23 [0,0,1.7]\n" ss += "move m24 [0,0,1.7]\n" ss += "move m25 [0,0,1.7] -- mz1.7\n" ss += "m300 = copy m200 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m30 = copy m20 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m31 = copy m21 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m32 = copy m22 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "m33 = copy m23 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m34 = copy m24 pivot:[0,0,zd1] wirecolor:[0,0,255]\n" ss += "m35 = copy m25 pivot:[0,0,zd1] wirecolor:[255,0,0]\n" ss += "move m300 [0,0,2]\n" ss += "move m30 [0,0,2]\n" ss += "move m31 [0,0,2]\n" ss += "move m32 [0,0,2]\n" ss += "move m33 [0,0,2]\n" ss += "move m34 [0,0,2]\n" ss += "move m35 [0,0,2] --Mz2\n" ss += "m200.pivot = [0,0,-3.82]\n" ss += "m20.pivot = [0,0,-3.82]\n" ss += "m21.pivot = [0,0,-3.82]\n" ss += "m22.pivot = [0,0,-3.82]\n" ss += "m23.pivot = [0,0,-3.82]\n" ss += "m24.pivot = [0,0,-3.82]\n" ss += "m25.pivot = [0,0,-3.82]\n" ss += "m300.pivot = [0,0,-3.82]\n" ss += "m30.pivot = [0,0,-3.82]\n" ss += "m31.pivot = [0,0,-3.82]\n" ss += "m32.pivot = [0,0,-3.82]\n" ss += "m33.pivot = [0,0,-3.82]\n" ss += "m34.pivot = [0,0,-3.82]\n" ss += "m35.pivot = [0,0,-3.82]\n" ss += "rotate m200 -45 [1,0,0]\n" ss += "rotate m20 -45 [1,0,0]\n" ss += "rotate m21 -45 [1,0,0]\n" ss += "rotate m22 -45 [1,0,0]\n" ss += "rotate m23 -45 [1,0,0]\n" ss += "rotate m24 -45 [1,0,0]\n" ss += "rotate m25 -45 [1,0,0]\n" ss += "rotate m300 -45 [1,0,0]\n" ss += "rotate m30 -45 [1,0,0]\n" ss += "rotate m31 -45 [1,0,0]\n" ss += "rotate m32 -45 [1,0,0]\n" ss += "rotate m33 -45 [1,0,0]\n" ss += "rotate m34 -45 [1,0,0]\n" ss += "rotate m35 -45 [1,0,0] -- r 0 0 -3.82 -45 0 0\n" ss += "delete m200\n" ss += "delete m20\n" ss += "delete m25\n" ss += "delete m35\n" ss += "select #(m,m0,m1,m2,m3,m4,m5,m100,m10,m11,m12,m13,m14,m15,m21,m22,m23,m24,m300,m30,m31,m32,m33,m34)\n" ss += "macros.run \"Modifier stack\" \"convert_to_Mesh\"\n" ss += "attach m0 m\n" ss += "attach m1 m2\n" ss += "attach m3 m4\n" ss += "attach m5 m100\n" ss += "attach m10 m11\n" ss += "attach m12 m13\n" ss += "attach m14 m15\n" ss += "attach m21 m22\n" ss += "attach m23 m24\n" ss += "attach m300 m30\n" ss += "attach m31 m32\n" ss += "attach m33 m34\n" ss += "attach m0 m1\n" ss += "attach m3 m5\n" ss += "attach m10 m12\n" ss += "attach m14 m21\n" ss += "attach m23 m300\n" ss += "attach m31 m33\n" ss += "attach m0 m3\n" ss += "attach m10 m14\n" ss += "attach m23 m31\n" ss += "attach m0 m10\n" ss += "attach m0 m23\n" --ss += "obj=copy m0 pivot:[0,0,0] wirecolor:[255,0,0]\n" ss += "obj = copy m0 pivot:[-1.2,2.0,-4.4] wirecolor:[0,0,255]\n" ss += "delete m0\n" ss += "move obj [1.2,-2.0,4.4]\n" ss += "rotate obj 30 [1,0,0]\n" ss += "rotate obj 300 [0,1,0]\n" ss += "rotate obj 115 [0,0,1]\n" ss += " bel = mesh vertices: #([0,0,1], [0,-1,0], [-1,-1,0]) \\\n" ss += " faces: #([1,3,2], [1,2,3], [2,3,1])\n" -- ss += "rotate m0 135[0,0,1]\n" ss +="\n\n\n" ss +="------------------------------------\n" ss +="-- Header ok..\n" ss +="------------------------------------\n\n" */ --format "Header ok..\n" -- ProgressStart ('Making 3D Max Script ', length(fDNEGroupsSequence)); -- -------------------------------------------------------------------- -- process max Script -- -------------------------------------------------------------------- local fSegs = 8 local fSides = 5 local fSphereSegs = 2 local fLineSides = 6 fSegs = GeomQuality[f_Quality][1] fSides = GeomQuality[f_Quality][2] fSphereSegs = GeomQuality[f_Quality][3] fLineSides = GeomQuality[f_Quality][4] if buildCATrace != undefined and f_CATrace do buildCATrace fAtomsTM lineSides:fLineSides gc() -- markCenterAtoms if markCenterAtoms != undefined and f_WireAtoms do markCenterAtoms fAtomsSequence sphereSegs:fSphereSegs lineSides:fLineSides gc() --format "Call ringAtoms aAtomsTM amiOn:% offSocket:% single:%\n" f_Radical f_ConnectSocket f_Single if ringAtoms != undefined and f_RingAtoms do ringAtoms fAtomsTM amiOn:f_Radical single:f_Single offSocket:(not f_ConnectSocket) segs:fSegs sides:fSides gc() return ("") --format "fDNEGroupsSequence.count = %\n" fDNEGroupsSequence.count --format "fDNEGroupsSequence = %\n\n" fDNEGroupsSequence for i = 1 to (fDNEGroupsSequence.count ) do ( --format "-- For i = % ----\n" i ss += "--- GroupsSeq "+ (i as string) + "\n" ss += "obj1 =copy obj pivot:[0,0,0] wirecolor:[0,0,255]\n" /* color=round (i/fDNEGroupsSequence.count*255) -- ss += "move obj [x[i],y[i],z[i]]\n" -- str(color,cl1); -- str(255-color,cl2)*/ -- ss += "m2 = copy m0 pivot:[0,0,0] wirecolor:[0,0,255]\n" z0 = 2.4 y0 = .0 x0 = 4.4 phi = (atan (z0/x0)) z1 = (sqrt ((sqr z0) + sqr x0)) * sin (-Angles_For_Script[i].y + phi) x1 = (sqrt ((sqr z0) + sqr x0)) * cos (-Angles_For_Script[i].y + phi) y1 = y0 phi = 90. --{arctan(x1/y1)*180/pi}90 -- (atan (x1/y1)) y2 = (sqrt ((sqr x1) + sqr y1)) * cos (-Angles_For_Script[i].z + phi) x2 = (sqrt ((sqr x1) + sqr y1)) * sin (-Angles_For_Script[i].z + phi) z2 = z1 Coordinat_For_Script[i] = [-x2, -y2, -z2] local s1 = "" local p = fAtomsSequence[i].p --ss += "(local l=.1; dummy pos:"+(p as string)+" scale:[l,l,l])\n" s1 = strReal Angles_For_Script[i].y 8 d ss += "rotate obj1 "+s1+" [0,1,0]\n" s1 = strReal Angles_For_Script[i].z 8 d ss += "rotate obj1 "+s1+" [0,0,1]\n" -- s1 = str(Angles_For_Script[i].x:4:0,s1) -- ss += "rotate m2 "+s1+" [1,0,0]\n" -- /ss += " bel=copy bel1 pivot:[0,0,0] wirecolor:[0,0,255]\n" ss += "attach bel obj1\n" -- ss += "delete bel1\n" s1 = strReal (-Coordinat_For_Script[i].x) 8 d s2 = strReal (-Coordinat_For_Script[i].y) 8 d s3 = strReal (-Coordinat_For_Script[i].z) 8 d -- ss += "move obj ["+s1+","+s2+","+s3+"]\n" ss += "bel.pivot=["+s1+","+s2+","+s3+"]\n" s1 = strReal (Coordinat_For_Script[i].x) 8 d s2 = strReal (Coordinat_For_Script[i].y) 8 d s3 = strReal (Coordinat_For_Script[i].z) 8 d ss += "move bel ["+s1+","+s2+","+s3+"]\n" s4 = strReal (65 - Coordinat_For_Script[i].y) 8 d -- ss += "rotate bel1 "+s4+" [1,0,0]\n" s1 = strReal ( 30 - Angles_For_Script[i].z) 8 d ss += "rotate bel "+s1+" [0,0,1]\n" s1 = strReal ( -60 - Angles_For_Script[i].y) 8 d ss += "rotate bel "+s1+" [0,1,0]\n" ss += "\n" -- ss += "delete bel\n" --ProgressRun(i) ) --format "\n -- For OK ! ----\n" -- Finalize(Angles_For_Script); -- Finalize(Coordinat_For_Script); --Angles_For_Script = #() --Coordinat_For_Script = #() -- ss += "delete m0\n" ss += "delete obj\n" ss += "--*.ms file\n" ss += "select #(bel)\n" ss += "macros.run \"Modifier Stack\" \"Convert_to_Mesh\"\n" ss += "subobjectLevel = 3\n" group1 = 1 group = round (3600.*(fDNEGroupsSequence.count - 1)/20.) for i = 1 to 20 do -- for i = 1 to (fDNEGroupsSequence.count - 1) do ( color = round (i / 20. * 255.) cl1 = color as string cl2 = (255 - color) as string grup1 = group1 as string group1 += group grup2 = group1 as string s1 = i as string ss += "select bel.faces[#{"+grup1+".."+grup2+"}]\n" ss += "meditMaterials["+s1+"].diffuse = color "+cl2+" 0 "+cl1+"\n" ss += "bel.material = meditMaterials["+s1+"]\n" ) ss += "subobjectLevel = 0\n" ss += ")\n" --Result = ss.Text; --execute ss --ProgressEnd() ss --) --Catch (ss = ""; gc(); ss) ) -- procedure MakeMIDIFile(const FileName: string; Instr: TMIDIInstrument; tempo: integer; transponse: shortint); --fn MakeMIDIFile FileName Instr tempo transponse transponse =(), ) -- End TDNEFile -- ---------------------------------------------------- -- struct TSourceTargetMapItem -- ---------------------------------------------------- -- Insert ... -- --------------------------- _c = 1 _a = 2 _t = 3 _g = 4 -- {1..5} x y z DNE_Angles = #( -- -- Kushelev's tuning... -- -- alpha-helix Point3 (-24.0000) (-10.89167) 92.000 , -- 10 30 97 -- -- beta-helix Point3 180.00 (83.0000) 120.000 , -- 0 120 120 -- -- pi-helix Point3 60.000 (0.0000) 60.000 , -- 0 30 -60 -- -- 310-helix Point3 (-45.0000) (15.0000) 110.000 , -- 10 30 80 -- -- Single-alpha Point3 (-45.0000) (15.0000) 110.000 ) -- 10 30 89 -- in original not this string Script_Angles = #( Point3 0 20 20 , -- 0 -5 -60 Point3 0 20 145 , -- 0 -5 141 Point3 0 20 265 , -- 0 -5 21 Point3 0 20 30 , -- 0 -5 -138 Point3 0 20 25 ) -- 0 -5 99 -- in original not this string Script_Coordinats = #( Point3 -2 -4 2.5 , Point3 4.4 0.4 2.5 , Point3 -2.4 3.7 2.5 , Point3 -2 -4 2.5 , Point3 -2 -4 2.5 ) -- [4,4,4] DNE_Groups = #( #(#(1,2,3,4), #(1,3,3,1), #(1,2,3,4), #(1,2,3,4) ), #(#(1,2,3,4), #(1,3,3,1), #(1,2,3,1), #(1,3,3,1) ), #(#(1,2,3,4), #(1,1,3,1), #(1,3,3,1), #(1,1,3,1) ), #(#(1,2,3,4), #(1,3,3,1), #(1,2,3,4), #(1,2,3,4) ) ) -- [4,4,4] DNE_AMI =#( #( #("PRO", -- ccc "PRO", -- cca "PRO", -- cct "PRO"), -- ccg #("HIS", -- cac "GLN", -- caa "HIS", -- cat "GLN"), -- cag #("LEU", -- ctc "LEU", -- cta "LEU", -- ctt "LEU"), -- ctg #("ARG", -- cgc "ARG", -- cga "ARG", -- cgt "ARG")),-- cgg #(#("THR", -- acc "THR", -- aca "THR", -- act "THR"), -- acg #("ASN", -- aac "LYS", -- aaa "ASN", -- aat "LYS"), -- aag #("ILE", -- atc "ILE", -- ata "ILE", -- att "MET"), -- atg #("SER", -- agc "ARG", -- aga "SER", -- agt "ARG")),-- agg #(#("SER", -- tcc "SER", -- tca "SER", -- tct "SER"), -- tcg #("TYR", -- tac "TKD", -- taa "TYR", -- tat "TKD"), -- tag #("PHE", -- ttc "LEU", -- tta "PHE", -- ttt "LEU"), -- ttg #("CYS", -- tgc "TKD", -- tga "CYS", -- tgt "TRP")),-- tgg #(#("ALA", -- gcc "ALA", -- gca "ALA", -- gct "ALA"), -- gcg #("ASP", -- gac "GLU", -- gaa "ASP", -- gat "GLU"), -- gag #("VAL", -- gtc "VAL", -- gta "VAL", -- gtt "VAL"), -- gtg #("GLY", -- ggc "GLY", -- gga "GLY", -- ggt "GLY")) -- ggg ) -- Atoms =================================================== -- include "$scripts\\Nanoworld\\Script\\Test\\AtomsArray.ms" -- Insert ... -- Atoms =================================================== -- Union struct TCDSPair ( s = 0, e = 0 -- sequenceStart = 0, -- sequenceEnd = 0 ) -- array of TCDSPair; TCDSPairs = #() -- include "$scripts\\Nanoworld\\Script\\Test\\Function_01_R.ms" -- Atoms =================================================== Atoms_Common = #( TAtom p:[ 27.85, -19, -26.5] ch1:"N" ch2:" " ch3:" ", TAtom p:[ 9.7, -14.4, 0 ] ch1:"C" ch2:"A" ch3:" " con:#(3,5), TAtom p:[ -23.5, -21.0, 0 ] ch1:"C" ch2:" " ch3:" ", TAtom p:[ -44.5, -11.6, 0 ] ch1:"O" ch2:" " ch3:" " con:#()) -- TAtom p:[ 23.1, 9.7, 31.3] ch1:"N" ch2:" " ch3:" ", -- TAtom p:[ -20.3, -24.6, 0 ] ch1:"C" ch2:" " ch3:" ", -- TAtom p:[ -45.5, -10.7, 0 ] ch1:"O" ch2:" " ch3:" " con:#()) Atoms_Lys = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 5, 36.4, 21.3] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ 24.7, 31.1, 44] ch1:"C" ch2:"D" ch3:" ", TAtom p:[ 39.3, 4.6, 47.7] ch1:"C" ch2:"E" ch3:" ", TAtom p:[ 35.8, -19.2, 29] ch1:"N" ch2:"Z" ch3:" ") Atoms_Asn = #( TAtom p:[ -1.9, 15.8, 0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 15.7, 16.5, 28.9] ch1:"C" ch2:"G" ch3:" " con:#(3,4,0), TAtom p:[ 29.1, 4.2, 43] ch1:"O" ch2:"D" ch3:"1" con:#(), TAtom p:[ 1, 46.7, 24] ch1:"N" ch2:"D" ch3:"2") Atoms_Thr = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" " con:#(2,3,0), TAtom p:[ 16, 27.9, 26.4] ch1:"O" ch2:"G" ch3:"1" con:#(), TAtom p:[ -29.8, 24.6, -0] ch1:"C" ch2:"G" ch3:"2") Atoms_Arg_bottom = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 5, 36.4, 21.3] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ 24.7, 31.1, 44] ch1:"C" ch2:"D" ch3:" ", TAtom p:[ 37.6, -3.6, 41.3] ch1:"N" ch2:"E" ch3:" ", TAtom p:[ 66.7, 13.6, 41.3] ch1:"C" ch2:"Z" ch3:" " con:#(6,7,0), TAtom p:[ 76.1, 34.6, 41.3] ch1:"N" ch2:"H" ch3:"1" con:#(), TAtom p:[ 73.4, -19.6, 41.3] ch1:"N" ch2:"H" ch3:"2") Atoms_Ser_teta = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ -28.9, 23.2, -0.3] ch1:"O" ch2:"G" ch3:" ") Atoms_Ile = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 16, 27.9, 26.4] ch1:"C" ch2:"G" ch3:"1" con:#(4), TAtom p:[ -29.8, 24.6, -0] ch1:"C" ch2:"G" ch3:"2" con:#(1), TAtom p:[ 30.8, 4.3, 40.6] ch1:"C" ch2:"D" ch3:"1" ) Atoms_Met = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ -28.9, 23.2, -0.3] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ -50.1, 49.9, -0.3] ch1:"S" ch2:"D" ch3:" ", TAtom p:[ -67.1, 19.6, -0.3] ch1:"C" ch2:"E" ch3:" ") Atoms_Gln = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 7.5, 28.3, 27.8] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ -25.4, 33.3, 33.9] ch1:"C" ch2:"D" ch3:" " con:#(4,5,0), TAtom p:[ -46.7, 28.8, 26.7] ch1:"O" ch2:"E" ch3:"1", TAtom p:[ -7, 49.3, 57.6] ch1:"N" ch2:"E" ch3:"2") Atoms_His = #( TAtom p:[ 10.5, 15.5, 0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 2.2, 37, 0] ch1:"C" ch2:"G" ch3:" " con:#(3,4), TAtom p:[ -5.9, 58.5, 0] ch1:"N" ch2:"D" ch3:"1" con:#(6), TAtom p:[ -27.4, 50.2, 0] ch1:"C" ch2:"D" ch3:"2", TAtom p:[ -19.2, 28.8, 0] ch1:"N" ch2:"E" ch3:"2", TAtom p:[ -10.9, 7.3, 0] ch1:"C" ch2:"E" ch3:"1") Atoms_Pro = #( /* TAtom p:[ 8.4, 23.3, 0 ] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 26.7, 34.7, 34] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ 39.9, 6.3, 53.5] ch1:"C" ch2:"D" ch3:" ") */ -- Pro = Glu TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 7.5, 28.3, 27.8] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ -25.4, 33.3, 33.9] ch1:"C" ch2:"D" ch3:" " con:#(4,5,0), TAtom p:[ -46.7, 28.8, 26.7] ch1:"O" ch2:"E" ch3:"1", TAtom p:[ -7, 49.3, 57.6] ch1:"O" ch2:"E" ch3:"2") Atoms_Arg_top = #( TAtom p:[ -1.8, 15.7, 0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 5, 36.4, 21.3] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ 24.7, 31.1, 44] ch1:"C" ch2:"D" ch3:" ", TAtom p:[ 37.6, -3.6, 41.3] ch1:"N" ch2:"E" ch3:" ", TAtom p:[ 19.9, -4.3, 70.3] ch1:"C" ch2:"Z" ch3:" " con:#(6,7,0), TAtom p:[ 6.5, 7.9, 84.4] ch1:"N" ch2:"H" ch3:"1" con:#(), TAtom p:[ 34.6, -34.5, 65.4] ch1:"N" ch2:"H" ch3:"2") Atoms_Leu_lambda = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 8.5, 30.1, 26.4] ch1:"C" ch2:"G" ch3:" " con:#(3,4,0), TAtom p:[ -16.8, 39.4, 43.7] ch1:"C" ch2:"D" ch3:"1", TAtom p:[ 26.1, 55.9, 17.1] ch1:"C" ch2:"D" ch3:"2") Atoms_Glu = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 7.5, 28.3, 27.8] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ -25.4, 33.3, 33.9] ch1:"C" ch2:"D" ch3:" " con:#(4,5,0), TAtom p:[ -46.7, 28.8, 26.7] ch1:"O" ch2:"E" ch3:"1", TAtom p:[ -7, 49.3, 57.6] ch1:"O" ch2:"E" ch3:"2") Atoms_Asp = #( TAtom p:[ -1.9, 15.8, 0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 15.7, 16.5, 28.9] ch1:"C" ch2:"G" ch3:" " con:#(3,4,0), TAtom p:[ 29.1, 4.2, 43] ch1:"O" ch2:"D" ch3:"1", TAtom p:[ 1, 46.7, 24] ch1:"O" ch2:"D" ch3:"2") Atoms_Ala = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ") Atoms_Val = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" " con:#(2,3,0), TAtom p:[ 16, 27.9, 26.4] ch1:"C" ch2:"G" ch3:"1", TAtom p:[ -29.8, 24.6, -0] ch1:"C" ch2:"G" ch3:"2") Atoms_Tyr = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" " con:#(7), TAtom p:[ 0.4, 42.7, 21] ch1:"C" ch2:"D" ch3:"2", TAtom p:[ 2.2, 60.8, 35] ch1:"C" ch2:"E" ch3:"2", TAtom p:[ 14.7, 59.2, 54.3] ch1:"C" ch2:"Z" ch3:" ", TAtom p:[ 25.5, 39.6, 59.4] ch1:"C" ch2:"E" ch3:"1", TAtom p:[ 23.7, 21.5, 45.4] ch1:"C" ch2:"D" ch3:"1", TAtom p:[ 11.2, 23, 26.1] ch1:"C" ch2:"G" ch3:" " con:#(2), TAtom p:[ 27.8, 66.6, 80.4] ch1:"O" ch2:"H" ch3:" " con:#(4)) Atoms_Ser_lambda = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 8.5, 30.1, 26.4] ch1:"O" ch2:"G" ch3:" ") Atoms_Cys = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 8.5, 30.1, 26.4] ch1:"S" ch2:"G" ch3:" ") Atoms_Trp = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 10.8, 28, 20.3] ch1:"C" ch2:"G" ch3:" " con:#(3,4), TAtom p:[ 24.6, 33.3, 37.9] ch1:"C" ch2:"D" ch3:"1" con:#(5), TAtom p:[ 38.4, 38.6, 55.5] ch1:"C" ch2:"D" ch3:"2" con:#(6,7), TAtom p:[ 16.3, 54.8, 37.9] ch1:"N" ch2:"E" ch3:"1", TAtom p:[ 21.9, 81.5, 55.5] ch1:"C" ch2:"E" ch3:"2" con:#(8), TAtom p:[ 8.1, 76.2, 37.9] ch1:"C" ch2:"E" ch3:"3" con:#(9), TAtom p:[ -5.6, 70.9, 20.3] ch1:"C" ch2:"Z" ch3:"2" con:#(10), TAtom p:[ 2.5, 49.5, 20.3] ch1:"C" ch2:"Z" ch3:"3", TAtom p:[ 30.1, 60.1, 55.5] ch1:"C" ch2:"H" ch3:"2") Atoms_Leu_teta = #( TAtom p:[ 2.2, 16.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ -28.9, 23.2, -0.3] ch1:"C" ch2:"G" ch3:" " con:#(3,4,0), TAtom p:[ -35.5, 40.3, 26.5] ch1:"C" ch2:"D" ch3:"1", TAtom p:[ -35.5, 40.3, -26.5] ch1:"C" ch2:"D" ch3:"2") Atoms_Phe = #( TAtom p:[ -1.8, 15.7, -0] ch1:"C" ch2:"B" ch3:" ", TAtom p:[ 0.4, 42.7, 21] ch1:"C" ch2:"G" ch3:" ", TAtom p:[ 2.2, 60.8, 35] ch1:"C" ch2:"D" ch3:"1", TAtom p:[ 14.7, 59.2, 54.3] ch1:"C" ch2:"E" ch3:"1", TAtom p:[ 25.5, 39.6, 59.4] ch1:"C" ch2:"Z" ch3:" ", TAtom p:[ 23.7, 21.5, 45.4] ch1:"C" ch2:"E" ch3:"2", TAtom p:[ 11.2, 23, 26.1] ch1:"C" ch2:"D" ch3:"2" con:#(2)) -- Atoms =================================================== AtomsName = #("Common", "Lys", "Asn", "Thr", "Arg bottom", "Ser teta", "Ile", "Met", "Gln", "His", "Pro", "Arg top", "Leu lambda", "Glu", "Asp", "Ala", "Val", "Tyr", "Ser lambda", "Cys", "Trp", "Leu teta", "Phe") AtomsIndex = #( Atoms_Common, Atoms_Lys, Atoms_Asn, Atoms_Thr, Atoms_Arg_bottom, Atoms_Ser_teta, Atoms_Ile, Atoms_Met, Atoms_Gln, Atoms_His, Atoms_Pro, Atoms_Arg_top, Atoms_Leu_lambda, Atoms_Glu, Atoms_Asp, Atoms_Ala, Atoms_Val, Atoms_Tyr, Atoms_Ser_lambda, Atoms_Cys, Atoms_Trp, Atoms_Leu_teta, Atoms_Phe) global strCheck fn emin val vmin = if val < vmin then vmin else val fn emax val vmax = if val > vmax then vmax else val fn clamp val vmin vmax = if val < vmin then vmin else (if val > vmax then vmax else val) fn rclamp val vmin vmax rval = if val < vmin then rval else (if val > vmax then rval else val) -- function AmiToGroup (c: Char): TGroup; fn AmiToGroup c = case c as name of ( #c: 1 #a: 2 #t: 3 #g: 4 default: 1 ) -- stringstream -- str = "radius \n\r 10.0" as stringstream -- template = "radius" fn strCheck str template =( local pos = filePos str result = ((readChars str template.count errorAtEof:false) == template) if result then skipSpace str -- !max5 else seek str pos result ) fn readLocation file = ( local sourceLine = readLine file local locStr = substring sourceLine 22 80 local str = trimRight locStr (str) ) -- readBlock ("r(w((0)e(e)d)f)zza" as stringstream) fn readBlock str files: block: recurse: =( local fBlock = "()" local fFiles = false local f = undefined local fRecurse = 0 local pos,pos1,pos2 local fpos local rd = "" local txt = "" if files != unsupplied do f = files if block != unsupplied do fBlock = block if recurse != unsupplied do fRecurse = recurse if f != undefined do fFiles = true -- Find Start "(" pos1 = filePos str local sk = skipToString str fBlock[1] if sk == undefined then ( seek str pos1; return undefined) fRecurse += 1 -- Find End Block ")" or Start Recurse Block local fStop = true if fFiles do (fpos = filePos f; fStop = eof f) --format "\nfFiles: %\n" fFiles do ( if fFiles do ( if eof str do ( local locLine = readLocation f --format "Read locLine: \"%\"\n" locLine str = locLine as stringstream fStop = eof f ) ) pos1 = filePos str rd = readDelimitedString str fBlock pos2 = filePos str local fNum = 0 local fFind = false local chPos = pos2 - 1 if chPos >= pos1 then ( seek str chPos if (fNum = findString fBlock (readChars str 1 errorAtEof:false)) != undefined do fFind = true ) --format "\nfStop: %\n" fStop --format "fFind: % fNum: % rd:\"%\"\n" fFind fNum rd if fFind then ( if fNum == 1 then ( -- Recurse Call txt += rd seek str chPos local rrd = readBlock str files:f block:fBlock if rrd == undefined do return undefined txt += fBlock[1] + rrd + fBlock[2] if not eof str do fStop = false ) else ( -- Find End fStop = true fRecurse -= 1 txt += rd ) ) else ( -- Not Find if fStop do return undefined txt += rd ) ) while (not fStop) (txt) ) -- function strExtractPair(var str: PChar; var s,e: integer): boolean; -- читает 1..23 в "s" - 1 в "e" - 23 = s..e fn strExtractPair str &s &e =( if eof str do return false local pos = filePos str -- Skip "," while (readChars str 1 errorAtEof:false) == "," do pos +=1 seek str pos -- Skip to num while not eof str and (findString "0123456789\n\r.," (readChars str 1 errorAtEof:false)) == undefined do pos +=1 seek str pos local start = pos -- read num local c = "" local num = "" while (findString "0123456789" (c = readChars str 1 errorAtEof:false)) != undefined do (pos +=1; num +=c) seek str pos s = num as integer if s == undefined then return false -- Skip . while not eof str and (findString "0123456789\n\r," (readChars str 1 errorAtEof:false)) == undefined do pos +=1 seek str pos num = "" while (findString "0123456789" (c = readChars str 1 errorAtEof:false)) != undefined do (pos +=1; num +=c) --seek str (pos+1) e = num as integer if e == undefined then return false return true ) fn fileGetSize FileName =( local f = openFile FileName seek f #eof local pos = filepos f close f return pos ) -- function strCompress(const src: string): string; -- string fn strCompress str = ( local txt = "" for i = 1 to str.count where (findString "agctAGCT" str[i]) != undefined do txt +=str[i] return txt ) -- stream nextCompress fn nextCharCompress str =( while not eof str and (findString "agctAGCT" (c = readChars str 1 errorAtEof:false)) == undefined do () if eof str then undefined else c ) -- stream strCompress fn strSCompress str =( local pos = filepos str seek str #eof local end = filepos str seek str pos return (strCompress ((readChars str (end - pos) errorAtEof:false) as string)) as stringstream ) -- ======================================================= -- procedure AddPair(var a: TCDSPairs; s,e: integer); fn AddPair a s e = append a (TCDSPair s:s e:e) /* -- procedure CorrectAtom(var p: TVertex); fn CorrectAtom p =( local t = .0 local tCos = .0 local tSin = .0 -- rotareZ -60 tCos = cos -60. --( -60. / 180. * pi) tSin = sin -60. --( -60. / 180. * pi) t = p.x * tCos - p.y * tSin p.y = p.x * tSin + p.y * tCos p.x = t -- rotareX 90 t = p.y * 0 - p.z * 1. p.z = p.y * 1. + p.z * 0 p.y = t -- move [80,9,11] p.x = p.x + 80 p.y = p.y + 9 p.z = p.z + 11 -- rotareZ -14 tCos = cos 14. --( 14. / 180. * pi) tSin = sin 14. --( 14. / 180. * pi) t = p.x * tCos - p.y * tSin p.y = p.x * tSin + p.y * tCos p.x = t -- scale [.03,.03,.03] p.x = p.x * 0.03 p.y = p.y * 0.03 p.z = p.z * 0.03 p ) */ fn CorrectAtom p =( --/* p = p * rotateZMatrix -60 p = p * rotateXMatrix 90 p = p * transMatrix [80,9,11] p = p * rotateZMatrix 14 p = p * scaleMatrix [.03,.03,.03] --*/ --local s = 0.1 --p = p * scaleMatrix [s,s,s] p ) -- ---------------------------------------------------------------- -- formated print float value (Str form PAS) -- ---------------------------------------------------------------- -- strReal (-34.34633) 8 3 -- "-34.346" fn strReal num width decimals align: optimize: =( local fOptimize = false local sSpace = "" local fSpace = false local cSpace = width local fAlign = true -- false = #left; true = #right if optimize != unsupplied and optimize == true do fOptimize = true if align != unsupplied then ( fSpace = true fAlign = case align of ( #left: false #right: true default: true) ) local modNum = (abs num) if modNum < 1e-004 do num = 0. --if modNum > 1e+009 do num = (if num > 0 then 999999999 else -999999999) local strNum = (num as string) local n = strNum as stringstream local i = readDelimitedString n "." local d = "." + readDelimitedString n "" cSpace -= i.count if cSpace < 0 then( fSpace = false cSpace = decimals + 1 width = i.count + cSpace ) if d == ".#INF" or d == ".#IND" or (findString strNum "e") != undefined then ( i = strNum width = if width > i.count then width else i.count cSpace = width - i.count )else( for j = 1 to (decimals + 1 - d.count) do d += "0" decimals = if cSpace > (decimals + 1) then (decimals + 1) else cSpace cSpace -= decimals if fOptimize then ( d = substring d 1 decimals local dc = d.count d = trimright d "0." cSpace += dc - d.count ) i += substring d 1 decimals ) if fSpace then for i = 1 to cSpace do sSpace += " " if fAlign then sSpace + i else i + sSpace ) -- ---------------------------------------------------------------- -- fn round (from PAS) -- ---------------------------------------------------------------- fn round num =( local n = abs num local u = floor n local d = n - u local i local even = mod u 2 local r = .0 if even > 0 then r = 0.4444445 else r = 0.5444445 i = if (r - d) < 0 then 1 else 0 (if num < 0 then -(u + i) else (u + i)) as integer ) -- ---------------------------------------------------------------- -- formated print Integer value -- ---------------------------------------------------------------- -- align:(Default #right) -- space:(Default on ) fn strInteger num width align: space: =( local fullCh = " " local fzero = false local SignCh = "" local Sign = false local sSpace = "" local fSpace = true local cSpace = width local fAlign = true -- false = #left; true = #right if num < 0 do ( Sign = true; SignCh = "-") if align != unsupplied do ( fSpace = true fAlign = case align of ( #left: (if space == unsupplied do space = true ; false) #right: true default: true) ) if space != unsupplied do if space == true then (fzero = false; fullCh = " ") else (fzero = true; fullCh = "0") local n = ((abs num) as string) cSpace -= (n.count + (if Sign then 1 else 0)) if cSpace < 0 then( -- Overflow ! --format "Overflow !\n" fSpace = false cSpace = 0 width = n.count + cSpace ) if fSpace then for i = 1 to cSpace do sSpace += fullCh if fzero and fAlign then sSpace = SignCh + sSpace else n = SignCh + n if fAlign then sSpace + n else n + sSpace ) -- struct TSourceTargetMapItem struct MItem ( target = " ", src = #FFF, midi_note = 0 ) -- {1..64} Source_Target_Map = #( MItem "K" #AAA 66 , MItem "N" #AAC 71 , MItem "K" #AAG 66 , MItem "N" #AAT 71 , MItem "T" #ACA 76 , MItem "T" #ACC 76 , MItem "T" #ACG 76 , MItem "T" #ACT 76 , MItem "R" #AGA 62 , MItem "S" #AGC 81 , MItem "R" #AGG 62 , MItem "S" #AGT 81 , MItem "I" #ATA 72 , MItem "I" #ATC 72 , MItem "M" #ATG 67 , MItem "I" #ATT 72 , MItem "Q" #CAA 67 , MItem "H" #CAC 69 , MItem "Q" #CAG 67 , MItem "H" #CAT 69 , MItem "P" #CCA 81 , MItem "P" #CCC 81 , MItem "P" #CCG 81 , MItem "P" #CCT 81 , MItem "R" #CGA 62 , MItem "R" #CGC 62 , MItem "R" #CGG 62 , MItem "R" #CGT 62 , MItem "L" #CTA 71 , MItem "L" #CTC 71 , MItem "L" #CTG 71 , MItem "L" #CTT 71 , MItem "E" #GAA 67 , MItem "D" #GAC 71 , MItem "E" #GAG 67 , MItem "D" #GAT 71 , MItem "A" #GCA 93 , MItem "A" #GCC 93 , MItem "A" #GCG 93 , MItem "A" #GCT 93 , MItem "G" #GGA 55 , MItem "G" #GGC 55 , MItem "G" #GGG 55 , MItem "G" #GGT 55 , MItem "V" #GTA 79 , MItem "V" #GTC 79 , MItem "V" #GTG 79 , MItem "V" #GTT 79 , MItem "*" #TAA 115, MItem "Y" #TAC 62 , MItem "*" #TAG 115, MItem "Y" #TAT 62 , MItem "S" #TCA 81 , MItem "S" #TCC 81 , MItem "S" #TCG 81 , MItem "S" #TCT 81 , MItem "*" #TGA 115, MItem "C" #TGC 76 , MItem "W" #TGG 62 , MItem "C" #TGT 76 , MItem "L" #TTA 71 , MItem "F" #TTC 67 , MItem "L" #TTG 71 , MItem "F" #TTT 67 ) -- Atoms Rests ============================================= RestMat = #( #( -- Atoms Common ), #( -- Atoms Lys (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [ 0.4373, 0.5749,-0.6915] [ 0.1803,-0.8093,-0.5588] [ 0.881 ,-0.1197, 0.4576] [-2.6319,-2.3328, 2.5001] ), (matrix3 [-0.6151,-0.3696,-0.6963] [ 0.788 ,-0.2639,-0.556 ] [ 0.0217,-0.8908, 0.4536] [-3.8447,-3.4212, 2.4945] ), (matrix3 [-0.6151,-0.3696,-0.6963] [-0.283 , 0.9279,-0.2425] [-0.7358,-0.0478, 0.6754] [-4.9139,-2.2314, 2.8075] ), (matrix3 [ 0.5527,-0.6188, 0.5581] [-0.8241,-0.3065, 0.4763] [-0.1236,-0.7232,-0.6794] [-4.0499,-3.1846, 0.8952] ), (matrix3 [-0.3748, 0.4134, 0.8297] [-0.2884,-0.9026, 0.3194] [-0.881 , 0.1195,-0.4576] [-5.1188,-1.995 , 1.2082] ), (matrix3 [-0.3748, 0.4134, 0.8297] [ 0.9268, 0.1879, 0.325 ] [-0.0215, 0.8908,-0.4537] [-3.9058,-0.9064, 1.2138] ), (matrix3 [ 0.0756,-0.1356,-0.9878] [-0.4775,-0.8746, 0.0835] [ 0.8753,-0.4654, 0.1309] [-2.913 ,-1.0724, 4.0149] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [ 0.138 ,-0.8807,-0.453 ] [ 0.0049,-0.4567, 0.8895] [-4.1415,-1.0602, 5.0857] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [-0.0506, 0.7241,-0.6878] [-0.1284, 0.6782, 0.7235] [-4.3298, 0.5417, 4.8513] ), (matrix3 [ 0.5391,-0.5646, 0.6249] [-0.3985, 0.4826, 0.7798] [-0.7419,-0.6694, 0.0351] [-5.1957,-1.3604, 3.8798] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [-0.3041,-0.3199, 0.8972] [-0.8754, 0.4653,-0.1308] [-5.3841, 0.2412, 3.6455] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [ 0.9267,-0.3321,-0.1755] [-0.0048, 0.4566,-0.8896] [-4.1554, 0.229 , 2.5745] ), (matrix3 [-0.5975,-0.5055,-0.6224] [-0.576 ,-0.2693, 0.7717] [ 0.5578,-0.8196, 0.1302] [-1.7732, 0.528 , 4.3338] ), (matrix3 [-0.788 , 0.5136, 0.3393] [-0.4659,-0.8578, 0.2164] [ 0.4022, 0.0124, 0.9154] [-1.9927, 1.7024, 5.442 ] ), (matrix3 [-0.788 , 0.5136, 0.3393] [-0.224 , 0.274 ,-0.9352] [ 0.5733, 0.813 , 0.1008] [-1.7512, 2.8324, 4.2923] ), (matrix3 [ 0.588 ,-0.4942, 0.6402] [ 0.3505, 0.8691, 0.3489] [-0.7289, 0.0192, 0.6842] [-3.5893, 1.712 , 5.1158] ), (matrix3 [ 0.7975, 0.4861,-0.3571] [ 0.2295, 0.303 , 0.9249] [-0.5578, 0.8196,-0.13 ] [-3.3479, 2.8417, 3.9663] ), (matrix3 [ 0.7975, 0.4861,-0.3571] [ 0.4495,-0.8737,-0.1854] [-0.4022,-0.0126,-0.9154] [-3.1283, 1.667 , 2.8579] ), (matrix3 [-0.9764,-0.2019, 0.076 ] [-0.0264, 0.4617, 0.8865] [ 0.2142,-0.8636, 0.4562] [-0.2379, 1.0284, 3.1698] ), (matrix3 [-0.1901, 0.9717, 0.1394] [-0.4804,-0.216 , 0.8499] [ 0.8561, 0.0946, 0.508 ] [ 0.668 , 2.381 , 3.2429] ), (matrix3 [-0.1901, 0.9717, 0.1394] [-0.6471,-0.0172,-0.7621] [ 0.7382, 0.2351,-0.6321] [ 0.5017, 2.5794, 1.6336] ), (matrix3 [-0.9764,-0.2019, 0.076 ] [-0.1931, 0.6605,-0.7255] [ 0.0963,-0.7231,-0.6839] [-0.4043, 1.2268, 1.5605] ), (matrix3 [ 0.6554,-0.4709, 0.5903] [ 0.749 , 0.505 ,-0.4287] [-0.0962, 0.7232, 0.6838] [-0.6761, 3.2682, 3.491 ] ), (matrix3 [ 0.5111,-0.2988,-0.8058] [ 0.8323, 0.4056, 0.3775] [-0.2141, 0.8637,-0.4561] [-0.8424, 3.4665, 1.8821] ), (matrix3 [ 0.5111,-0.2988,-0.8058] [-0.0754,-0.9495, 0.3042] [-0.8561,-0.0947,-0.5079] [-1.7486, 2.1137, 1.809 ] ) ), #( -- Atoms Asn (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.5489, 0.7844, 0.2885] [ 0.5689,-0.0977,-0.8165] [-1.1917,-2.1318,-1.1513] ), (matrix3 [ 0 , 0 , 1 ] [ 0.9022, 0.4311, 0 ] [-0.4311, 0.9022, 0 ] [-2.6018,-0.7218, 0 ] ), (matrix3 [ 0.6123,-0.6123,-0.5 ] [ 0.5489, 0.7844,-0.2885] [ 0.5689,-0.0977, 0.8165] [-1.1917,-2.1318, 1.1513] ), (matrix3 [ 0.6123,-0.6123,-0.5 ] [-0.5489,-0.7844, 0.2885] [-0.5689, 0.0977,-0.8165] [-2.7961,-1.8561,-1.1513] ), (matrix3 [ 0 , 0 , 1 ] [-0.9022,-0.4311, 0 ] [ 0.4311,-0.9022, 0 ] [-1.386 ,-3.2662, 0 ] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.3535,-0.3535,-0.866 ] [-0.7071,-0.7071, 0 ] [-2.9909,-2.991 , 0 ] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.7071, 0.7071, 0 ] [-0.3535, 0.3535, 0.866 ] [-5.0486,-2.3475, 3.3082] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.0977, 0.5689, 0.8165] [-0.7844,-0.5489, 0.2885] [-5.6562,-3.62 , 2.4939] ), (matrix3 [ 0.9185, 0.3061, 0.25 ] [-0.2744, 0.0388, 0.9608] [-0.2844, 0.9511,-0.1197] [-4.9512,-1.5049, 1.9182] ), (matrix3 [-0.3061,-0.9185, 0.25 ] [-0.6278, 0.3922, 0.6722] [ 0.7155,-0.0488, 0.6967] [-3.5411,-2.915 , 3.0696] ), (matrix3 [-0.3061,-0.9185, 0.25 ] [ 0.6278,-0.3922,-0.6722] [-0.7155, 0.0488,-0.6967] [-5.5591,-2.7771, 1.1046] ), (matrix3 [ 0.9185, 0.3061, 0.25 ] [ 0.2744,-0.0388,-0.9608] [ 0.2844,-0.9511, 0.1197] [-4.149 ,-4.1872, 2.2559] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.7071,-0.7071, 0 ] [ 0.3535,-0.3535,-0.866 ] [-4.0516,-3.3445, 0.866 ] ), (matrix3 [-0.3491,-0.8579, 0.3767] [ 0.0868, 0.3706, 0.9246] [-0.933 , 0.3555,-0.0549] [-3.9861,-0.1143, 2.4394] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [-0.2665, 0.724 , 0.6361] [ 0.067 ,-0.6445, 0.7616] [-2.576 ,-1.5244, 3.5907] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [ 0.2665,-0.724 ,-0.6361] [-0.067 , 0.6445,-0.7616] [-2.765 , 0.2931, 1.4429] ), (matrix3 [-0.3491,-0.8579, 0.3767] [-0.0868,-0.3706,-0.9246] [ 0.933 ,-0.3555, 0.0549] [-1.355 ,-1.1169, 2.5942] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.7566,-0.6371, 0.1463] [-0.2289, 0.4679, 0.8535] [-2.4934, 1.5441, 4.9451] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.4679, 0.2289, 0.8535] [ 0.6371, 0.7566, 0.1463] [-1.2721, 1.9512, 3.9479] ), (matrix3 [-0.3491,-0.8579, 0.3767] [ 0.0868, 0.3706, 0.9246] [-0.933 , 0.3555,-0.0549] [-3.4861, 1.3856, 3.6641] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [-0.2665, 0.724 , 0.6361] [ 0.067 ,-0.6445, 0.7616] [-2.076 ,-0.0244, 4.8155] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [ 0.2665,-0.724 ,-0.6361] [-0.067 , 0.6445,-0.7616] [-2.265 , 1.7931, 2.6676] ), (matrix3 [-0.3491,-0.8579, 0.3767] [-0.0868,-0.3706,-0.9246] [ 0.933 ,-0.3555, 0.0549] [-0.855 , 0.383 , 3.819 ] ) ), #( -- Atoms Thr (matrix3 [ 0.4119, 0.9111, 0 ] [ 0.7439,-0.3363,-0.5774] [ 0.5261,-0.2378, 0.8164] [-1.4667,-2.0327, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.506 , 0.8625, 0 ] [-0.8625,-0.506 , 0 ] [-3.4267,-2.4112, 0 ] ), (matrix3 [ 0.4383,-0.7469, 0.5 ] [-0.7288,-0.6208,-0.2885] [ 0.5259,-0.2379,-0.8165] [-1.4669,-2.0328,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.0152,-0.9573,-0.2885] [-0.526 , 0.2377,-0.8165] [-2.9518,-1.3614,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.4909, 0.0947, 0.866 ] [-0.1896, 0.9818, 0 ] [-2.477 ,-0.3112, 0.0001] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [ 0.4849, 0.7034,-0.5196] [ 0.8733,-0.421 , 0.2449] [-2.3547,-1.5906, 2.6455] ), (matrix3 [-0.433 , 0.7499,-0.5 ] [-0.708 , 0.0602, 0.7035] [-0.5577,-0.6586,-0.5049] [-4.3745,-1.9259, 1.5871] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [-0.9849, 0.1626,-0.0578] [-0.1662,-0.8035, 0.5715] [-3.8219,-2.1304, 3.1065] ), (matrix3 [ 0.8297,-0.427 ,-0.3592] [-0.5327,-0.4146,-0.7377] [ 0.1661, 0.8035,-0.5716] [-3.3528, 0.1378, 1.4931] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.2023,-0.1441,-0.9686] [-0.8732, 0.4211,-0.245 ] [-4.8198,-0.4019, 1.954 ] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.7559,-0.349 , 0.5537] [-0.4816, 0.2762, 0.8316] [-4.2671,-0.6064, 3.4737] ), (matrix3 [ 0.8297,-0.427 ,-0.3592] [ 0.0208,-0.6195, 0.7847] [ 0.5576, 0.6586, 0.5051] [-2.8001,-0.0667, 3.0128] ), (matrix3 [ 0.6987,-0.7153, 0 ] [ 0.584 , 0.5705,-0.5774] [ 0.413 , 0.4034, 0.8164] [-1.1185,-3.952 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.1805,-0.9835, 0 ] [-0.9835, 0.1805, 0 ] [-3.0897,-4.2667, 0 ] ), (matrix3 [ 0.6987,-0.7153, 0 ] [-0.584 ,-0.5705,-0.5774] [-0.413 ,-0.4034, 0.8164] [-2.2844,-5.091 , 1.1523] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.8972, 0.3341,-0.2885] [ 0.4129, 0.4034,-0.8165] [-1.1187,-3.952 ,-1.1524] ), (matrix3 [-0.8552,-0.1364, 0.4999] [-0.313 , 0.9048,-0.2885] [-0.413 ,-0.4033,-0.8165] [-2.2844,-5.0908,-1.1524] ), (matrix3 [-0.8551,-0.1364, 0.5 ] [ 0.4937, 0.0788, 0.866 ] [ 0.1576,-0.9874, 0 ] [-1.479 ,-5.9153, 0.0001] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.0904,-0.4917, 0.866 ] [ 0.9835,-0.1806, 0 ] [-0.3133,-4.7765, 0.0001] ) ), #( -- Atoms Arg bottom (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [ 0.4373, 0.5749,-0.6915] [ 0.1803,-0.8093,-0.5588] [ 0.881 ,-0.1197, 0.4576] [-2.6319,-2.3328, 2.5001] ), (matrix3 [-0.6151,-0.3696,-0.6963] [ 0.788 ,-0.2639,-0.556 ] [ 0.0217,-0.8908, 0.4536] [-3.8447,-3.4212, 2.4945] ), (matrix3 [-0.6151,-0.3696,-0.6963] [-0.283 , 0.9279,-0.2425] [-0.7358,-0.0478, 0.6754] [-4.9139,-2.2314, 2.8075] ), (matrix3 [ 0.5527,-0.6188, 0.5581] [-0.8241,-0.3065, 0.4763] [-0.1236,-0.7232,-0.6794] [-4.0499,-3.1846, 0.8952] ), (matrix3 [-0.3748, 0.4134, 0.8297] [-0.2884,-0.9026, 0.3194] [-0.881 , 0.1195,-0.4576] [-5.1188,-1.995 , 1.2082] ), (matrix3 [-0.3748, 0.4134, 0.8297] [ 0.9268, 0.1879, 0.325 ] [-0.0215, 0.8908,-0.4537] [-3.9058,-0.9064, 1.2138] ), (matrix3 [ 0.0756,-0.1356,-0.9878] [-0.4775,-0.8746, 0.0835] [ 0.8753,-0.4654, 0.1309] [-2.913 ,-1.0724, 4.0149] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [ 0.138 ,-0.8807,-0.453 ] [ 0.0049,-0.4567, 0.8895] [-4.1415,-1.0602, 5.0857] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [-0.0506, 0.7241,-0.6878] [-0.1284, 0.6782, 0.7235] [-4.3298, 0.5417, 4.8513] ), (matrix3 [ 0.5391,-0.5646, 0.6249] [-0.3985, 0.4826, 0.7798] [-0.7419,-0.6694, 0.0351] [-5.1957,-1.3604, 3.8798] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [-0.3041,-0.3199, 0.8972] [-0.8754, 0.4653,-0.1308] [-5.3841, 0.2412, 3.6455] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [ 0.9267,-0.3321,-0.1755] [-0.0048, 0.4566,-0.8896] [-4.1554, 0.229 , 2.5745] ), (matrix3 [ 0 , 0 ,-1 ] [-0.9022,-0.4311, 0 ] [ 0.4311,-0.9022, 0 ] [-1.2304, 0.5662, 3.6 ] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.5489,-0.7844, 0.2885] [-0.5689, 0.0977,-0.8165] [-2.6405, 1.9763, 2.4486] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.5489,-0.7844,-0.2885] [-0.5689, 0.0977, 0.8165] [-2.6405, 1.9763, 4.7513] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.5489, 0.7844, 0.2885] [ 0.5689,-0.0977,-0.8165] [-1.0362, 1.7006, 2.4486] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.5489, 0.7844,-0.2885] [ 0.5689,-0.0977, 0.8165] [-1.0362, 1.7006, 4.7513] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.7071,-0.7071, 0 ] [ 0.7071, 0.7071, 0 ] [-0.8413, 2.8354, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [-2.8354, 6.2437, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.9022, 0.4311, 0 ] [ 0.4311, 0.9022, 0 ] [-1.2304, 6.5189, 3.6 ] ), (matrix3 [-0.6123,-0.6123, 0.5 ] [-0.5489, 0.7844, 0.2885] [-0.5689,-0.0977,-0.8165] [-2.6405, 5.1088, 2.4486] ), (matrix3 [ 0.6123, 0.6123, 0.5 ] [-0.5489, 0.7844,-0.2885] [-0.5689,-0.0977, 0.8165] [-2.6405, 5.1088, 4.7513] ), (matrix3 [ 0.6123, 0.6123, 0.5 ] [ 0.5489,-0.7844, 0.2885] [ 0.5689, 0.0977,-0.8165] [-1.0362, 5.3845, 2.4486] ), (matrix3 [-0.6123,-0.6123, 0.5 ] [ 0.5489,-0.7844,-0.2885] [ 0.5689, 0.0977, 0.8165] [-1.0362, 5.3845, 4.7513] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.7071, 0.7071, 0 ] [ 0.7071,-0.7071, 0 ] [-0.8413, 4.2496, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.5774, 0.8164, 0 ] [-0.8164, 0.5774, 0 ] [-5.3954, 4.3567, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.5774, 0.8164, 0 ] [-0.8164,-0.5774, 0 ] [-5.3954, 2.7284, 3.6 ] ), (matrix3 [ 0.5 , 0.707 , 0.5 ] [-0.8659, 0.4084, 0.2885] [ 0.0002, 0.5772,-0.8165] [-4.2439, 4.3565, 2.4486] ), (matrix3 [-0.5 ,-0.707 , 0.5 ] [-0.8659, 0.4084,-0.2885] [ 0.0002, 0.5772, 0.8165] [-4.2439, 4.3565, 4.7513] ), (matrix3 [-0.5 ,-0.707 , 0.5 ] [ 0.8659,-0.4084, 0.2885] [-0.0002,-0.5772,-0.8165] [-4.2445, 2.7286, 2.4486] ), (matrix3 [ 0.5 , 0.707 , 0.5 ] [ 0.8659,-0.4084,-0.2885] [-0.0002,-0.5772, 0.8165] [-4.2445, 2.7286, 4.7513] ), (matrix3 [ 0 , 0 ,-1 ] [-0.5774,-0.8164, 0 ] [ 0.8164,-0.5774, 0 ] [-3.093 , 2.7284, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.5774, 0.8164, 0 ] [-0.8164, 0.5774, 0 ] [-7.3953, 4.3567, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.5774, 0.8164, 0 ] [-0.8164,-0.5774, 0 ] [-7.3953, 2.7284, 3.6 ] ), (matrix3 [ 0.5 , 0.707 , 0.5 ] [-0.8659, 0.4084, 0.2885] [ 0.0002, 0.5772,-0.8165] [-6.2439, 4.3565, 2.4486] ), (matrix3 [-0.5 ,-0.707 , 0.5 ] [-0.8659, 0.4084,-0.2885] [ 0.0002, 0.5772, 0.8165] [-6.2439, 4.3565, 4.7513] ), (matrix3 [-0.5 ,-0.707 , 0.5 ] [ 0.8659,-0.4084, 0.2885] [-0.0002,-0.5772,-0.8165] [-6.2445, 2.7286, 2.4486] ), (matrix3 [ 0.5 , 0.707 , 0.5 ] [ 0.8659,-0.4084,-0.2885] [-0.0002,-0.5772, 0.8165] [-6.2445, 2.7286, 4.7513] ), (matrix3 [ 0 , 0 ,-1 ] [-0.5774,-0.8164, 0 ] [ 0.8164,-0.5774, 0 ] [-5.093 , 2.7284, 3.6 ] ) ), #( -- Atoms Ser teta (matrix3 [ 0.8493, 0.1536, 0.5049] [-0.0035, 0.9583,-0.2856] [ 0.5278,-0.2408,-0.8144] [-1.4643,-2.0369,-1.1495] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.7369, 0.6139,-0.2828] [-0.519 , 0.2459,-0.8185] [-2.942 ,-1.3498,-1.1553] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.2439,-0.4364, 0.866 ] [-0.8677,-0.4969,-0.006 ] [-3.4341,-2.3984,-0.0085] ), (matrix3 [ 0.0053, 0.003 ,-0.9999] [-0.9837,-0.1793,-0.0057] [-0.1793, 0.9837, 0.002 ] [-2.4625,-0.3084, 0.0028] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [-0.7372, 0.346 ,-0.5803] [-0.5279, 0.2409, 0.8143] [-2.9544,-1.3568, 1.1494] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [ 0.7433,-0.3424,-0.5745] [ 0.5192,-0.2459, 0.8184] [-1.4765,-2.0441, 1.1551] ), (matrix3 [ 0.7553,-0.6552, 0 ] [ 0.5349, 0.6167, 0.5774] [ 0.3783, 0.4361,-0.8164] [-1.0855,-3.7888,-1.18 ] ), (matrix3 [ 0 , 0 , 1 ] [-0.0987,-0.995 , 0 ] [-0.995 , 0.0987, 0 ] [-3.0241,-4.265 ,-0.0277] ), (matrix3 [ 0.7553,-0.6552, 0 ] [-0.5349,-0.6167, 0.5774] [-0.3783,-0.4361,-0.8164] [-2.1536,-5.0201,-1.18 ] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.9217, 0.259 , 0.2885] [ 0.3782, 0.4361, 0.8165] [-1.0857,-3.7889, 1.1246] ), (matrix3 [-0.841 ,-0.2065,-0.5 ] [-0.3866, 0.8759, 0.2885] [-0.3783,-0.436 , 0.8165] [-2.1536,-5.0199, 1.1246] ), (matrix3 [-0.841 ,-0.2065,-0.5 ] [ 0.4855, 0.1193,-0.866 ] [ 0.2385,-0.9711, 0 ] [-1.2829,-5.7751,-0.0278] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.0495,-0.4975,-0.866 ] [ 0.995 ,-0.0989, 0 ] [-0.2151,-4.5441,-0.0278] ) ), #( -- Atoms Ile (matrix3 [ 0.4119, 0.9111, 0 ] [ 0.7439,-0.3363,-0.5774] [ 0.5261,-0.2378, 0.8164] [-1.4667,-2.0327, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.506 , 0.8625, 0 ] [-0.8625,-0.506 , 0 ] [-3.4267,-2.4112, 0 ] ), (matrix3 [ 0.4383,-0.7469, 0.5 ] [-0.7288,-0.6208,-0.2885] [ 0.5259,-0.2379,-0.8165] [-1.4669,-2.0328,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.0152,-0.9573,-0.2885] [-0.526 , 0.2377,-0.8165] [-2.9518,-1.3614,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.4909, 0.0947, 0.866 ] [-0.1896, 0.9818, 0 ] [-2.477 ,-0.3112, 0.0001] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [ 0.4849, 0.7034,-0.5196] [ 0.8733,-0.421 , 0.2449] [-2.3547,-1.5906, 2.6455] ), (matrix3 [-0.433 , 0.7499,-0.5 ] [-0.708 , 0.0602, 0.7035] [-0.5577,-0.6586,-0.5049] [-4.3745,-1.9259, 1.5871] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [-0.9849, 0.1626,-0.0578] [-0.1662,-0.8035, 0.5715] [-3.8219,-2.1304, 3.1065] ), (matrix3 [ 0.8297,-0.427 ,-0.3592] [-0.5327,-0.4146,-0.7377] [ 0.1661, 0.8035,-0.5716] [-3.3528, 0.1378, 1.4931] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.2023,-0.1441,-0.9686] [-0.8732, 0.4211,-0.245 ] [-4.8198,-0.4019, 1.954 ] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.7559,-0.349 , 0.5537] [-0.4816, 0.2762, 0.8316] [-4.2671,-0.6064, 3.4737] ), (matrix3 [ 0.6987,-0.7153, 0 ] [ 0.584 , 0.5705,-0.5774] [ 0.413 , 0.4034, 0.8164] [-1.1185,-3.952 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.1805,-0.9835, 0 ] [-0.9835, 0.1805, 0 ] [-3.0897,-4.2667, 0 ] ), (matrix3 [ 0.6987,-0.7153, 0 ] [-0.584 ,-0.5705,-0.5774] [-0.413 ,-0.4034, 0.8164] [-2.2844,-5.091 , 1.1523] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.8972, 0.3341,-0.2885] [ 0.4129, 0.4034,-0.8165] [-1.1187,-3.952 ,-1.1524] ), (matrix3 [-0.8552,-0.1364, 0.4999] [-0.313 , 0.9048,-0.2885] [-0.413 ,-0.4033,-0.8165] [-2.2844,-5.0908,-1.1524] ), (matrix3 [-0.8551,-0.1364, 0.5 ] [ 0.4937, 0.0788, 0.866 ] [ 0.1576,-0.9874, 0 ] [-1.479 ,-5.9153, 0.0001] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.0904,-0.4917, 0.866 ] [ 0.9835,-0.1806, 0 ] [-0.3133,-4.7765, 0.0001] ), (matrix3 [ 0.8475,-0.5303,-0.0197] [ 0.2448, 0.4238,-0.8719] [ 0.4708, 0.7342, 0.4891] [-1.5682, 2.0526, 4.2245] ), (matrix3 [-0.2429,-0.3546,-0.9028] [ 0.8745, 0.3224,-0.362 ] [-0.4195, 0.8776,-0.2318] [-2.8249, 2.255 , 3.2069] ), (matrix3 [-0.2429,-0.3546,-0.9028] [ 0.1042,-0.9349, 0.3392] [-0.9644,-0.0116, 0.2641] [-3.5939, 0.9999, 3.9069] ), (matrix3 [ 0.8475,-0.5303,-0.0197] [-0.5255,-0.8334,-0.1706] [-0.074 ,-0.155 , 0.9851] [-2.3372, 0.7975, 4.9245] ), (matrix3 [ 0.0313, 0.9869, 0.1576] [-0.9967, 0.0425,-0.068 ] [ 0.0739, 0.1549,-0.9851] [-2.1284, 1.2351, 2.1437] ), (matrix3 [-0.6358,-0.1019, 0.7649] [ 0.6476, 0.4685, 0.6008] [ 0.4196,-0.8775, 0.2318] [-1.6404,-0.2221, 3.8614] ), (matrix3 [ 0.0313, 0.9869, 0.1576] [ 0.2623,-0.1602, 0.9515] [ 0.9644, 0.0115,-0.264 ] [-0.8715, 1.0326, 3.1615] ) ), #( -- Atoms Met (matrix3 [ 0.8493, 0.1536, 0.5049] [-0.0035, 0.9583,-0.2856] [ 0.5278,-0.2408,-0.8144] [-1.4643,-2.0369,-1.1495] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.7369, 0.6139,-0.2828] [-0.519 , 0.2459,-0.8185] [-2.942 ,-1.3498,-1.1553] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.2439,-0.4364, 0.866 ] [-0.8677,-0.4969,-0.006 ] [-3.4341,-2.3984,-0.0085] ), (matrix3 [ 0.0053, 0.003 ,-0.9999] [-0.9837,-0.1793,-0.0057] [-0.1793, 0.9837, 0.002 ] [-2.4625,-0.3084, 0.0028] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [-0.7372, 0.346 ,-0.5803] [-0.5279, 0.2409, 0.8143] [-2.9544,-1.3568, 1.1494] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [ 0.7433,-0.3424,-0.5745] [ 0.5192,-0.2459, 0.8184] [-1.4765,-2.0441, 1.1551] ), (matrix3 [ 0.7553,-0.6552, 0 ] [ 0.5349, 0.6167, 0.5774] [ 0.3783, 0.4361,-0.8164] [-1.0855,-3.7888,-1.18 ] ), (matrix3 [ 0 , 0 , 1 ] [-0.0987,-0.995 , 0 ] [-0.995 , 0.0987, 0 ] [-3.0241,-4.265 ,-0.0277] ), (matrix3 [ 0.7553,-0.6552, 0 ] [-0.5349,-0.6167, 0.5774] [-0.3783,-0.4361,-0.8164] [-2.1536,-5.0201,-1.18 ] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.9217, 0.259 , 0.2885] [ 0.3782, 0.4361, 0.8165] [-1.0857,-3.7889, 1.1246] ), (matrix3 [-0.841 ,-0.2065,-0.5 ] [-0.3866, 0.8759, 0.2885] [-0.3783,-0.436 , 0.8165] [-2.1536,-5.0199, 1.1246] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.0495,-0.4975,-0.866 ] [ 0.995 ,-0.0989, 0 ] [-0.2151,-4.5441,-0.0278] ), (matrix3 [ 0.1574,-0.9875, 0 ] [ 0.8062, 0.1285, 0.5774] [ 0.5702, 0.0909,-0.8164] [ 0.8175,-7.1799,-1.18 ] ), (matrix3 [ 0 , 0 , 1 ] [ 0.8971,-0.4416, 0 ] [ 0.4416, 0.8971, 0 ] [ 0.636 ,-6.0419,-0.0277] ), (matrix3 [ 0.1574,-0.9875, 0 ] [-0.8062,-0.1285, 0.5774] [-0.5702,-0.0909,-0.8164] [-0.7921,-7.4365,-1.18 ] ), (matrix3 [ 0.6195, 0.6051,-0.5 ] [-0.5395, 0.7909, 0.2885] [ 0.57 , 0.0909, 0.8165] [ 0.8173,-7.1798, 1.1246] ), (matrix3 [-0.777 , 0.3824,-0.5 ] [ 0.2668, 0.9195, 0.2885] [-0.5701,-0.0908, 0.8165] [-0.7919,-7.4364, 1.1246] ), (matrix3 [-0.777 , 0.3824,-0.5 ] [ 0.4486,-0.2206,-0.866 ] [-0.4415,-0.8972, 0 ] [-0.6104,-8.5746,-0.0278] ), (matrix3 [ 0.6195, 0.6051,-0.5 ] [-0.3577,-0.3492,-0.866 ] [ 0.6986,-0.7154, 0 ] [ 0.9988,-8.3179,-0.0278] ), (matrix3 [-0.8654,-0.5009, 0 ] [ 0.4089,-0.7066, 0.5774] [ 0.2892,-0.4997,-0.8164] [-2.5834,-7.735 ,-1.18 ] ), (matrix3 [-0.8654,-0.5009, 0 ] [-0.4089, 0.7066, 0.5774] [-0.2892, 0.4997,-0.8164] [-3.3999,-6.3243,-1.18 ] ), (matrix3 [ 0.7869,-0.3615,-0.5 ] [ 0.545 , 0.7871, 0.2885] [ 0.2892,-0.4996, 0.8165] [-2.5834,-7.7348, 1.1246] ), (matrix3 [ 0.0785, 0.8624,-0.5 ] [ 0.954 , 0.0804, 0.2885] [-0.2891, 0.4997, 0.8165] [-3.3997,-6.3244, 1.1246] ), (matrix3 [ 0.0785, 0.8624,-0.5 ] [-0.0452,-0.4979,-0.866 ] [-0.9958, 0.0906, 0 ] [-4.3972,-6.9017,-0.0278] ), (matrix3 [ 0.7869,-0.3615,-0.5 ] [-0.4542, 0.2088,-0.866 ] [-0.4175,-0.9086, 0 ] [-3.5809,-8.3122,-0.0278] ) ), #( -- Atoms Gln (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6481,-0.4523,-0.6125] [ 0.0637, 0.8338,-0.5482] [-3.2303,-0.5073, 1.6508] ), (matrix3 [-0.2444,-0.9695,-0.0137] [ 0.3513,-0.0754,-0.9331] [ 0.9037,-0.2329, 0.3591] [-2.046 ,-2.0115, 2.9302] ), (matrix3 [-0.5143, 0.6532,-0.5556] [ 0.7892, 0.1071,-0.6046] [-0.3354,-0.7495,-0.5706] [-3.7933,-2.7399, 1.6192] ), (matrix3 [-0.5143, 0.6532,-0.5556] [-0.7892,-0.1071, 0.6046] [ 0.3354, 0.7495, 0.5706] [-2.8473,-0.6262, 3.2285] ), (matrix3 [-0.2444,-0.9695,-0.0137] [-0.3513, 0.0754, 0.9331] [-0.9037, 0.2329,-0.3591] [-4.5945,-1.3546, 1.9175] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.1558, 0.9369,-0.3128] [-0.6324, 0.1487, 0.7602] [-4.212 ,-1.4733, 3.4958] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6324,-0.1487,-0.7602] [ 0.1558,-0.9369, 0.3128] [-4.2492,-4.9037, 5.4512] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.3575,-0.9329, 0.0417] [-0.5443,-0.1719, 0.821 ] [-5.2364,-3.825 , 6.1677] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [-0.1773,-0.9498, 0.2573] [ 0.9696,-0.1239, 0.2107] [-3.1017,-3.7574, 5.3072] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [ 0.2604,-0.7673, 0.5859] [-0.2695,-0.6405,-0.719 ] [-4.849 ,-4.4857, 3.9962] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [-0.2604, 0.7673,-0.5859] [ 0.2695, 0.6405, 0.719 ] [-4.0888,-2.6795, 6.0239] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [ 0.1773, 0.9498,-0.2573] [-0.9696, 0.1239,-0.2107] [-5.8361,-3.4078, 4.7129] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.6324, 0.1487, 0.7602] [-0.1558, 0.9369,-0.3128] [-4.6886,-2.2615, 4.5689] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-1.9545,-4.5689, 4.2292] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-3.7018,-5.2973, 2.9181] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-1.4056,-3.6621, 2.9937] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-3.1528,-4.3905, 1.6827] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.5969,-0.0117, 0.8021] [ 0.2604,-0.9485, 0.1799] [-1.0718,-7.3525, 2.577 ] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.0466,-0.8983, 0.4368] [ 0.6496,-0.3049,-0.6964] [-0.523 ,-6.445 , 1.3414] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-0.8398,-6.1042, 3.5965] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-2.5871,-6.8326, 2.2855] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-0.2909,-5.1974, 2.3611] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-2.0382,-5.9258, 1.05 ] ), (matrix3 [ 0.1564, 0.9876, 0 ] [ 0.8063,-0.1277,-0.5774] [ 0.5703,-0.0903, 0.8164] [-1.1819,-2.1144, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8967, 0.4425, 0 ] [ 0.4425,-0.8967, 0 ] [-1.3622,-3.2525, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.716 , 0.698 , 0 ] [-0.698 ,-0.716 , 0 ] [-2.9721,-2.9975, 0 ] ), (matrix3 [ 0.6201,-0.6044, 0.5 ] [-0.5387,-0.7914,-0.2885] [ 0.5701,-0.0903,-0.8165] [-1.1821,-2.1145,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.2677,-0.9192,-0.2885] [-0.5702, 0.0902,-0.8165] [-2.7916,-1.8595,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.4484, 0.2211, 0.866 ] [-0.4424, 0.8967, 0 ] [-2.6113,-0.7212, 0.0001] ) ), #( -- Atoms His (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-2.4111,-3.8254, 1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-2.4111,-3.8254,-1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-3.8253,-5.2396,-1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-3.8253,-5.2396, 1 ] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-0.9969,-2.4112, 1 ] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-0.9969,-2.4112,-1 ] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-2.4111,-0.997 ,-1 ] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-2.4111,-0.997 , 1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-5.2395,-3.8254, 1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-5.2395,-3.8254,-1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-3.8253,-2.4112,-1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.7071, 0.7071, 0 ] [ 0 , 0 , 1 ] [-3.8253,-2.4112, 1 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [ 0 , 0 ,-1 ] [-0.7071, 0.7071, 0 ] [-4.5324,-1.7041, 0 ] ), (matrix3 [-0.7071, 0.7071, 0 ] [ 0 , 0 ,-1 ] [-0.7071,-0.7071, 0 ] [-4.5324,-5.9467, 0 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [ 0 , 0 ,-1 ] [ 0.7071,-0.7071, 0 ] [-1.704 ,-4.5325, 0 ] ), (matrix3 [ 0 , 0.9999, 0 ] [ 0 , 0 ,-1 ] [-0.9999, 0 , 0 ] [-6.3111,-3.8254, 0 ] ), (matrix3 [ 0.9999, 0 , 0 ] [ 0 , 0 ,-1 ] [ 0 , 0.9999, 0 ] [-2.4111, 0.0745, 0 ] ) ), #( -- Atoms Pro = Gly (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6481,-0.4523,-0.6125] [ 0.0637, 0.8338,-0.5482] [-3.2303,-0.5073, 1.6508] ), (matrix3 [-0.2444,-0.9695,-0.0137] [ 0.3513,-0.0754,-0.9331] [ 0.9037,-0.2329, 0.3591] [-2.046 ,-2.0115, 2.9302] ), (matrix3 [-0.5143, 0.6532,-0.5556] [ 0.7892, 0.1071,-0.6046] [-0.3354,-0.7495,-0.5706] [-3.7933,-2.7399, 1.6192] ), (matrix3 [-0.5143, 0.6532,-0.5556] [-0.7892,-0.1071, 0.6046] [ 0.3354, 0.7495, 0.5706] [-2.8473,-0.6262, 3.2285] ), (matrix3 [-0.2444,-0.9695,-0.0137] [-0.3513, 0.0754, 0.9331] [-0.9037, 0.2329,-0.3591] [-4.5945,-1.3546, 1.9175] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.1558, 0.9369,-0.3128] [-0.6324, 0.1487, 0.7602] [-4.212 ,-1.4733, 3.4958] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6324,-0.1487,-0.7602] [ 0.1558,-0.9369, 0.3128] [-4.2492,-4.9037, 5.4512] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.3575,-0.9329, 0.0417] [-0.5443,-0.1719, 0.821 ] [-5.2364,-3.825 , 6.1677] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [-0.1773,-0.9498, 0.2573] [ 0.9696,-0.1239, 0.2107] [-3.1017,-3.7574, 5.3072] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [ 0.2604,-0.7673, 0.5859] [-0.2695,-0.6405,-0.719 ] [-4.849 ,-4.4857, 3.9962] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [-0.2604, 0.7673,-0.5859] [ 0.2695, 0.6405, 0.719 ] [-4.0888,-2.6795, 6.0239] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [ 0.1773, 0.9498,-0.2573] [-0.9696, 0.1239,-0.2107] [-5.8361,-3.4078, 4.7129] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.6324, 0.1487, 0.7602] [-0.1558, 0.9369,-0.3128] [-4.6886,-2.2615, 4.5689] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-1.9545,-4.5689, 4.2292] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-3.7018,-5.2973, 2.9181] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-1.4056,-3.6621, 2.9937] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-3.1528,-4.3905, 1.6827] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.5969,-0.0117, 0.8021] [ 0.2604,-0.9485, 0.1799] [-1.0718,-7.3525, 2.577 ] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.0466,-0.8983, 0.4368] [ 0.6496,-0.3049,-0.6964] [-0.523 ,-6.445 , 1.3414] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-0.8398,-6.1042, 3.5965] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-2.5871,-6.8326, 2.2855] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-0.2909,-5.1974, 2.3611] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-2.0382,-5.9258, 1.05 ] ), (matrix3 [ 0.1564, 0.9876, 0 ] [ 0.8063,-0.1277,-0.5774] [ 0.5703,-0.0903, 0.8164] [-1.1819,-2.1144, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8967, 0.4425, 0 ] [ 0.4425,-0.8967, 0 ] [-1.3622,-3.2525, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.716 , 0.698 , 0 ] [-0.698 ,-0.716 , 0 ] [-2.9721,-2.9975, 0 ] ), (matrix3 [ 0.6201,-0.6044, 0.5 ] [-0.5387,-0.7914,-0.2885] [ 0.5701,-0.0903,-0.8165] [-1.1821,-2.1145,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.2677,-0.9192,-0.2885] [-0.5702, 0.0902,-0.8165] [-2.7916,-1.8595,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.4484, 0.2211, 0.866 ] [-0.4424, 0.8967, 0 ] [-2.6113,-0.7212, 0.0001] ) ), #( -- Atoms Arg top (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [ 0.4373, 0.5749,-0.6915] [ 0.1803,-0.8093,-0.5588] [ 0.881 ,-0.1197, 0.4576] [-2.6319,-2.3328, 2.5001] ), (matrix3 [-0.6151,-0.3696,-0.6963] [ 0.788 ,-0.2639,-0.556 ] [ 0.0217,-0.8908, 0.4536] [-3.8447,-3.4212, 2.4945] ), (matrix3 [-0.6151,-0.3696,-0.6963] [-0.283 , 0.9279,-0.2425] [-0.7358,-0.0478, 0.6754] [-4.9139,-2.2314, 2.8075] ), (matrix3 [ 0.5527,-0.6188, 0.5581] [-0.8241,-0.3065, 0.4763] [-0.1236,-0.7232,-0.6794] [-4.0499,-3.1846, 0.8952] ), (matrix3 [-0.3748, 0.4134, 0.8297] [-0.2884,-0.9026, 0.3194] [-0.881 , 0.1195,-0.4576] [-5.1188,-1.995 , 1.2082] ), (matrix3 [-0.3748, 0.4134, 0.8297] [ 0.9268, 0.1879, 0.325 ] [-0.0215, 0.8908,-0.4537] [-3.9058,-0.9064, 1.2138] ), (matrix3 [ 0.0756,-0.1356,-0.9878] [-0.4775,-0.8746, 0.0835] [ 0.8753,-0.4654, 0.1309] [-2.913 ,-1.0724, 4.0149] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [ 0.138 ,-0.8807,-0.453 ] [ 0.0049,-0.4567, 0.8895] [-4.1415,-1.0602, 5.0857] ), (matrix3 [-0.9904,-0.125 ,-0.0586] [-0.0506, 0.7241,-0.6878] [-0.1284, 0.6782, 0.7235] [-4.3298, 0.5417, 4.8513] ), (matrix3 [ 0.5391,-0.5646, 0.6249] [-0.3985, 0.4826, 0.7798] [-0.7419,-0.6694, 0.0351] [-5.1957,-1.3604, 3.8798] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [-0.3041,-0.3199, 0.8972] [-0.8754, 0.4653,-0.1308] [-5.3841, 0.2412, 3.6455] ), (matrix3 [ 0.3756, 0.8252, 0.4215] [ 0.9267,-0.3321,-0.1755] [-0.0048, 0.4566,-0.8896] [-4.1554, 0.229 , 2.5745] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.5489,-0.7844, 0.2885] [-0.5689, 0.0977,-0.8165] [-2.6405, 1.9763, 2.4486] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.5489,-0.7844,-0.2885] [-0.5689, 0.0977, 0.8165] [-2.6405, 1.9763, 4.7513] ), (matrix3 [ 0 , 0 ,-1 ] [-0.9022,-0.4311, 0 ] [ 0.4311,-0.9022, 0 ] [-1.2304, 0.5662, 3.6 ] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.9022, 0.4311, 0 ] [-0.4311, 0.9022, 0 ] [-2.4463, 3.1106, 3.6 ] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.5489, 0.7844, 0.2885] [ 0.5689,-0.0977,-0.8165] [-1.0362, 1.7006, 2.4486] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.3535, 0.3535,-0.866 ] [ 0.7071, 0.7071, 0 ] [-0.8413, 2.8354, 3.6 ] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.7071,-0.7071, 0 ] [ 0.3535,-0.3535, 0.866 ] [ 1.2162, 2.192 , 6.9082] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.0977,-0.5689, 0.8165] [ 0.7844, 0.5489, 0.2885] [ 1.8239, 3.4645, 6.0939] ), (matrix3 [-0.3061,-0.9185,-0.25 ] [ 0.6278,-0.3922, 0.6722] [-0.7155, 0.0488, 0.6967] [-0.2912, 2.7594, 6.6696] ), (matrix3 [ 0.9185, 0.3061,-0.25 ] [ 0.2744,-0.0388, 0.9608] [ 0.2844,-0.9511,-0.1197] [ 1.1188, 1.3493, 5.5182] ), (matrix3 [ 0.9185, 0.3061,-0.25 ] [-0.2744, 0.0388,-0.9608] [-0.2844, 0.9511, 0.1197] [ 0.3166, 4.0316, 5.8559] ), (matrix3 [-0.3061,-0.9185,-0.25 ] [-0.6278, 0.3922,-0.6722] [ 0.7155,-0.0488,-0.6967] [ 1.7267, 2.6215, 4.7046] ), (matrix3 [-0.6123, 0.6123, 0.4999] [ 0.7071, 0.7071, 0 ] [-0.3535, 0.3535,-0.866 ] [ 0.2192, 3.189 , 4.466 ] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.7566, 0.6371, 0.1463] [ 0.2289,-0.4679, 0.8535] [-0.8389,-0.1997, 7.3203] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.4679,-0.2289, 0.8535] [-0.6371,-0.7566, 0.1463] [-2.0601,-0.6068, 6.3232] ), (matrix3 [ 0.9614, 0.2456,-0.1232] [ 0.2665,-0.724 , 0.6361] [-0.067 , 0.6445, 0.7616] [-1.2562, 1.3688, 7.1907] ), (matrix3 [-0.3491,-0.8579,-0.3767] [-0.0868,-0.3706, 0.9246] [ 0.933 ,-0.3555,-0.0549] [ 0.1538,-0.0412, 6.0394] ), (matrix3 [-0.3491,-0.8579,-0.3767] [ 0.0868, 0.3706,-0.9246] [-0.933 , 0.3555, 0.0549] [-2.4773, 0.9614, 6.1942] ), (matrix3 [ 0.9614, 0.2456,-0.1232] [-0.2665, 0.724 ,-0.6361] [ 0.067 ,-0.6445,-0.7616] [-1.0672,-0.4486, 5.0429] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.7566,-0.6371,-0.1463] [-0.2289, 0.4679,-0.8535] [-1.4846, 1.1199, 4.9133] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.7566, 0.6371, 0.1463] [ 0.2289,-0.4679, 0.8535] [-1.3389,-1.6997, 8.5451] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [ 0.4679,-0.2289, 0.8535] [-0.6371,-0.7566, 0.1463] [-2.5601,-2.1067, 7.5479] ), (matrix3 [ 0.9614, 0.2456,-0.1232] [ 0.2665,-0.724 , 0.6361] [-0.067 , 0.6445, 0.7616] [-1.7562,-0.1311, 8.4155] ), (matrix3 [-0.3491,-0.8579,-0.3767] [-0.0868,-0.3706, 0.9246] [ 0.933 ,-0.3555,-0.0549] [-0.3461,-1.5411, 7.2641] ), (matrix3 [-0.3491,-0.8579,-0.3767] [ 0.0868, 0.3706,-0.9246] [-0.933 , 0.3555, 0.0549] [-2.9773,-0.5385, 7.419 ] ), (matrix3 [ 0.9614, 0.2456,-0.1232] [-0.2665, 0.724 ,-0.6361] [ 0.067 ,-0.6445,-0.7616] [-1.5672,-1.9486, 6.2676] ), (matrix3 [-0.6123, 0.6123, 0.5 ] [-0.7566,-0.6371,-0.1463] [-0.2289, 0.4679,-0.8535] [-1.9846,-0.38 , 6.138 ] ) ), #( -- Atoms Leu lambda (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [-0.1032, 0.565 , 0.8185] [ 0.2863, 0.8049,-0.5196] [ 0.9525,-0.1807, 0.2449] [-2.1548,-1.9218, 2.6455] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.6995,-0.1251, 0.7035] [-0.3682,-0.7806,-0.5049] [-4.019 ,-2.7685, 1.5871] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [-0.4073,-0.5383,-0.7377] [-0.0475, 0.8191,-0.5716] [-3.5663,-0.5106, 1.4931] ), (matrix3 [-0.1964,-0.9796, 0.0407] [ 0.8205,-0.1415, 0.5537] [-0.5367, 0.1421, 0.8316] [-4.2568,-1.4661, 3.4737] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [ 0.1805,-0.5929, 0.7847] [ 0.3682, 0.7805, 0.5051] [-2.9795,-0.5651, 3.0128] ), (matrix3 [-0.18 , 0.5782, 0.7957] [-0.7849, 0.403 ,-0.4705] [ 0.5928, 0.7093,-0.3813] [-5.3339,-0.1781, 0.9498] ), (matrix3 [-0.9372,-0.3463, 0.0396] [-0.3477, 0.9369,-0.0339] [-0.0253,-0.0455,-0.9986] [-6.2064,-1.2436, 0.0786] ), (matrix3 [-0.9372,-0.3463, 0.0396] [ 0.1397,-0.2691, 0.9529] [ 0.3194,-0.8986,-0.3006] [-5.7198,-2.4476, 1.0637] ), (matrix3 [ 0.3475, 0.4063,-0.845 ] [ 0.0073,-0.9023,-0.4309] [-0.9376, 0.1435,-0.3166] [-7.494 ,-0.9767, 1.0412] ), (matrix3 [ 0.7697,-0.6382, 0.0096] [-0.2364,-0.2991,-0.9244] [-0.5929,-0.7093, 0.3811] [-7.0075,-2.1804, 2.0261] ), (matrix3 [ 0.7697,-0.6382, 0.0096] [ 0.6378, 0.7684,-0.0514] [ 0.0253, 0.0457, 0.9986] [-6.1348,-1.1147, 2.8975] ), (matrix3 [ 0.3475, 0.4063,-0.845 ] [ 0.8816, 0.1652, 0.442 ] [-0.3193, 0.8986, 0.3008] [-6.6213, 0.089 , 1.9126] ), (matrix3 [-0.0985, 0.4967, 0.8622] [ 0.3942,-0.776 , 0.4922] [ 0.9137, 0.3884,-0.1193] [-2.0487,-3.4633, 3.6322] ), (matrix3 [-0.5183,-0.7652, 0.3816] [ 0.6365,-0.0473, 0.7697] [ 0.5709,-0.6419,-0.5117] [-2.5324,-4.9176, 3.0784] ), (matrix3 [-0.5183,-0.7652, 0.3816] [-0.7504, 0.621 , 0.226 ] [-0.4099,-0.1692,-0.8962] [-3.917 ,-4.2504, 2.5357] ), (matrix3 [ 0.9091,-0.1551,-0.3864] [-0.411 ,-0.4839,-0.7725] [ 0.0671,-0.8612, 0.5037] [-3.2436,-5.2271, 4.5117] ), (matrix3 [-0.2921, 0.4236,-0.8573] [ 0.2826,-0.8182,-0.5006] [-0.9136,-0.3885, 0.1193] [-4.6279,-4.56 , 3.969 ] ), (matrix3 [-0.2921, 0.4236,-0.8573] [ 0.7672, 0.6389, 0.0542] [-0.5708, 0.642 , 0.5117] [-4.1441,-3.1054, 4.523 ] ), (matrix3 [ 0.9091,-0.1551,-0.3864] [ 0.0736, 0.9732,-0.2176] [ 0.4099, 0.1693, 0.8962] [-2.7598,-3.7725, 5.0656] ) ), #( -- Atoms Glu (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6481,-0.4523,-0.6125] [ 0.0637, 0.8338,-0.5482] [-3.2303,-0.5073, 1.6508] ), (matrix3 [-0.2444,-0.9695,-0.0137] [ 0.3513,-0.0754,-0.9331] [ 0.9037,-0.2329, 0.3591] [-2.046 ,-2.0115, 2.9302] ), (matrix3 [-0.5143, 0.6532,-0.5556] [ 0.7892, 0.1071,-0.6046] [-0.3354,-0.7495,-0.5706] [-3.7933,-2.7399, 1.6192] ), (matrix3 [-0.5143, 0.6532,-0.5556] [-0.7892,-0.1071, 0.6046] [ 0.3354, 0.7495, 0.5706] [-2.8473,-0.6262, 3.2285] ), (matrix3 [-0.2444,-0.9695,-0.0137] [-0.3513, 0.0754, 0.9331] [-0.9037, 0.2329,-0.3591] [-4.5945,-1.3546, 1.9175] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.1558, 0.9369,-0.3128] [-0.6324, 0.1487, 0.7602] [-4.212 ,-1.4733, 3.4958] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.6324,-0.1487,-0.7602] [ 0.1558,-0.9369, 0.3128] [-4.2492,-4.9037, 5.4512] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.3575,-0.9329, 0.0417] [-0.5443,-0.1719, 0.821 ] [-5.2364,-3.825 , 6.1677] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [-0.1773,-0.9498, 0.2573] [ 0.9696,-0.1239, 0.2107] [-3.1017,-3.7574, 5.3072] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [ 0.2604,-0.7673, 0.5859] [-0.2695,-0.6405,-0.719 ] [-4.849 ,-4.4857, 3.9962] ), (matrix3 [-0.927 ,-0.0293, 0.3737] [-0.2604, 0.7673,-0.5859] [ 0.2695, 0.6405, 0.719 ] [-4.0888,-2.6795, 6.0239] ), (matrix3 [ 0.1682,-0.2869,-0.943 ] [ 0.1773, 0.9498,-0.2573] [-0.9696, 0.1239,-0.2107] [-5.8361,-3.4078, 4.7129] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.6324, 0.1487, 0.7602] [-0.1558, 0.9369,-0.3128] [-4.6886,-2.2615, 4.5689] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-1.9545,-4.5689, 4.2292] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-3.7018,-5.2973, 2.9181] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-1.4056,-3.6621, 2.9937] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-3.1528,-4.3905, 1.6827] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [-0.5969,-0.0117, 0.8021] [ 0.2604,-0.9485, 0.1799] [-1.0718,-7.3525, 2.577 ] ), (matrix3 [ 0.7588, 0.3163, 0.5693] [ 0.0466,-0.8983, 0.4368] [ 0.6496,-0.3049,-0.6964] [-0.523 ,-6.445 , 1.3414] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [ 0.126 ,-0.9836,-0.1282] [ 0.4249,-0.0632, 0.903 ] [-0.8398,-6.1042, 3.5965] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [ 0.5639,-0.8011, 0.2002] [-0.8142,-0.5798,-0.0267] [-2.5871,-6.8326, 2.2855] ), (matrix3 [ 0.1375,-0.1479,-0.9793] [-0.5639, 0.8011,-0.2002] [ 0.8142, 0.5798, 0.0267] [-0.2909,-5.1974, 2.3611] ), (matrix3 [-0.8963,-0.1683, 0.41 ] [-0.126 , 0.9836, 0.1282] [-0.4249, 0.0632,-0.903 ] [-2.0382,-5.9258, 1.05 ] ), (matrix3 [ 0.1564, 0.9876, 0 ] [ 0.8063,-0.1277,-0.5774] [ 0.5703,-0.0903, 0.8164] [-1.1819,-2.1144, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8967, 0.4425, 0 ] [ 0.4425,-0.8967, 0 ] [-1.3622,-3.2525, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.716 , 0.698 , 0 ] [-0.698 ,-0.716 , 0 ] [-2.9721,-2.9975, 0 ] ), (matrix3 [ 0.6201,-0.6044, 0.5 ] [-0.5387,-0.7914,-0.2885] [ 0.5701,-0.0903,-0.8165] [-1.1821,-2.1145,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.2677,-0.9192,-0.2885] [-0.5702, 0.0902,-0.8165] [-2.7916,-1.8595,-1.1524] ), (matrix3 [-0.7766,-0.3832, 0.5 ] [ 0.4484, 0.2211, 0.866 ] [-0.4424, 0.8967, 0 ] [-2.6113,-0.7212, 0.0001] ) ), #( -- Atoms Asp (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.5489, 0.7844, 0.2885] [ 0.5689,-0.0977,-0.8165] [-1.1917,-2.1318,-1.1513] ), (matrix3 [ 0 , 0 , 1 ] [ 0.9022, 0.4311, 0 ] [-0.4311, 0.9022, 0 ] [-2.6018,-0.7218, 0 ] ), (matrix3 [ 0.6123,-0.6123,-0.5 ] [ 0.5489, 0.7844,-0.2885] [ 0.5689,-0.0977, 0.8165] [-1.1917,-2.1318, 1.1513] ), (matrix3 [ 0.6123,-0.6123,-0.5 ] [-0.5489,-0.7844, 0.2885] [-0.5689, 0.0977,-0.8165] [-2.7961,-1.8561,-1.1513] ), (matrix3 [ 0 , 0 , 1 ] [-0.9022,-0.4311, 0 ] [ 0.4311,-0.9022, 0 ] [-1.386 ,-3.2662, 0 ] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.3535,-0.3535,-0.866 ] [-0.7071,-0.7071, 0 ] [-2.9909,-2.991 , 0 ] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [ 0.7071, 0.7071, 0 ] [-0.3535, 0.3535, 0.866 ] [-5.0486,-2.3475, 3.3082] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.0977, 0.5689, 0.8165] [-0.7844,-0.5489, 0.2885] [-5.6562,-3.62 , 2.4939] ), (matrix3 [ 0.9185, 0.3061, 0.25 ] [-0.2744, 0.0388, 0.9608] [-0.2844, 0.9511,-0.1197] [-4.9512,-1.5049, 1.9182] ), (matrix3 [-0.3061,-0.9185, 0.25 ] [-0.6278, 0.3922, 0.6722] [ 0.7155,-0.0488, 0.6967] [-3.5411,-2.915 , 3.0696] ), (matrix3 [-0.3061,-0.9185, 0.25 ] [ 0.6278,-0.3922,-0.6722] [-0.7155, 0.0488,-0.6967] [-5.5591,-2.7771, 1.1046] ), (matrix3 [ 0.9185, 0.3061, 0.25 ] [ 0.2744,-0.0388,-0.9608] [ 0.2844,-0.9511, 0.1197] [-4.149 ,-4.1872, 2.2559] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.7071,-0.7071, 0 ] [ 0.3535,-0.3535,-0.866 ] [-4.0516,-3.3445, 0.866 ] ), (matrix3 [-0.3491,-0.8579, 0.3767] [ 0.0868, 0.3706, 0.9246] [-0.933 , 0.3555,-0.0549] [-3.9861,-0.1143, 2.4394] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [-0.2665, 0.724 , 0.6361] [ 0.067 ,-0.6445, 0.7616] [-2.576 ,-1.5244, 3.5907] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [ 0.2665,-0.724 ,-0.6361] [-0.067 , 0.6445,-0.7616] [-2.765 , 0.2931, 1.4429] ), (matrix3 [-0.3491,-0.8579, 0.3767] [-0.0868,-0.3706,-0.9246] [ 0.933 ,-0.3555, 0.0549] [-1.355 ,-1.1169, 2.5942] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.7566,-0.6371, 0.1463] [-0.2289, 0.4679, 0.8535] [-2.4934, 1.5441, 4.9451] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.4679, 0.2289, 0.8535] [ 0.6371, 0.7566, 0.1463] [-1.2721, 1.9512, 3.9479] ), (matrix3 [-0.3491,-0.8579, 0.3767] [ 0.0868, 0.3706, 0.9246] [-0.933 , 0.3555,-0.0549] [-3.4861, 1.3856, 3.6641] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [-0.2665, 0.724 , 0.6361] [ 0.067 ,-0.6445, 0.7616] [-2.076 ,-0.0244, 4.8155] ), (matrix3 [ 0.9614, 0.2456, 0.1232] [ 0.2665,-0.724 ,-0.6361] [-0.067 , 0.6445,-0.7616] [-2.265 , 1.7931, 2.6676] ), (matrix3 [-0.3491,-0.8579, 0.3767] [-0.0868,-0.3706,-0.9246] [ 0.933 ,-0.3555, 0.0549] [-0.855 , 0.383 , 3.819 ] ) ), #( -- Atoms Ala (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.1621, 0.9867, 0 ] [-0.8056, 0.1323,-0.5774] [-0.5697, 0.0936, 0.8164] [-2.791 ,-1.8548, 1.1523] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ) ), #( -- Atoms Val (matrix3 [ 0.4119, 0.9111, 0 ] [ 0.7439,-0.3363,-0.5774] [ 0.5261,-0.2378, 0.8164] [-1.4667,-2.0327, 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.506 , 0.8625, 0 ] [-0.8625,-0.506 , 0 ] [-3.4267,-2.4112, 0 ] ), (matrix3 [ 0.4383,-0.7469, 0.5 ] [-0.7288,-0.6208,-0.2885] [ 0.5259,-0.2379,-0.8165] [-1.4669,-2.0328,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.0152,-0.9573,-0.2885] [-0.526 , 0.2377,-0.8165] [-2.9518,-1.3614,-1.1524] ), (matrix3 [-0.8502,-0.1642, 0.5 ] [ 0.4909, 0.0947, 0.866 ] [-0.1896, 0.9818, 0 ] [-2.477 ,-0.3112, 0.0001] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [ 0.4849, 0.7034,-0.5196] [ 0.8733,-0.421 , 0.2449] [-2.3547,-1.5906, 2.6455] ), (matrix3 [-0.433 , 0.7499,-0.5 ] [-0.708 , 0.0602, 0.7035] [-0.5577,-0.6586,-0.5049] [-4.3745,-1.9259, 1.5871] ), (matrix3 [ 0.0465, 0.5725, 0.8185] [-0.9849, 0.1626,-0.0578] [-0.1662,-0.8035, 0.5715] [-3.8219,-2.1304, 3.1065] ), (matrix3 [ 0.8297,-0.427 ,-0.3592] [-0.5327,-0.4146,-0.7377] [ 0.1661, 0.8035,-0.5716] [-3.3528, 0.1378, 1.4931] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.2023,-0.1441,-0.9686] [-0.8732, 0.4211,-0.245 ] [-4.8198,-0.4019, 1.954 ] ), (matrix3 [-0.4432,-0.8954, 0.0407] [ 0.7559,-0.349 , 0.5537] [-0.4816, 0.2762, 0.8316] [-4.2671,-0.6064, 3.4737] ), (matrix3 [ 0.8297,-0.427 ,-0.3592] [ 0.0208,-0.6195, 0.7847] [ 0.5576, 0.6586, 0.5051] [-2.8001,-0.0667, 3.0128] ), (matrix3 [ 0.6987,-0.7153, 0 ] [ 0.584 , 0.5705,-0.5774] [ 0.413 , 0.4034, 0.8164] [-1.1185,-3.952 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [-0.1805,-0.9835, 0 ] [-0.9835, 0.1805, 0 ] [-3.0897,-4.2667, 0 ] ), (matrix3 [ 0.6987,-0.7153, 0 ] [-0.584 ,-0.5705,-0.5774] [-0.413 ,-0.4034, 0.8164] [-2.2844,-5.091 , 1.1523] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.8972, 0.3341,-0.2885] [ 0.4129, 0.4034,-0.8165] [-1.1187,-3.952 ,-1.1524] ), (matrix3 [-0.8552,-0.1364, 0.4999] [-0.313 , 0.9048,-0.2885] [-0.413 ,-0.4033,-0.8165] [-2.2844,-5.0908,-1.1524] ), (matrix3 [-0.8551,-0.1364, 0.5 ] [ 0.4937, 0.0788, 0.866 ] [ 0.1576,-0.9874, 0 ] [-1.479 ,-5.9153, 0.0001] ), (matrix3 [ 0.1564, 0.8517, 0.5 ] [-0.0904,-0.4917, 0.866 ] [ 0.9835,-0.1806, 0 ] [-0.3133,-4.7765, 0.0001] ) ), #( -- Atoms Tyr (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [-0.1584, 0.5245, 0.8365] [ 0.7745, 0.5915,-0.2241] [ 0.6123,-0.6123, 0.5 ] [-4.237 ,-1.2674, 5.673 ] ), (matrix3 [-0.1584, 0.5245, 0.8365] [ 0.7745, 0.5915,-0.2241] [-0.6123, 0.6123,-0.5 ] [-5.4617,-0.0427, 4.673 ] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.7745, 0.5915,-0.2241] [-0.1584, 0.5245, 0.8365] [-5.0079,-0.1305, 6.0095] ), (matrix3 [ 0.7499, 0.2499,-0.6123] [-0.2499,-0.7499,-0.6123] [ 0.6123,-0.6123, 0.5 ] [-2.42 ,-1.8164, 2.7752] ), (matrix3 [ 0.7499, 0.2499,-0.6123] [-0.2499,-0.7499,-0.6123] [-0.6123, 0.6123,-0.5 ] [-3.6448,-0.5917, 1.7752] ), (matrix3 [-0.5915,-0.7745,-0.2241] [-0.5245, 0.1584, 0.8365] [ 0.6123,-0.6123, 0.5 ] [-5.103 ,-3.8654, 3.5517] ), (matrix3 [-0.5915,-0.7745,-0.2241] [-0.5245, 0.1584, 0.8365] [-0.6123, 0.6123,-0.5 ] [-6.3278,-2.6407, 2.5517] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.5245, 0.1584, 0.8365] [-0.5915,-0.7745,-0.2241] [-6.3069,-4.0276, 2.8275] ), (matrix3 [ 0.5915, 0.7745, 0.2241] [ 0.5245,-0.1584,-0.8365] [ 0.6123,-0.6123, 0.5 ] [-2.737 ,-0.7674, 4.4482] ), (matrix3 [ 0.5915, 0.7745, 0.2241] [ 0.5245,-0.1584,-0.8365] [-0.6123, 0.6123,-0.5 ] [-3.9618, 0.4572, 3.4482] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.5245,-0.1584,-0.8365] [ 0.5915, 0.7745, 0.2241] [-2.7579, 0.6194, 4.1724] ), (matrix3 [ 0.1584,-0.5245,-0.8365] [-0.7745,-0.5915, 0.2241] [ 0.6123,-0.6123, 0.5 ] [-3.603 ,-3.3654, 2.3269] ), (matrix3 [ 0.1584,-0.5245,-0.8365] [-0.7745,-0.5915, 0.2241] [-0.6123, 0.6123,-0.5 ] [-4.8278,-2.1407, 1.3269] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.7745,-0.5915, 0.2241] [ 0.1584,-0.5245,-0.8365] [-4.0569,-3.2776, 0.9904] ), (matrix3 [-0.7499,-0.2499, 0.6123] [ 0.2499, 0.7499, 0.6123] [ 0.6123,-0.6123, 0.5 ] [-5.42 ,-2.8164, 5.2247] ), (matrix3 [-0.7499,-0.2499, 0.6123] [ 0.2499, 0.7499, 0.6123] [-0.6123, 0.6123,-0.5 ] [-6.6448,-1.5917, 4.2247] ), (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-6.2738,-1.5533, 8.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-6.4606,-2.6904, 7 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-8.069 ,-2.4262, 7 ] ), (matrix3 [ 0.1621, 0.9867, 0 ] [-0.8056, 0.1323,-0.5774] [-0.5697, 0.0936, 0.8164] [-7.8822,-1.2891, 8.1523] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-7.882 ,-1.2892, 5.8475] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-7.6952,-0.1519, 7.0001] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.3561, 0.3509, 0.866 ] [ 0.702 , 0.7121, 0 ] [-6.0871,-0.4161, 7.0001] ) ), #( -- Atoms Ser lambda (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [-0.1032, 0.565 , 0.8185] [ 0.2863, 0.8049,-0.5196] [ 0.9525,-0.1807, 0.2449] [-2.1548,-1.9218, 2.6455] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.6995,-0.1251, 0.7035] [-0.3682,-0.7806,-0.5049] [-4.019 ,-2.7685, 1.5871] ), (matrix3 [-0.1032, 0.565 , 0.8185] [-0.9935,-0.0977,-0.0578] [ 0.0473,-0.8192, 0.5715] [-3.4323,-2.823 , 3.1065] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [-0.4073,-0.5383,-0.7377] [-0.0475, 0.8191,-0.5716] [-3.5663,-0.5106, 1.4931] ), (matrix3 [-0.1964,-0.9796, 0.0407] [ 0.2327,-0.0869,-0.9686] [-0.9524, 0.1807,-0.245 ] [-4.8436,-1.4116, 1.954 ] ), (matrix3 [-0.1964,-0.9796, 0.0407] [ 0.8205,-0.1415, 0.5537] [-0.5367, 0.1421, 0.8316] [-4.2568,-1.4661, 3.4737] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [ 0.1805,-0.5929, 0.7847] [ 0.3682, 0.7805, 0.5051] [-2.9795,-0.5651, 3.0128] ) ), #( -- Atoms Cys = Ser lambda (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [-0.1032, 0.565 , 0.8185] [ 0.2863, 0.8049,-0.5196] [ 0.9525,-0.1807, 0.2449] [-2.1548,-1.9218, 2.6455] ), (matrix3 [-0.6123, 0.6123,-0.5 ] [-0.6995,-0.1251, 0.7035] [-0.3682,-0.7806,-0.5049] [-4.019 ,-2.7685, 1.5871] ), (matrix3 [-0.1032, 0.565 , 0.8185] [-0.9935,-0.0977,-0.0578] [ 0.0473,-0.8192, 0.5715] [-3.4323,-2.823 , 3.1065] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [-0.4073,-0.5383,-0.7377] [-0.0475, 0.8191,-0.5716] [-3.5663,-0.5106, 1.4931] ), (matrix3 [-0.1964,-0.9796, 0.0407] [ 0.2327,-0.0869,-0.9686] [-0.9524, 0.1807,-0.245 ] [-4.8436,-1.4116, 1.954 ] ), (matrix3 [-0.1964,-0.9796, 0.0407] [ 0.8205,-0.1415, 0.5537] [-0.5367, 0.1421, 0.8316] [-4.2568,-1.4661, 3.4737] ), (matrix3 [ 0.912 ,-0.1977,-0.3592] [ 0.1805,-0.5929, 0.7847] [ 0.3682, 0.7805, 0.5051] [-2.9795,-0.5651, 3.0128] ) ), #( -- Atoms Trp (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-6.2761,-1.3745, 2.6572] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-4.8619, 0.0396, 2.6572] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-7.6903,-2.7887, 2.6572] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-7.1852,-0.4655, 4.1893] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-5.771 , 0.9486, 4.1893] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-8.5994,-1.8797, 4.1893] ), (matrix3 [ 0.7071, 0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [-0.5416, 0.5416,-0.6427] [-5.3671,-2.2835, 1.1251] ), (matrix3 [ 0.7071, 0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [-0.5416, 0.5416,-0.6427] [-3.9529,-0.8693, 1.1251] ), (matrix3 [-0.7071,-0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [-0.5416, 0.5416,-0.6427] [-6.7813,-3.6977, 1.1251] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-5.1928,-2.4579, 3.9427] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-3.7786,-1.0437, 3.9427] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-6.607 ,-3.8721, 3.9427] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-6.1018,-1.5488, 5.4748] ), (matrix3 [ 0.7071, 0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-4.6876,-0.1346, 5.4748] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.4545, 0.4545, 0.766 ] [ 0.5416,-0.5416, 0.6427] [-7.516 ,-2.963 , 5.4748] ), (matrix3 [ 0.7071, 0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [ 0.5416,-0.5416, 0.6427] [-4.2838,-3.3669, 2.4107] ), (matrix3 [ 0.7071, 0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [ 0.5416,-0.5416, 0.6427] [-2.8696,-1.9527, 2.4107] ), (matrix3 [-0.7071,-0.7071, 0 ] [ 0.4545,-0.4545,-0.766 ] [ 0.5416,-0.5416, 0.6427] [-5.698 ,-4.7811, 2.4107] ), (matrix3 [-0.4545, 0.4545, 0.766 ] [-0.5416, 0.5416,-0.6427] [-0.7071,-0.7071, 0 ] [-7.8558,-4.0375, 3.3 ] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.5416, 0.5416,-0.6427] [ 0.4545,-0.4545,-0.766 ] [-4.3709,-3.2797, 1.0018] ), (matrix3 [-0.7071,-0.7071, 0 ] [-0.5416, 0.5416,-0.6427] [-0.4545, 0.4545, 0.766 ] [-7.098 ,-0.5526, 5.5981] ), (matrix3 [-0.1786,-0.8213,-0.5416] [-0.5416, 0.5416,-0.6427] [-0.8213,-0.1786, 0.5416] [-8.8557,-2.5949, 5.3583] ), (matrix3 [-0.8213,-0.1786, 0.5416] [-0.5416, 0.5416,-0.6427] [-0.1786,-0.8213,-0.5416] [-6.4132,-5.0375, 1.2416] ), (matrix3 [ 0.8213, 0.1786,-0.5416] [-0.5416, 0.5416,-0.6427] [ 0.1786, 0.8213, 0.5416] [-5.0558, 1.205 , 5.3583] ) ), #( -- Atoms Leu teta (matrix3 [ 0.8493, 0.1536, 0.5049] [-0.0035, 0.9583,-0.2856] [ 0.5278,-0.2408,-0.8144] [-1.4643,-2.0369,-1.1495] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.7369, 0.6139,-0.2828] [-0.519 , 0.2459,-0.8185] [-2.942 ,-1.3498,-1.1553] ), (matrix3 [-0.433 , 0.7499, 0.5 ] [ 0.2439,-0.4364, 0.866 ] [-0.8677,-0.4969,-0.006 ] [-3.4341,-2.3984,-0.0085] ), (matrix3 [ 0.0053, 0.003 ,-0.9999] [-0.9837,-0.1793,-0.0057] [-0.1793, 0.9837, 0.002 ] [-2.4625,-0.3084, 0.0028] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [-0.7372, 0.346 ,-0.5803] [-0.5279, 0.2409, 0.8143] [-2.9544,-1.3568, 1.1494] ), (matrix3 [-0.4216,-0.9067,-0.005 ] [ 0.7433,-0.3424,-0.5745] [ 0.5192,-0.2459, 0.8184] [-1.4765,-2.0441, 1.1551] ), (matrix3 [ 0.7553,-0.6552, 0 ] [ 0.5349, 0.6167, 0.5774] [ 0.3783, 0.4361,-0.8164] [-1.0855,-3.7888,-1.18 ] ), (matrix3 [ 0 , 0 , 1 ] [-0.0987,-0.995 , 0 ] [-0.995 , 0.0987, 0 ] [-3.0241,-4.265 ,-0.0277] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.9217, 0.259 , 0.2885] [ 0.3782, 0.4361, 0.8165] [-1.0857,-3.7889, 1.1246] ), (matrix3 [-0.841 ,-0.2065,-0.5 ] [ 0.4855, 0.1193,-0.866 ] [ 0.2385,-0.9711, 0 ] [-1.2829,-5.7751,-0.0278] ), (matrix3 [ 0.0856, 0.8617,-0.5 ] [-0.0495,-0.4975,-0.866 ] [ 0.995 ,-0.0989, 0 ] [-0.2151,-4.5441,-0.0278] ), (matrix3 [ 0.7224,-0.6882, 0.0665] [-0.2275,-0.1458, 0.9627] [ 0.6528, 0.7106, 0.262 ] [-1.8286,-4.5319, 2.6823] ), (matrix3 [-0.6644,-0.6644, 0.342 ] [ 0.5732,-0.1595, 0.8036] [-0.4794, 0.73 , 0.4869] [-3.4268,-4.5045, 2.9998] ), (matrix3 [-0.6644,-0.6644, 0.342 ] [ 0.261 ,-0.6352,-0.7268] [-0.7002, 0.3936,-0.5955] [-3.7384,-4.9793, 1.472 ] ), (matrix3 [ 0.1061, 0.8823, 0.4585] [-0.8954, 0.2853,-0.3416] [-0.4322,-0.3743, 0.8203] [-3.3602,-6.0633, 3.4705] ), (matrix3 [-0.1641, 0.4703,-0.867 ] [-0.7393, 0.5231, 0.4238] [-0.6529,-0.7106,-0.2618] [-3.6717,-6.538 , 1.9429] ), (matrix3 [-0.1641, 0.4703,-0.867 ] [ 0.8619, 0.4957, 0.1057] [ 0.4795,-0.73 ,-0.4868] [-2.0732,-6.5654, 1.6254] ), (matrix3 [ 0.1061, 0.8823, 0.4585] [ 0.7058, 0.2578,-0.6597] [ 0.7003,-0.3937, 0.5954] [-1.7617,-6.0907, 3.1529] ), (matrix3 [ 0.7224,-0.6882,-0.0665] [-0.2275,-0.1458,-0.9627] [ 0.6528, 0.7106,-0.262 ] [-1.8286,-4.5319,-2.6823] ), (matrix3 [-0.6644,-0.6644,-0.342 ] [ 0.5732,-0.1595,-0.8036] [-0.4794, 0.73 ,-0.4869] [-3.4268,-4.5045,-2.9998] ), (matrix3 [-0.6644,-0.6644,-0.342 ] [ 0.261 ,-0.6352, 0.7268] [-0.7002, 0.3936, 0.5955] [-3.7384,-4.9793,-1.472 ] ), (matrix3 [ 0.1061, 0.8823,-0.4585] [-0.8954, 0.2853, 0.3416] [-0.4322,-0.3743,-0.8203] [-3.3602,-6.0633,-3.4705] ), (matrix3 [-0.1641, 0.4703, 0.867 ] [-0.7393, 0.5231,-0.4238] [-0.6529,-0.7106, 0.2618] [-3.6717,-6.538 ,-1.9429] ), (matrix3 [-0.1641, 0.4703, 0.867 ] [ 0.8619, 0.4957,-0.1057] [ 0.4795,-0.73 , 0.4868] [-2.0732,-6.5654,-1.6254] ), (matrix3 [ 0.1061, 0.8823,-0.4585] [ 0.7058, 0.2578, 0.6597] [ 0.7003,-0.3937,-0.5954] [-1.7617,-6.0907,-3.1529] ) ), #( -- Atoms Phe (matrix3 [ 0.1621, 0.9867, 0 ] [ 0.8056,-0.1323,-0.5774] [ 0.5697,-0.0936, 0.8164] [-1.1826,-2.119 , 1.1523] ), (matrix3 [ 0 , 0 ,-1 ] [ 0.8992, 0.4374, 0 ] [ 0.4374,-0.8992, 0 ] [-1.3695,-3.2561, 0 ] ), (matrix3 [ 0 , 0 ,-1 ] [-0.712 , 0.7021, 0 ] [-0.7021,-0.712 , 0 ] [-2.9779,-2.9918, 0 ] ), (matrix3 [ 0.6166,-0.608 , 0.5 ] [-0.5432,-0.7883,-0.2885] [ 0.5696,-0.0936,-0.8165] [-1.1828,-2.1191,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.2625,-0.9207,-0.2885] [-0.5696, 0.0935,-0.8165] [-2.7909,-1.8549,-1.1524] ), (matrix3 [-0.7788,-0.3787, 0.5 ] [ 0.4496, 0.2185, 0.866 ] [-0.4372, 0.8993, 0 ] [-2.604 ,-0.7176, 0.0001] ), (matrix3 [-0.1584, 0.5245, 0.8365] [ 0.7745, 0.5915,-0.2241] [ 0.6123,-0.6123, 0.5 ] [-4.237 ,-1.2674, 5.673 ] ), (matrix3 [-0.1584, 0.5245, 0.8365] [ 0.7745, 0.5915,-0.2241] [-0.6123, 0.6123,-0.5 ] [-5.4617,-0.0427, 4.673 ] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.7745, 0.5915,-0.2241] [-0.1584, 0.5245, 0.8365] [-5.0079,-0.1305, 6.0095] ), (matrix3 [ 0.7499, 0.2499,-0.6123] [-0.2499,-0.7499,-0.6123] [ 0.6123,-0.6123, 0.5 ] [-2.42 ,-1.8164, 2.7752] ), (matrix3 [ 0.7499, 0.2499,-0.6123] [-0.2499,-0.7499,-0.6123] [-0.6123, 0.6123,-0.5 ] [-3.6448,-0.5917, 1.7752] ), (matrix3 [-0.5915,-0.7745,-0.2241] [-0.5245, 0.1584, 0.8365] [ 0.6123,-0.6123, 0.5 ] [-5.103 ,-3.8654, 3.5517] ), (matrix3 [-0.5915,-0.7745,-0.2241] [-0.5245, 0.1584, 0.8365] [-0.6123, 0.6123,-0.5 ] [-6.3278,-2.6407, 2.5517] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.5245, 0.1584, 0.8365] [-0.5915,-0.7745,-0.2241] [-6.3069,-4.0276, 2.8275] ), (matrix3 [ 0.5915, 0.7745, 0.2241] [ 0.5245,-0.1584,-0.8365] [ 0.6123,-0.6123, 0.5 ] [-2.737 ,-0.7674, 4.4482] ), (matrix3 [ 0.5915, 0.7745, 0.2241] [ 0.5245,-0.1584,-0.8365] [-0.6123, 0.6123,-0.5 ] [-3.9618, 0.4572, 3.4482] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.5245,-0.1584,-0.8365] [ 0.5915, 0.7745, 0.2241] [-2.7579, 0.6194, 4.1724] ), (matrix3 [ 0.1584,-0.5245,-0.8365] [-0.7745,-0.5915, 0.2241] [ 0.6123,-0.6123, 0.5 ] [-3.603 ,-3.3654, 2.3269] ), (matrix3 [ 0.1584,-0.5245,-0.8365] [-0.7745,-0.5915, 0.2241] [-0.6123, 0.6123,-0.5 ] [-4.8278,-2.1407, 1.3269] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [-0.7745,-0.5915, 0.2241] [ 0.1584,-0.5245,-0.8365] [-4.0569,-3.2776, 0.9904] ), (matrix3 [-0.7499,-0.2499, 0.6123] [ 0.2499, 0.7499, 0.6123] [ 0.6123,-0.6123, 0.5 ] [-5.42 ,-2.8164, 5.2247] ), (matrix3 [-0.7499,-0.2499, 0.6123] [ 0.2499, 0.7499, 0.6123] [-0.6123, 0.6123,-0.5 ] [-6.6448,-1.5917, 4.2247] ), (matrix3 [ 0.6123,-0.6123, 0.5 ] [ 0.2499, 0.7499, 0.6123] [-0.7499,-0.2499, 0.6123] [-6.7824,-2.454 , 5.3371] ) ) ) -- End RestMat -- Atoms Rests ============================================= --fileIn "$scripts\\Nanoworld\\Script\\Test\\AtomsRestsMat.ms" global RestMat global AtomsName -- AtomsArray -- type: { #turus | #line } -- cloneType: { #copy | #instance | #attach | #none } -- points: { on | off } -- groups: { on | off } -- -- segs: [15] -- sides: [5] -- thickness: [0.01] -- scale: { float } [1] -- position: { point3_pos } -- pivot: { point3_pos } -- rot: { point3_Rotate } -- transform: { matrix3 } -- object: { node } -- getSocket: { #in | #out | int_NumRing | #center1-4 } Return Matrix3 -- offSocket: { #in | #out | #all | on | off } -- ami { 1 - 23 } - AtomsIndex fn createRingsObject type: cloneType: points: groups: bones: segs: sides: thickness: scale: position: pivot: rot: transform: object: getSocket: offSocket: ami: = undo off ( local gr1 local fName = "" local amiName = "" local fAmi = 1 local fSegs = 12 local fSides = 5 local fGroups = true local fCeterPoint = true local fcloneType = #instance local fCopy = false local foffSocket = false if segs != unsupplied then fSegs = segs if sides != unsupplied then fSides = sides if ami != unsupplied then (fAmi = ami; if fAmi > 0 do amiName = AtomsName[fAmi] + "_") if groups != unsupplied then fGroups = (if groups == on then on else off) if cloneType != unsupplied then fcloneType = cloneType if fcloneType == #attach then case fcloneType of ( #copy: fCopy = true #instance: fCopy = false #attach: (fCopy = false; fGroups = off; fCeterPoint = off) default: (fCopy = false; fCeterPoint = off) ) if points != unsupplied then fCeterPoint = (if points == on then on else off) if offSocket != unsupplied then foffSocket = offSocket --local Index_In = 2 --local Index_Out = 12 local Index_In = 5 local Index_Out = 9 local Index_Ami = 2 local ami_Color = red local c1 = (color 80 80 255) -- Blue local c2 = (color 255 80 80) -- Red local c3 = (color 100 255 0) -- Yellow local c4 = (color 255 255 0) -- Green local c5 = (color 0 255 30) -- aCenterPoint Color --local eColor = #(c2,c1,c2,c2,c1,c1,c2,c1,c2,c1,c1,c2,c2,c1,c2,c2,c1,c1,c2,c1,c2,c2,c1,c1) local eColor = #(c1,c2,c1,c1,c2,c2,c1,c2,c1,c2,c2,c1,c1,c2,c1,c1,c2,c2,c1,c2,c1,c1,c2,c2) eColor[Index_In] = c4 eColor[Index_Out] = c3 local ACenterPos = #([0,0,0], [3.40825,0,0], [1.70413,-2.40587,0], [1.70413,-4.40587,0]) local eRingTM = #( (matrix3 [ 0 , 0 , -1 ] [ -0.4311, -0.9022, 0 ] [ -0.9022, 0.4311, 0 ] [ -1.2722, 0.6079, 0 ]), (matrix3 [ 0 , 0 , -1 ] [ 0.7071, -0.7071, 0 ] [ -0.7071, -0.7071, 0 ] [ -0.9970, -0.9970, 0 ]), (matrix3 [ 0.6124,-0.6124, 0.5] [ -0.7845, -0.5489, 0.2885] [ 0.0978, -0.5689, -0.8166] [ 0.1379, -0.8022, -1.1513]), (matrix3 [ -0.6124, 0.6124, 0.5] [ -0.7845, -0.5489, -0.2885] [ 0.0978, -0.5689, 0.8166] [ 0.1379, -0.8022, 1.1513]), (matrix3 [ -0.6124, 0.6124, 0.5] [ 0.7845, 0.5489, 0.2885] [ -0.0978, 0.5689, -0.8166] [ -0.1379, 0.8022, -1.1513]), (matrix3 [ 0.6124,-0.6124, 0.5] [ 0.7845, 0.5489, -0.2885] [ -0.0978, 0.5689, 0.8166] [ -0.1379, 0.8022, 1.1513]), (matrix3 [ 0 , 0 , -1 ] [ -0.7071, 0.7071, 0 ] [ 0.7071, 0.7071, 0 ] [ 0.9970, 0.9970, 0 ]), (matrix3 [ 0 , 0 , 1 ] [ 0.4311, -0.9023, 0 ] [ 0.9023, 0.4311, 0 ] [ 4.6805, 0.6079, 0 ]), (matrix3 [ 0 , 0 , 1 ] [ -0.7071, -0.7071, 0 ] [ 0.7071, -0.7071, 0 ] [ 4.4053, -0.9970, 0 ]), (matrix3 [ -0.6124,-0.6124, -0.5] [ 0.7845, -0.5489, -0.2885] [ -0.0978, -0.5689, 0.8166] [ 3.2703, -0.8022, 1.1513]), (matrix3 [ 0.6124, 0.6124, -0.5] [ 0.7845, -0.5489, 0.2885] [ -0.0978, -0.5689, -0.8166] [ 3.2703, -0.8022, -1.1513]), (matrix3 [ 0.6124, 0.6124, -0.5] [ -0.7845, 0.5489, -0.2885] [ 0.0978, 0.5689, 0.8166] [ 3.5461, 0.8022, 1.1513]), (matrix3 [ -0.6124,-0.6124, -0.5] [ -0.7845, 0.5489, 0.2885] [ 0.0978, 0.5689, -0.8166] [ 3.5461, 0.8022, -1.1513]), (matrix3 [ 0 , 0 , 1 ] [ 0.7071, 0.7071, 0 ] [ -0.7071, 0.7071, 0 ] [ 2.4112, 0.9970, 0 ]), (matrix3 [ 0.7071, 0.5001, 0.5] [ 0.4085, -0.8660, 0.2885] [ 0.5773, 0.0002, -0.8166] [ 2.5181, -2.4056, -1.1513]), (matrix3 [ -0.7071,-0.5001, 0.5] [ 0.4085, -0.8660, -0.2885] [ 0.5773, 0.0002, 0.8166] [ 2.5181, -2.4056, 1.1513]), (matrix3 [ -0.7071,-0.5001, 0.5] [ -0.4085, 0.8660, 0.2885] [ -0.5773, -0.0002, -0.8166] [ 0.8902, -2.4062, -1.1513]), (matrix3 [ 0.7071, 0.5001, 0.5] [ -0.4085, 0.8660, -0.2885] [ -0.5773, -0.0002, 0.8166] [ 0.8902, -2.4062, 1.1513]), (matrix3 [ 0 , 0 , 1 ] [ -0.8164, -0.5774, 0 ] [ 0.5774, -0.8164, 0 ] [ 2.5183, -5.5571, 0 ]), (matrix3 [ 0 , 0 , 1 ] [ -0.8164, 0.5774, 0 ] [ -0.5774, -0.8164, 0 ] [ 0.8900, -5.5571, 0 ]), (matrix3 [ -0.7071, 0.5001, -0.5] [ -0.4085, -0.8660, -0.2885] [ -0.5773, 0.0002, 0.8166] [ 0.8902, -4.4056, 1.1513]), (matrix3 [ 0.7071,-0.5001, -0.5] [ -0.4085, -0.8660, 0.2885] [ -0.5773, 0.0002, -0.8166] [ 0.8902, -4.4056, -1.1513]), (matrix3 [ 0.7071,-0.5001, -0.5] [ 0.4085, 0.8660, -0.2885] [ 0.5773, -0.0002, 0.8166] [ 2.5181, -4.4062, 1.1513]), (matrix3 [ -0.7071, 0.5001, -0.5] [ 0.4085, 0.8660, 0.2885] [ 0.5773, -0.0002, -0.8166] [ 2.5181, -4.4062, -1.1513])) -- eRingTM = for i in $eRing* collect i.transform -- ACenterPos = for i in $ACenter_* collect i.pos -- eColors = for i in $eRing* collect i.wirecolor local fScale = 1. local TM = Matrix3 1 if transform != unsupplied then TM = transform local tScale = TM.scalepart local tmScale = scaleMatrix tScale fScale = if tScale.x > tScale.y then tScale.x else tScale.y fScale = if fScale > tScale.z then fScale else tScale.z if scale != unsupplied then fScale = scale local scaleTM = scaleMatrix [fScale,fScale,fScale] TM = TM * (inverse TM) * (inverse tmScale) * TM if position != unsupplied then TM.translation = position if rot != unsupplied then ( local rotTM = Matrix3 1 if (classof rot) == Point3 then rotTM = (rotateXMatrix rot.x) * (rotateYMatrix rot.y) * (rotateZMatrix rot.z) if (classof rot) == Quat or (classof rot) == AngleAxis or (classof rot) == EulerAngle then rotTM = rot as matrix3 local posTM = transMatrix TM.translation --local scaleTM = scaleMatrix [fScale,fScale,fScale] local scaleTM = scaleMatrix [1,1,1] --TM = TM * (inverse TM) * rotTM * scaleTM * posTM TM = rotTM --* rotTM --(xFormMat rotTM TM) ) local fthickness = 0.1 if thickness != unsupplied then fthickness = thickness local fradius1 = (1 - fthickness) * fScale local fradius2 = fthickness * fScale case foffSocket of ( #in: ( --format "offSocket In\n" if Index_In < Index_Ami do Index_Ami -= 1 deleteItem eRingTM Index_In ) #out:( --format "offSocket Out\n" if Index_In < Index_Ami do Index_Ami -= 1 deleteItem eRingTM Index_Out ) true: ( --format "offSocket On\n" if Index_In < Index_Ami do Index_Ami -= 1 if Index_Out < Index_Ami do Index_Ami -= 1 if Index_in < Index_Out do Index_Out -= 1 deleteItem eRingTM Index_In deleteItem eRingTM Index_Out ) #all:( --format "offSocket All\n" if Index_In < Index_Ami do Index_Ami -= 1 if Index_Out < Index_Ami do Index_Ami -= 1 if Index_in < Index_Out do Index_Out -= 1 deleteItem eRingTM Index_In deleteItem eRingTM Index_Out ) ) if fAmi > 1 then ( if Index_Ami < Index_In do Index_In -= 1 if Index_Ami < Index_Out do Index_Out -= 1 deleteItem eRingTM Index_Ami deleteItem eColor Index_Ami join eRingTM (for i in RestMat[fAmi] collect copy i) join eColor (for i = 1 to RestMat[fAmi].count collect ami_Color) ) for i = 1 to eRingTM.count do eRingTM[i].pos *= scaleTM for i = 1 to ACenterPos.count do ACenterPos[i] *= scaleTM for i = 1 to eRingTM.count do eRingTM[i] *= TM for i = 1 to ACenterPos.count do ACenterPos[i] *= TM -- GetSocket ------------------------------------------------------ if getSocket != unsupplied then ( local r = undefined if (classof getSocket) == Name do ( r = case getSocket of( #in: eRingTM[Index_In] #out: eRingTM[Index_Out] #center_in: ( local pos1 = ACenterPos[1] local m2 = eRingTM[Index_In] local m3 = copy m2 local pos = m2.pos + (m2.pos - pos1) m3.pos = pos m3 ) #center_out: ( local pos1 = ACenterPos[2] local m2 = eRingTM[Index_Out] local m3 = copy m2 local pos = m2.pos + (m2.pos - pos1) m3.pos = pos m3 ) #center1: ACenterPos[1] #center2: ACenterPos[2] #center3: ACenterPos[3] #center4: ACenterPos[4] ) ) if (classof getSocket) == Integer and getSocket > 0 and getSocket <= eRingTM.count do ( r = eRingTM[getSocket] ) return r ) local tObj = torus smooth:2 radius1:fradius1 radius2:fradius2 segs:fSegs sides:fSides position:[0,0,0] prefix:"tempCRO_eRing_" wirecolor:c1 --instance local clObj = if fCopy then ( for i = 1 to eRingTM.count collect (copy tObj transform:eRingTM[i] prefix:"eRing_" wirecolor:eColor[i]) ) else ( for i = 1 to eRingTM.count collect (instance tObj transform:eRingTM[i] prefix:"eRing_" wirecolor:eColor[i]) ) local sGr = clObj if fCeterPoint do ( local tpObj = point pos:[0,0,0] size:0.5 wirecolor:c5 prefix:"tempCRO_ACenter_" local clACenter = if fCopy then (for i = 1 to ACenterPos.count collect (copy tpObj pos:ACenterPos[i] prefix:"ACenter_" wirecolor:c5)) else (for i = 1 to ACenterPos.count collect (instance tpObj pos:ACenterPos[i] prefix:"ACenter_" wirecolor:c5)) sGr = clObj + clACenter ) if fGroups do ( gr1 = group sGr select:off prefix:(fName + "RingsAtom_" + amiName) gr1.pivot = TM.translation --[0,0,0] --print gr1 --maxOps.CloneNodes &obj newNodes:&cobj transform:(eRingTM[2]) ) if fcloneType == #attach do ( gr1 = mesh vertices: #() faces: #() select:off prefix:(fName + "RingsAtom_" + amiName) for i in sGr do attach gr1 i gr1.pivot = TM.translation ) delete $tempCRO* (gr1) ) global createRingsObject fn ringAtoms aAtomsTM amiOn: offSocket: single: segs: sides: =( local fName = "" local fSingle = false local fAmiOn = true local foffSocket = true local fSegs = 12 local fSides = 5 if segs != unsupplied then fSegs = segs if sides != unsupplied then fSides = sides if single != unsupplied do fSingle = single if AmiOn != unsupplied do fAmiOn = AmiOn if offSocket != unsupplied do foffSocket = offSocket local tstart = timeStamp() --format "fn ringAtoms aAtomsTM amiOn:% offSocket:% single:%\n" fAmiOn foffSocket fSingle --format "-- !!@ Start fn ringAtoms ---\n" --format "Num Atoms: %\n" (aAtomsTM.count) --print aAtomsTM local tm3 = (matrix3 [-0.0289494,-0.0072179,-0.00313582] [0.00304267,0.000758627,-0.0298357] [0.00725766,-0.0291089,0] [2.04156,0.787284,-0.138013]) --local ra = createRingsObject scale:(11.5 * .03) transform:(tm3) local mm = Multimaterial numsubs:20 for i = 1 to 20 do ( cl1 = round (i / 20. * 255.) cl2 = (255 - cl1) mm.materialList[i].Diffuse = color cl2 0 cl1 ) local gr1 if Single do gr1 = mesh vertices: #() faces: #() select:off prefix:(fName + "RingsAtom_") progressStart "Create Atoms ..." local fCacel = false local i = 1 while i <= aAtomsTM.count and not fCacel do ( local soff = foffSocket if foffSocket do ( if i == 1 do soff = #out if i == aAtomsTM.count do soff = #in ) --maxOps.CloneNodes &gr1 newNodes:&g6 --obj=g6[1] local m = aAtomsTM[i][1] local a = if fAmiOn then aAtomsTM[i][2] else 0 m = tm3 * m local ra = createRingsObject scale:(11.5 * .03) transform:(m) ami:a cloneType:#attach points:off offSocket:soff segs:fSegs sides:fSides local mi = (i / (aAtomsTM.count as float) * 19) as integer + 1 ra.material = mm.materialList[mi] if Single do attach gr1 ra -- Update Progress Bar progressUpdate (100.0 * i / aAtomsTM.count) --format "progressUpdate %\n" (100.0 * i / aAtomsTM.count) fCacel = getProgressCancel() if fCacel do format "while:% loops. fCacel:% \n" i fCacel i +=1 ) progressEnd() local tend = timeStamp() --format "-- !!@ End fn ringAtoms ---\n" --format "Time: %s \n" ((tend - tstart) / 1000.0) (gr1) ) global createRingsObject fn buildCATrace aAtomsTM lineSides: =( local fName = "" local fLineSides = 6 local c1 = (color 255 236 27) --format "-- !!> Start fn buildCATrace ---\n" if aAtomsTM.count < 1 do return undefined if lineSides != unsupplied then fLineSides = lineSides local tstart = timeStamp() local tm3 = (matrix3 [-0.0289494,-0.0072179,-0.00313582] [0.00304267,0.000758627,-0.0298357] [0.00725766,-0.0291089,0] [2.04156,0.787284,-0.138013]) --local ra = createRingsObject scale:(11.5 * .03) transform:(tm3) local mm = Multimaterial numsubs:20 for i = 1 to 20 do ( local cl1 = round (i / 20. * 255.) local cl2 = (255 - cl1) mm.materialList[i].Diffuse = color cl1 0 cl2 ) local gr1 progressStart "Create CA Trace ..." local mIn = createRingsObject scale:(11.5 * .03) getSocket:#in local mOut = createRingsObject scale:(11.5 * .03) getSocket:#out local aline = splineShape \ wirecolor:c1 \ sides:fLineSides \ thickness:.1 \ renderable:on \ displayRenderMesh:on \ prefix:("lineCATrace_") addNewSpline aline local m1 = mIn * tm3 * (aAtomsTM[1][1]) addknot aline 1 #corner #line (m1.pos) local fCacel = false local i = 1 while i <= aAtomsTM.count and not fCacel do ( local m = aAtomsTM[i][1] m = tm3 * m --m = tm3 * m --local p1 = m.position addknot aline 1 #corner #line (m.pos) --updateShape aline local mi = (i / (aAtomsTM.count as float) * 19) as integer + 1 setMaterialID aline 1 i mi --ra.material = mm.materialList[mi] -- Update Progress Bar progressUpdate (100.0 * i / aAtomsTM.count) --format "progressUpdate %\n" (100.0 * i / aAtomsTM.count) fCacel = getProgressCancel() if fCacel do format "while:% loops. fCacel:% \n" i fCacel i +=1 ) updateShape aline aline.material = mm progressEnd() local tend = timeStamp() gr1 = aline --format "-- !!@ End fn buildCATrace ---\n" --format "Time: %s \n" ((tend - tstart) / 1000.0) (gr1) ) fn mainScript =( if TDNEFile != undefined then ( local FileName = "" FileName = getOpenFileName caption:"Open EMBL File" types:"EMBL(*.dne)|*.dne|(*.txt)|*.txt|All(*.*)|*.*|)" if FileName == undefined or not (doesFileExist FileName) then return false --format "FileName: \"%\"\n" FileName local ftype = getFilenameType FileName local fName = filenameFromPath FileName if (ftype as name) == #'.gen' then ( --local r = genImp() --if r.readGenFile FileName do r.printGenFile() ) else ( if (ftype as name) == #'.dne' then ( local fDNEFile = TDNEFile() --fDNEFile.LoadAngles() if not fDNEFile.loadFrom FileName do return false fDNEFile.ConvertToGroups() fDNEFile.MakeAtoms() -- Create Atoms fDNEFile.MakeScript() ) ) gc() ) ) mainScript() )