1st step for natively supporting AMBER files: reading coordinates in amber format.

added 1 regtest.


svn-origin-rev: 7861
This commit is contained in:
Teodoro Laino 2008-10-28 22:41:39 +00:00
parent 70503f1159
commit 6d82685d1c
11 changed files with 611 additions and 11 deletions

View file

@ -582,6 +582,7 @@ OBJECTS_GENERIC =\
timings.o\
timings_mp.o\
topology.o\
topology_amber.o\
topology_coordinate_util.o\
topology_connectivity_util.o\
topology_constraint_util.o\

View file

@ -274,7 +274,8 @@ MODULE input_constants
do_coord_pdb=0,&
do_coord_xyz=1,&
do_coord_g96=2,&
do_coord_off=3
do_coord_crd=3,&
do_coord_off=4
INTEGER, PARAMETER, PUBLIC :: do_ff_undef=0,&
do_ff_quartic=1,&

View file

@ -365,6 +365,11 @@ CONTAINS
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
CALL section_add_keyword(print_key,keyword,error=error)
CALL keyword_release(keyword,error=error)
CALL keyword_create(keyword,"crd_info",&
description="if the printkey is active prints information regarding CRD",&
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
CALL section_add_keyword(print_key,keyword,error=error)
CALL keyword_release(keyword,error=error)
CALL keyword_create(keyword,"gtop_info",&
description="if the printkey is active prints information regarding GROMOS Topology",&
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
@ -1245,12 +1250,13 @@ CONTAINS
CALL keyword_create(keyword, name="COORD_FILE_FORMAT",&
variants=s2a("COORDINATE"),&
description="Set up the way in which coordinates will be read.",&
usage="COORD_FILE_FORMAT (PDB||XYZ||G96||OFF)", &
enum_c_vals=s2a( "PDB","XYZ","G96","OFF"),&
enum_i_vals=(/do_coord_pdb, do_coord_xyz, do_coord_g96, do_coord_off/),&
usage="COORD_FILE_FORMAT (PDB|XYZ|G96|CRD|OFF)", &
enum_c_vals=s2a( "PDB","XYZ","G96","CRD","OFF"),&
enum_i_vals=(/do_coord_pdb, do_coord_xyz, do_coord_g96, do_coord_crd, do_coord_off/),&
enum_desc=s2a("Coordinates provided through a PDB file format",&
"Coordinates provided through an XYZ file format",&
"Coordinates provided through a GROMOS96 file format",&
"Coordinates provided through an AMBER file format",&
"Coordinates read in the &COORD section of the input file"),&
default_i_val=do_coord_off,error=error)
CALL section_add_keyword(section,keyword,error=error)

View file

@ -20,8 +20,8 @@ MODULE topology
USE f77_blas
USE input_constants, ONLY: &
do_conn_g87, do_conn_g96, do_conn_generate, do_conn_mol_set, &
do_conn_off, do_conn_psf, do_conn_psf_u, do_coord_g96, do_coord_pdb, &
do_coord_xyz
do_conn_off, do_conn_psf, do_conn_psf_u, do_coord_crd, do_coord_g96, &
do_coord_pdb, do_coord_xyz
USE input_section_types, ONLY: section_vals_get,&
section_vals_get_subs_vals,&
section_vals_type,&
@ -40,6 +40,7 @@ MODULE topology
USE termination, ONLY: stop_program
USE timings, ONLY: timeset,&
timestop
USE topology_amber, ONLY: read_coordinate_crd
USE topology_connectivity_util, ONLY: topology_connectivity_pack
USE topology_constraint_util, ONLY: topology_constraint_pack
USE topology_coordinate_util, ONLY: topology_coordinate_pack
@ -507,6 +508,10 @@ CONTAINS
CALL read_coordinate_g96 (topology,para_env,subsys_section,error)
CALL read_atoms_input ( topology, overwrite=.TRUE.,&
subsys_section=subsys_section,save_mem=save_mem,error=error)
CASE (do_coord_crd)
CALL read_coordinate_crd (topology,para_env,subsys_section,error)
CALL read_atoms_input ( topology, overwrite=.TRUE.,&
subsys_section=subsys_section,save_mem=save_mem,error=error)
CASE (do_coord_pdb)
CALL read_coordinate_pdb (topology,para_env,subsys_section,error)
CALL read_atoms_input ( topology, overwrite=.TRUE.,&

266
src/topology_amber.F Normal file
View file

@ -0,0 +1,266 @@
!-----------------------------------------------------------------------------!
! CP2K: A general program to perform molecular dynamics simulations !
! Copyright (C) 2000 - 2008 CP2K developers group !
!-----------------------------------------------------------------------------!
! *****************************************************************************
!> \brief Handles all functions used to read and interpret AMBER coordinates
!> and topology files
!> \author Teodoro Laino [tlaino] - University of Zurich 10.2008
! *****************************************************************************
MODULE topology_amber
USE convert_units, ONLY: convert_to_cp2k_units
USE cp_output_handling, ONLY: cp_print_key_finished_output,&
cp_print_key_unit_nr
USE cp_para_types, ONLY: cp_para_env_type
USE cp_parser_methods, ONLY: parser_get_next_line,&
parser_get_object
USE cp_parser_types, ONLY: cp_parser_type,&
parser_create,&
parser_release
USE f77_blas
USE input_cp2k_restarts, ONLY: section_velocity_val_set
USE input_section_types, ONLY: section_vals_get_subs_vals,&
section_vals_type
USE kinds, ONLY: default_string_length,&
dp
USE memory_utilities, ONLY: reallocate
USE timings, ONLY: timeset,&
timestop
USE topology_types, ONLY: atom_info_type,&
topology_parameters_type
#include "cp_common_uses.h"
IMPLICIT NONE
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'topology_amber'
REAL(KIND=dp), PARAMETER, PUBLIC :: amber_conv_factor = 20.455_dp
PRIVATE
PUBLIC :: read_coordinate_crd
CONTAINS
! *****************************************************************************
!> \brief Reads the `coord' version generated by the PARM or LEaP programs, as
!> well as the `restrt' version, resulting from energy minimization or
!> molecular dynamics in SANDER or GIBBS. It may contain velocity and
!> periodic box information.
!>
!> Official Format from the AMBER homepage
!> FORMAT(20A4) ITITL
!> ITITL : the title of the current run, from the AMBER
!> parameter/topology file
!>
!> FORMAT(I5,5E15.7) NATOM,TIME
!> NATOM : total number of atoms in coordinate file
!> TIME : option, current time in the simulation (picoseconds)
!>
!> FORMAT(6F12.7) (X(i), Y(i), Z(i), i = 1,NATOM)
!> X,Y,Z : coordinates
!>
!> IF dynamics
!>
!> FORMAT(6F12.7) (VX(i), VY(i), VZ(i), i = 1,NATOM)
!> VX,VY,VZ : velocities (units: Angstroms per 1/20.455 ps)
!>
!> IF constant pressure (in 4.1, also constant volume)
!>
!> FORMAT(6F12.7) BOX(1), BOX(2), BOX(3)
!> BOX : size of the periodic box
!>
!>
!> \author Teodoro Laino [tlaino] - University of Zurich 10.2008
! *****************************************************************************
SUBROUTINE read_coordinate_crd (topology,para_env,subsys_section,error)
TYPE(topology_parameters_type) :: topology
TYPE(cp_para_env_type), POINTER :: para_env
TYPE(section_vals_type), POINTER :: subsys_section
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'read_coordinate_crd', &
routineP = moduleN//':'//routineN
CHARACTER(LEN=default_string_length) :: string
INTEGER :: handle, iw, j, natom, stat
LOGICAL :: failure, my_end, &
setup_velocities
REAL(KIND=dp), DIMENSION(:, :), POINTER :: velocity
TYPE(atom_info_type), POINTER :: atom_info
TYPE(cp_logger_type), POINTER :: logger
TYPE(cp_parser_type), POINTER :: parser
TYPE(section_vals_type), POINTER :: velocity_section
NULLIFY(parser, logger, velocity)
logger => cp_error_get_logger(error)
iw = cp_print_key_unit_nr(logger,subsys_section,"PRINT%TOPOLOGY_INFO/CRD_INFO",&
extension=".subsysLog",error=error)
CALL timeset(routineN,handle)
atom_info => topology%atom_info
IF (iw>0) WRITE(iw,*) " Reading in CRD file ",TRIM(topology%coord_file_name)
! Title Section
IF(iw>0) WRITE(iw,'(T2,A)') 'CRD_INFO| Parsing the TITLE section'
CALL parser_create(parser,topology%coord_file_name,para_env=para_env,error=error)
CALL parser_get_next_line(parser,1,error=error)
CALL parser_get_object(parser,string,string_length=default_string_length,error=error)
IF(iw>0) WRITE(iw,'(T2,A)') 'CRD_INFO| '//TRIM(string)
! Natom and Time (which we ignore)
CALL parser_get_next_line(parser,1,error=error)
CALL parser_get_object(parser,natom,error=error)
topology%natoms = natom
IF(iw>0) WRITE(iw,'(T2,A,I0)') 'CRD_INFO| Number of atoms: ',natom
CALL reallocate(atom_info%label_molname, 1, natom)
CALL reallocate(atom_info%label_resname, 1, natom)
CALL reallocate(atom_info%label_resid, 1, natom)
CALL reallocate(atom_info%label_atmname, 1, natom)
CALL reallocate(atom_info%r, 1,3,1,natom)
CALL reallocate(atom_info%atm_mass, 1, natom)
CALL reallocate(atom_info%atm_charge, 1, natom)
CALL reallocate(atom_info%occup, 1, natom)
CALL reallocate(atom_info%beta, 1, natom)
CALL reallocate(atom_info%element, 1, natom)
! Coordinates
topology%aa_element = .TRUE.
topology%molname_generated = .TRUE.
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
DO j = 1, natom-MOD(natom,2), 2
IF (my_end) EXIT
READ(parser%input_line,*)atom_info%r(1,j ),atom_info%r(2,j ),atom_info%r(3,j ),&
atom_info%r(1,j+1),atom_info%r(2,j+1),atom_info%r(3,j+1)
! All these information will have to be setup elsewhere..
! CRD file does not contain anything related..
atom_info%label_atmname(j ) = "__UNDEF__"
atom_info%label_molname(j ) = "__UNDEF__"
atom_info%label_resname(j ) = "__UNDEF__"
atom_info%element (j ) = "__UNDEF__"
atom_info%label_resid (j ) = HUGE(0)
atom_info%atm_mass (j ) = HUGE(0.0_dp)
atom_info%atm_charge (j ) = -HUGE(0.0_dp)
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j ))
atom_info%label_atmname(j+1) = "__UNDEF__"
atom_info%label_molname(j+1) = "__UNDEF__"
atom_info%label_resname(j+1) = "__UNDEF__"
atom_info%element (j+1) = "__UNDEF__"
atom_info%label_resid (j+1) = HUGE(0)
atom_info%atm_mass (j+1) = HUGE(0.0_dp)
atom_info%atm_charge (j+1) = -HUGE(0.0_dp)
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j+1))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j+1))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j+1))
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
END DO
! Trigger error
IF ((my_end).AND.(j/=natom-MOD(natom,2)+1)) THEN
CALL cp_assert(j==natom,cp_fatal_level,cp_assertion_failed,routineP,&
"Error while reading CRD file. Unexpected end of file."//&
CPSourceFileRef,&
only_ionode=.TRUE.)
ELSE IF (MOD(natom,2)/=0) THEN
! In case let's handle the last atom
j = natom
READ(parser%input_line,*)atom_info%r(1,j ),atom_info%r(2,j ),atom_info%r(3,j )
! All these information will have to be setup elsewhere..
! CRD file does not contain anything related..
atom_info%label_atmname(j ) = "__UNDEF__"
atom_info%label_molname(j ) = "__UNDEF__"
atom_info%label_resname(j ) = "__UNDEF__"
atom_info%element (j ) = "__UNDEF__"
atom_info%label_resid (j ) = HUGE(0)
atom_info%atm_mass (j ) = HUGE(0.0_dp)
atom_info%atm_charge (j ) = -HUGE(0.0_dp)
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j ))
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
END IF
IF (my_end) THEN
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
"No VELOCITY or BOX information found in CRD file. "//&
CPSourceFileRef,&
only_ionode=.TRUE.)
ELSE
! Velocities
CALL reallocate(velocity,1,3,1,natom)
DO j = 1, natom-MOD(natom,2), 2
IF (my_end) EXIT
READ(parser%input_line,*)velocity(1,j ),velocity(2,j ),velocity(3,j ),&
velocity(1,j+1),velocity(2,j+1),velocity(3,j+1)
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j ))
CALL convert_to_cp2k_units("PS",time=velocity(1,j ),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(2,j ),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(3,j ),t_power=-1)
velocity(1:3,j ) = velocity(1:3,j )*amber_conv_factor
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j+1))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j+1))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j+1))
CALL convert_to_cp2k_units("PS",time=velocity(1,j+1),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(2,j+1),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(3,j+1),t_power=-1)
velocity(1:3,j+1) = velocity(1:3,j+1)*amber_conv_factor
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
END DO
setup_velocities = .TRUE.
IF ((my_end).AND.(j/=natom-MOD(natom,2)+1)) THEN
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
"No VELOCITY information found in CRD file. Ignoring BOX information. "//&
"Please provide the BOX information directly from the main CP2K input! "//&
CPSourceFileRef,&
only_ionode=.TRUE.)
setup_velocities = .FALSE.
ELSE IF (MOD(natom,2)/=0) THEN
! In case let's handle the last atom
j = natom
READ(parser%input_line,*)velocity(1,j ),velocity(2,j ),velocity(3,j )
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j ))
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j ))
CALL convert_to_cp2k_units("PS",time=velocity(1,j ),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(2,j ),t_power=-1)
CALL convert_to_cp2k_units("PS",time=velocity(3,j ),t_power=-1)
velocity(1:3,j ) = velocity(1:3,j )*amber_conv_factor
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
END IF
IF (setup_velocities) THEN
velocity_section => section_vals_get_subs_vals(subsys_section,"VELOCITY",error=error)
CALL section_velocity_val_set(velocity_section, velocity=velocity, &
conv_factor=1.0_dp, error=error)
END IF
DEALLOCATE(velocity,STAT=stat)
CPPostcondition(stat==0,cp_failure_level,routineP,error,failure)
END IF
IF (my_end) THEN
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
"BOX information missing in CRD file. "//&
CPSourceFileRef,&
only_ionode=.TRUE.)
ELSE
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
"BOX information found in CRD file. They will be ignored."//&
"Please provide the BOX information directly from the main CP2K input!"//&
CPSourceFileRef,&
only_ionode=.TRUE.)
END IF
CALL parser_release(parser,error=error)
CALL cp_print_key_finished_output(iw,logger,subsys_section,&
"PRINT%TOPOLOGY_INFO/CRD_INFO",error=error)
CALL timestop(handle)
END SUBROUTINE read_coordinate_crd
END MODULE topology_amber

View file

@ -977,14 +977,14 @@ CONTAINS
! *****************************************************************************
SUBROUTINE setup_g4x6_list(g4x6_list, ilist, cons_info, ng4x6_restraint, error)
TYPE(g4x6_constraint_type), &
DIMENSION(:), POINTER :: g4x6_list
DIMENSION(:), POINTER :: g4x6_list
INTEGER, DIMENSION(:), POINTER :: ilist
TYPE(constraint_info_type), POINTER :: cons_info
INTEGER, INTENT(OUT) :: ng4x6_restraint
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'setup_g4x6_list', &
routineP = moduleN//':'//routineN
routineP = moduleN//':'//routineN
INTEGER :: j, ng4x6
LOGICAL :: failure
@ -1123,14 +1123,14 @@ CONTAINS
! *****************************************************************************
SUBROUTINE setup_lg4x6(lg4x6, g4x6_list, first_atom, last_atom, error)
TYPE(local_g4x6_constraint_type), &
DIMENSION(:), POINTER :: lg4x6
DIMENSION(:), POINTER :: lg4x6
TYPE(g4x6_constraint_type), &
DIMENSION(:), POINTER :: g4x6_list
DIMENSION(:), POINTER :: g4x6_list
INTEGER, INTENT(IN) :: first_atom, last_atom
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'setup_lg4x6', &
routineP = moduleN//':'//routineN
routineP = moduleN//':'//routineN
INTEGER :: kk
LOGICAL :: failure

View file

@ -23,3 +23,5 @@ water_2_TS.inp 25
water_2_TS_CG.inp 25
argon.inp 25
2d_pot.inp 25
#amber files
ace_ala_nme.inp 7

View file

@ -0,0 +1,53 @@
&FORCE_EVAL
METHOD FIST
&MM
&FORCEFIELD
parm_file_name ../sample_pot/ace_ala_nme.pot
parmtype CHM
&SPLINE
EMAX_SPLINE 1.0
&END
&END FORCEFIELD
&POISSON
&EWALD
EWALD_TYPE ewald
ALPHA .36
GMAX 29
&END EWALD
&END POISSON
&END MM
&SUBSYS
&CELL
ABC 50.0 50.0 50.0
UNIT ANGSTROM
&END CELL
&TOPOLOGY
CHARGE_BETA
CONN_FILE_NAME ../sample_psf/ace_ala_nme.psf
CONNECTIVITY PSF
COORD_FILE_NAME ../sample_crd/ace_ala_nme.crd
COORDINATE CRD
&DUMP_PDB
&END
&DUMP_PSF
&END
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PRINT_LEVEL LOW
PROJECT ace_ala_nme
RUN_TYPE GEO_OPT
&END GLOBAL
&MOTION
&GEO_OPT
MAX_ITER 50
&END
&PRINT
&TRAJECTORY
&END
&RESTART OFF
&END
&END
&END MOTION

View file

@ -0,0 +1,13 @@
ACE
22
2.0000010 1.0000000 -0.0000013 2.0000010 2.0900000 0.0000001
1.4862640 2.4538490 0.8898240 1.4862590 2.4538520 -0.8898200
3.4274200 2.6407950 -0.0000030 4.3905800 1.8774060 -0.0000066
3.5553754 3.9696488 -0.0000031 2.7331200 4.5561601 -0.0000013
4.8532621 4.6139253 -0.0000043 5.4075960 4.3155388 0.8898151
5.6613044 4.2208425 -1.2321480 5.1232615 4.5213630 -2.1312016
6.6304840 4.7189354 -1.2057908 5.8085401 3.1408723 -1.2413850
4.7126759 6.1294185 0.0000014 3.6006445 6.6527027 0.0000062
5.8460533 6.8348833 0.0000025 6.7370014 6.3591620 -0.0000004
5.8460551 8.2838837 0.0000062 4.8185761 8.6477349 0.0000104
6.3597984 8.6477313 0.8898282 6.3597900 8.6477354 -0.8898188

View file

@ -0,0 +1,167 @@
*>>>>>>> AMBER FF Converted into CHARMM FF style <<<<<<<
*>>>>>>> Generated on :: 20081028 191942.385 +0100 by :: teo <<<<<<<
*>>>>>>> pcihopt3 <<<<<<<
*>>>>>>> Leap Title :: ACE <<<<<<<
*>>>>>>> Send all comments related to the FFs conversion to <<<<<<<
*>>>>>>> teodoro.laino@gmail.com <<<<<<<
BONDS
!
!V(bond) = Kb(b - b0)**2
!
!Kb: kcal/mole/A**2
!b0: A
!
!atom type Kb b0
!
CT1 HC1 340.000000000 1.090000000
CT3 HC2 340.000000000 1.090000000
CT2 H11 340.000000000 1.090000000
N H 434.000000000 1.010000000
CT4 H12 340.000000000 1.090000000
C O 570.000000000 1.229000000
C N 490.000000000 1.335000000
CT1 C 317.000000000 1.522000000
CT2 CT3 310.000000000 1.526000000
CT2 C 317.000000000 1.522000000
N CT2 337.000000000 1.449000000
N CT4 337.000000000 1.449000000
ANGLES
!
!V(angle) = Ktheta(Theta - Theta0)**2
!
!V(Urey-Bradley) = Kub(S - S0)**2
!
!Ktheta: kcal/mole/rad**2
!Theta0: degrees
!Kub: kcal/mole/A**2 (Urey-Bradley)
!S0: A
!
!atom types Ktheta Theta0 Kub S0
!
C N H 50.000000000 120.000051429
HC1 CT1 C 50.000000000 109.500046929
HC1 CT1 HC1 35.000000000 109.500046929
HC2 CT3 HC2 35.000000000 109.500046929
H11 CT2 CT3 50.000000000 109.500046929
H11 CT2 C 50.000000000 109.500046929
CT2 CT3 HC2 50.000000000 109.500046929
H N CT2 50.000000000 118.040050474
N CT2 H11 50.000000000 109.500046929
H12 CT4 H12 35.000000000 109.500046929
H N CT4 50.000000000 118.040050474
N CT4 H12 50.000000000 109.500046929
O C N 80.000000000 122.900052672
C N CT2 50.000000000 121.900052243
CT1 C O 80.000000000 120.400051601
CT1 C N 70.000000000 116.600049972
C N CT4 50.000000000 121.900052243
CT3 CT2 C 63.000000000 111.100047615
CT2 C O 80.000000000 120.400051601
CT2 C N 70.000000000 116.600049972
N CT2 CT3 80.000000000 109.700047015
N CT2 C 63.000000000 110.100047186
DIHEDRALS
!
!V(dihedral) = Kchi(1 + cos(n(chi) - delta))
!
!Kchi: kcal/mole
!n: multiplicity
!delta: degrees
!
!atom types Kchi n delta
!
O C N H 2.000000000 1 0.000000000
O C N H 2.500000000 2 180.000077144
C N CT2 H11 0.000000000 2 0.000000000
HC1 CT1 C O 0.800000000 1 0.000000000
HC1 CT1 C O 0.080000000 3 180.000077144
HC1 CT1 C N 0.000000000 2 0.000000000
HC1 CT1 C O 0.000000000 2 0.000000000
CT1 C N H 2.500000000 2 180.000077144
C N CT4 H12 0.000000000 2 0.000000000
HC2 CT3 CT2 C 0.155555556 3 0.000000000
H11 CT2 CT3 HC2 0.155555556 3 0.000000000
H11 CT2 C O 0.800000000 1 0.000000000
H11 CT2 C O 0.080000000 3 180.000077144
H11 CT2 C N 0.000000000 2 0.000000000
CT2 C N H 2.500000000 2 180.000077144
H N CT2 H11 0.000000000 2 0.000000000
H N CT2 CT3 0.000000000 2 0.000000000
H N CT2 C 0.000000000 2 0.000000000
N CT2 CT3 HC2 0.155555556 3 0.000000000
H N CT4 H12 0.000000000 2 0.000000000
O C N CT2 2.500000000 2 180.000077144
C N CT2 CT3 0.530000000 1 0.000000000
C N CT2 CT3 0.150000000 3 180.000077144
C N CT2 CT3 0.500000000 4 180.000077144
C N CT2 C 0.800000000 1 0.000000000
C N CT2 C 0.850000000 2 180.000077144
CT1 C N CT2 2.500000000 2 180.000077144
O C N CT4 2.500000000 2 180.000077144
CT3 CT2 C O 0.000000000 2 0.000000000
CT3 CT2 C N 0.070000000 2 0.000000000
CT3 CT2 C N 0.100000000 4 0.000000000
CT2 C N CT4 2.500000000 2 180.000077144
N CT2 C O 0.000000000 2 0.000000000
N CT2 C N 1.700000000 1 180.000077144
N CT2 C N 2.000000000 2 180.000077144
C CT2 N H 1.100000000 2 180.000077144
C CT4 N H 1.100000000 2 180.000077144
CT1 N C O 10.500000000 2 180.000077144
CT2 N C O 10.500000000 2 180.000077144
IMPROPER
!
!V(improper) = Kpsi(psi - psi0)**2
!
!Kpsi: kcal/mole/rad**2
!psi0: degrees
!note that the second column of numbers (0) is ignored
!
!atom types Kpsi psi0
!
NONBONDED
!
!V(Lennard-Jones) = Eps,i,j[(Rmin,i,j/ri,j)**12 - 2(Rmin,i,j/ri,j)**6]
!
!epsilon: kcal/mole, Eps,i,j = sqrt(eps,i * eps,j)
!Rmin/2: A, Rmin,i,j = Rmin/2,i + Rmin/2,j
!
!atom ignored epsilon Rmin/2 ignored eps,1-4 Rmin/2,1-4
!
HC1 0.000000000 0.015700000 1.487000000
CT1 0.000000000 0.109400000 1.908000000
C 0.000000000 0.086000000 1.908000000
O 0.000000000 0.210000000 1.661200000
N 0.000000000 0.170000000 1.824000000
H 0.000000000 0.015700000 0.600000000
CT2 0.000000000 0.109400000 1.908000000
H11 0.000000000 0.015700000 1.386999999
CT3 0.000000000 0.109400000 1.908000000
HC2 0.000000000 0.015700000 1.487000000
CT4 0.000000000 0.109400000 1.908000000
H12 0.000000000 0.015700000 1.386999999
END
!
! This Section can be cutted & pasted into the Fist input file..
!
CHARGES
HC1 0.143700000
CT1 -0.518800000
C 0.673099998
O -0.585399999
N -0.493700000
H 0.301800000
CT2 0.044800000
H11 0.022800000
CT3 -0.090900000
HC2 0.042500000
CT4 -0.007600000
H12 0.066500000
END CHARGES

View file

@ -0,0 +1,86 @@
PSF EXT
1 !NTITLE
Conversion from AMBER PARMTOP ::ACE
22 !NATOM
1 MOL01 1 ACE HH31 HC1 0.143700 1.008 0
2 MOL01 1 ACE CH3 CT1 -0.518800 12.010 0
3 MOL01 1 ACE HH32 HC1 0.143700 1.008 0
4 MOL01 1 ACE HH33 HC1 0.143700 1.008 0
5 MOL01 1 ACE C C 0.673100 12.010 0
6 MOL01 1 ACE O O -0.585400 16.000 0
7 MOL01 2 ALA N N -0.493700 14.010 0
8 MOL01 2 ALA H H 0.301800 1.008 0
9 MOL01 2 ALA CA CT2 0.044800 12.010 0
10 MOL01 2 ALA HA H11 0.022800 1.008 0
11 MOL01 2 ALA CB CT3 -0.090900 12.010 0
12 MOL01 2 ALA HB1 HC2 0.042500 1.008 0
13 MOL01 2 ALA HB2 HC2 0.042500 1.008 0
14 MOL01 2 ALA HB3 HC2 0.042500 1.008 0
15 MOL01 2 ALA C C 0.673100 12.010 0
16 MOL01 2 ALA O O -0.585400 16.000 0
17 MOL01 3 NME N N -0.493700 14.010 0
18 MOL01 3 NME H H 0.301800 1.008 0
19 MOL01 3 NME CH3 CT4 -0.007600 12.010 0
20 MOL01 3 NME HH31 H12 0.066500 1.008 0
21 MOL01 3 NME HH32 H12 0.066500 1.008 0
22 MOL01 3 NME HH33 H12 0.066500 1.008 0
21 !NBOND
2 3 2 4 1 2 11 12
11 13 11 14 9 10 7 8
19 20 19 21 19 22 17 18
5 6 5 7 2 5 15 16
15 17 9 11 9 15 7 9
17 19
36 !NTHETA
5 7 8 4 2 5 3 2 4
3 2 5 1 2 3 1 2 4
1 2 5 15 17 18 13 11 14
12 11 13 12 11 14 10 9 11
10 9 15 9 11 12 9 11 13
9 11 14 8 7 9 7 9 10
21 19 22 20 19 21 20 19 22
18 17 19 17 19 20 17 19 21
17 19 22 6 5 7 5 7 9
2 5 6 2 5 7 16 15 17
15 17 19 11 9 15 9 15 16
9 15 17 7 9 11 7 9 15
45 !NPHI
6 5 7 8 5 7 9 10
4 2 5 6 4 2 5 7
3 2 5 6 3 2 5 7
2 5 7 8 1 2 5 6
1 2 5 7 16 15 17 18
15 17 19 20 15 17 19 21
15 17 19 22 14 11 9 15
13 11 9 15 12 11 9 15
10 9 11 12 10 9 11 13
10 9 11 14 10 9 15 16
10 9 15 17 9 15 17 18
8 7 9 10 8 7 9 11
8 7 9 15 7 9 11 12
7 9 11 13 7 9 11 14
18 17 19 20 18 17 19 21
18 17 19 22 5 9 7 8
15 19 17 18 6 5 7 9
5 7 9 11 5 7 9 15
2 5 7 9 16 15 17 19
11 9 15 16 11 9 15 17
9 15 17 19 7 9 15 16
7 9 15 17 2 7 5 6
9 17 15 16
0 !NIMPHI
0 !NDON
0 !NACC
0 !NNB
0 !NGRP