Subject: Re: protein modeling

From: Shawn Huston <[email-masked]>
Date: Fri, 17 Mar 95 16:10:25 -0600

Dear Shawn,
	
	You can do this simply in Sybyl, starting from the primary sequence. All
you need to do is to rotate the successive monomers by the correct
transformation matrix. All the details are in
	Sundararajan and Marchessault Can. J. Chem. Vol. 53 1975 page 3563.
	I used this method to create a 6-fold sugar triplex, and will include
the SPL for this. Your case will differ in that you will have a differend 
periodicity and you will not have a homopolymer, but this is easily modifed in
the spl.

Good Luck,
Shawn Huston

###
### Triple Helix Construction 
### 
### Virtual Bond Method of Merchessault and Sundararajan
### Can. J. Chem. vol 53 p. 3563 1975
###
### ( assumes use of the MERGE default tailor variables as listed in
###   the Sybyl 6.1 Manual)

#
#   Read in Asymmetric Residue, color and label atom names
#

ZAP (*)
DEFAULT m1
MOL MULT_IN M1 /usr/ananke/shuston/presales/mansur/tripos_ff/Asym_Res.mol2
#COLOR TYPE M1
#LABEL NAME M1(*)

#
#  Determine Helical Parameter h
#

SETVAR an_id 8
SETVAR a1_id 10
SETVAR zn_id %atom_info($an_id z)
SETVAR z1_id %atom_info($a1_id z)
SETVAR h     %math( $z1_id - $zn_id )
ECHO  'Helix Parameter h is' $h

#
#  Get the ID number of the O2 Oxygen atom
#

FOR i in %range( 1 %mol_info(m1 natoms) )
   if %streql( %atom_info($i name) "O2")
       DEFINE STATIC_SET atom $i O2SET O2_atoms
    ENDIF
ENDFOR

#
#  copy M1 to M2, Apply Helix Symmetry Operation to M2 (residue 2)
#

COPY M1 M2
STATIC ROTATE D2 0.0 0.0 60.0
STATIC TRANSLATE D2 0.0 0.0 $h
FREEZE molecule D2

#
#  copy M2 to M3, Apply Helix Symmetry Operation to M3 (residue 3)
#

COPY M2 M3
STATIC ROTATE D3 0.0 0.0 60.0
STATIC TRANSLATE D3 0.0 0.0 $h
FREEZE molecule D3

#
#  copy M3 to M4, Apply Helix Symmetry Operation to M4 (residue 4)
#

COPY M3 M4
STATIC ROTATE D4 0.0 0.0 60.0
STATIC TRANSLATE D4 0.0 0.0 $h
FREEZE molecule D4

#
#   There are no more Display areas so do some building here:
#

#
#  Freeze M2 and Merge M2 to M1 (O(1)-C(n) bond will form automatically
#

MERGE m2 m1
ZAP m2

#
#  Freeze M3 and Merge M3 to M1 (O(1)-C(n) bond will form automatically
#

FREEZE molecule D3
MERGE m3 m1
ZAP m3

#
#  copy M4 to M2, Apply Helix Symmetry Operation to M2 (residue 5)
#

COPY M4 M2
STATIC ROTATE D2 0.0 0.0 60.0
STATIC TRANSLATE D2 0.0 0.0 $h
FREEZE molecule D2

#
#  copy M2 to M3, Apply Helix Symmetry Operation to M3 (residue 6)
#

COPY M2 M3
STATIC ROTATE D3 0.0 0.0 60.0
STATIC TRANSLATE D3 0.0 0.0 $h
FREEZE molecule D3

#
#  Freeze M4 and Merge M4 to M1 (O(1)-C(n) bond will form automatically
#

FREEZE molecule D4
MERGE m4 m1
ZAP m4

#
#  Freeze M2 and Merge M2 to M1 (O(1)-C(n) bond will form automatically
#

FREEZE molecule D2
MERGE m2 m1
ZAP m2

#
#  Freeze M3 and Merge M3 to M1 (O(1)-C(n) bond will form automatically
#

FREEZE molecule D3
MERGE m3 m1
ZAP m3

#
#  The single strand is now built. Make 2 copies of this, and rotate them
#  by +- 120.0 deg. about the helix (z) axis in order to produce the triple
#  helix.
#

COPY M1 M2
STATIC ROTATE D2 0.0 0.0  120.0
COPY M1 M3
STATIC ROTATE D3 0.0 0.0 -120.0
FREEZE molecule ALL
MERGE M2 M1
MERGE M3 M1
ZAP M2
ZAP M3

#
#  Add the remaining Hydrogens
#
BIO ADDH * ALL

#
#  Name the Residues and Label the 3 distinct chains
#

MODIFY substructure name * sequential_auto
BIO SET chainname 7,8,9,10,11,12 B
BIO SET chainname 13,14,15,16,17,18 C

#
#  Define each chain as a set
#

#
#  Create the set of all O2 atoms
#

FOR i in %range( 1 %mol_info(m1 natoms) )
   if %streql( %atom_info($i name) "O2")
       MODIFY LOCAL_SET definition O2SET $i YES
    ENDIF
ENDFOR