# Purpose: build a structure from a sequence in the alignment file: # either build from scratch (GENERATE_METHOD='generate_xyz') or # copy the equivalent coordinates from the homologue(s) # (GENERATE_METHOD='transfer_xyz'). # # Input : ALNFILE, SEQUENCE, MODEL # # System : TOPLIB, PARLIB # # Output : file with a model, and a file with stereochemical restraints SUBROUTINE ROUTINE = 'generate_xyz' # SET ALIGNMENT_FORMAT = 'PIR' READ_ALIGNMENT FILE = ALNFILE, ALIGN_CODES = SEQUENCE READ_TOPOLOGY FILE = TOPLIB READ_PARAMETERS FILE = PARLIB CALL ROUTINE = 'create_topology' BUILD_MODEL INITIALIZE_XYZ = ON, BUILD_METHOD = '3D_INTERPOLATION' WRITE_MODEL FILE = MODEL RETURN END_SUBROUTINE SUBROUTINE ROUTINE = 'transfer_xyz' # SET ALIGNMENT_FORMAT = 'PIR' READ_ALIGNMENT FILE = ALNFILE, ALIGN_CODES = KNOWNS READ_ALIGNMENT FILE = ALNFILE, ALIGN_CODES = KNOWNS IF ARGUMENTS = INITIAL_MALIGN3D 0, OPERATION = 'NE' SET OUTPUT2 = OUTPUT MALIGN3D FIT = off, GAP_PENALTIES_3D = 0 4, OUTPUT = 'SHORT' SET OUTPUT = OUTPUT2 END_IF READ_ALIGNMENT FILE = ALNFILE, ALIGN_CODES = KNOWNS SEQUENCE READ_TOPOLOGY FILE = TOPLIB READ_PARAMETERS FILE = PARLIB CALL ROUTINE = 'create_topology' TRANSFER_XYZ CLUSTER_CUT = -1.0 BUILD_MODEL INITIALIZE_XYZ = OFF WRITE_MODEL FILE = MODEL RETURN END_SUBROUTINE SUBROUTINE ROUTINE = 'read_xyz' # SET ALIGNMENT_FORMAT = 'PIR' # READ_ALIGNMENT FILE = ALNFILE, ALIGN_CODES = SEQUENCE READ_TOPOLOGY FILE = TOPLIB READ_PARAMETERS FILE = PARLIB DELETE_ALIGNMENT READ_MODEL FILE = MODEL CALL ROUTINE = 'create_topology' # READ_MODEL FILE = MODEL RETURN END_SUBROUTINE SUBROUTINE ROUTINE = 'create_topology' GENERATE_TOPOLOGY ADD_SEQUENCE = OFF CALL ROUTINE = 'default_patches' CALL ROUTINE = 'special_patches' RETURN END_SUBROUTINE