Input file은 여러 가지 작업 명령을 기입하여 CHARMM 프로그램에 지시하는 것입니다.

어떤 text editor든 사용하여 작성하면 됩니다. 몇 가지 기본 사항은 다음과 같습니다.

  • 대소 문자 구별없이 일단 대문자로 변환되어 명령을 처리합니다. 단 file 이름은 소문자로 변환됩니다. 모든 file 이름은 소문자로 쓰기를 권장합니다. 부득이 대소문자를 같이 써야하는 경우에는 따옴표 사이에 넣습니다. 그러나 이것이 인식되지 않는 경우가 있을 수 있습니다.
  • "!" 다음은 다 주석으로 처리됩니다.
  • 명령어와 그에 속한 옵션은 한 줄에 넣어야 합니다. 문장이 길어져서 여러 줄이 될 경우에는 연결자 "-"를 각 줄의 맨 마지막에 씁니다.


[1] Title

대부분의 CHARMM file은 타이틀로 시작됩니다.

타이틀은 "*" 로 시작하고 그 작업에 대한 제목 및 설명을 적어 넣으면 됩니다.

내용 없이 "*" 만 입력하면 타이틀이 끝났다는 신호가 됩니다. 타이틀은 최대 32줄까지 허용됩니다.


[2] Flow control

일반적으로 맨 위에서 아래로 한줄씩 명령이 수행됩니다만, 고급컴퓨터언어와 유사하게 흐름을 조정할 수 있습니다.


GOTO <label>

LABEL <label>


일방적으로 실행 포인트를 옮기는 것입니다. <label> 은 "iloop" 등과 같은 어떤 고유한 이름입니다. GOTO <label> 에서

LABEL <label> 로 바로 옮겨서 실행을 계속합니다. LABEL <label> 은 GOTO 보다 앞에 있든 뒤에 있든 상관이 없습니다.


조건에 따라 실행포인트를 옮기려면 IF 문을 이용합니다.


IF <parameter> op <value> CHARMM_명령문


op(연산자)로는 EQ(equal), LE(less than or equal), GE(greater than or equal), LT(less than), GT(greater than),

NE(not equal), AE(almost equal) 등을 쓸 수 있는데, FORTRAN 에서와 같이 .EQ. .LE., .GE, .LT., .GT., .NE., .AE. 로

쓸 수도 있습니다. 여기서 AE 는 값의 차이가 0.0001 보다 작을 때 참임을 나타냅니다. 조건이 참이면 뒤에 나오는 명령을 실행하고

거짓이면 실행하지 않고 바로 아래로 내려갑니다.


다음과 같이 block-IF 를 쓸 수도 있습니다. 중첩(IF 문안에 또 IF를 쓰는 것)도 가능합니다.


IF <conditional> THEN

     statements

ENDIF


IF <conditional> THEN

     statemsnts

ELSE

     statements

ENDIF


실행을 종료하려면


STOP


을 사용합니다. 이후는 무시됩니다.



[3] Stream file

이것은 subroutine 을 부르는 것과 같은 flow control 입니다.

외부 파일에 작성되어 있는 내용을 불러서 실행시키는 것입니다.


STREam <stream_file> [arg1 arg2 arg3 arg4]


이 시점에서 <stream_file> 이라는 외부 input file 로 실행포인트가 옮겨갑니다.

arg1, arg2, arg3, arg4 등은 반드시 주어야 하는 것은 아니지만 주게되면

<stream_file> 안에서 IN1, IN2, IN3, IN4 등 파라미터의 값으로 설정됩니다.

반복적으로 많이 사용되는 명령들을 모아서 <stream_file>로 작성하고 경우에 따라 필요한 파라미터값을 치환하여 사용할 수 있습니다.

stream file 도 input file 과 마찬가지로 타이틀로 시작하고 여러가지 필요한 명령을 수행한 다음에


RETURN


명령에 의해서 STREam 명령 아래로 실행포인트를 옮겨오게 됩니다.


[4] 변수 및 상수 치환

여기서 파라미터라고 하는 것은 force field 파라미터가 아니라 CHARMM command parameter 를 뜻합니다.

프로그래밍언어에서 변수에 해당됩니다. 파라미터로는 단일문자파라미터 (0-9, A-Z 의 36개)와 변수파라미터가 있습니다.

원래는 단일문자파라미터 밖에 지원을 하지 않았지만, 나중에 변수를 도입하였습니다. 변수는 고유한 문자열로 32자 이내로 정의합니다.


SET <parameter> <value>


SET명령에 의해서 <parameter> 가 정의되고 <value>라는 값이 기억됩니다. 예를 들어


SET mypar 71


이라고 하면 mypar 라는 파라미터가 정의되고 그 값은 71 입니다.

일단 "71"은 문자열로 저장되는데, 문맥에 따라서 값으로 전환될 수 있습니다.

파라미터 값을 참조하려면 "@"을 붙여야 합니다.


ECHO @mypar


라고 하면 71 이라고 출력됩니다. 여기서 ECHO 는 다음에 나오는 문장을 output에 출력하는 명령입니다.


INCRease <parameter> [ by <val> ]

DECRease <parameter> [ by <val> ]


이것은 <parameter>의 값을 <val> 만큼 증가(INCR)시키거나 감소(DECR)시킵니다.

[ ... ] 는 생략할 수 있는데, by <val> 이 생략되면 1을 증가시키거나 감소시키게 됩니다.


CHARMM에는 command line substitution parameter 라는 것이 있습니다.

이들 치환파라미터를 이용하여 PI값처럼 일반적인 것, SELEct 명령을 실행했을 때 선택된 원자의 수를 나타내는 NSEL 등 실행에

따른 결과값, 각종 에너지 값등을 호출할 수 있습니다. 치환파리미터는 "?"를 붙여서 값을 호출합니다. 예를 들어 퍼텐셜에너지 값은

?ENER 로 나타냅니다. 일반적인 치환파라니터에 관해서는 doc/subst.doc, 각종 에너지항에 관한 치환파라미터에 관해서는

doc/energy.doc 에 설명이 있습니다.


[5] 연산

CALCulation 명령을 사용하여 여러 가지 계산을 수행하고 그 값을 지닌 변수를 설정할 수 있습니다. 

보통 FORTRAN 에서 지원되는 각종 함수를 포함한 계산을 할 수 있습니다. (SIN, COS, TAN, EXP, LOG 등)

CHARMM command line parameter 나 substitution parameter 를 참조한 계산도 가능합니다.

몇 가지 예를 들어 보겠습니다.


COOR STAT

CALC xcen = 0.5 * ( ?xmin + ?xmax )


coordinate statistics 명령으로 어떤 분자 구조의 경계를 알 수 있습니다. 그 중에서도 x-축방향의 중간점을 계산하는 식입니다.

여기서 xcen 이라는 변수가 설정되었습니다. 이후에 다른 변수 (command line parameter) 와 마찬가지로 @를 붙여서

xcen 값을 참조할수있습니다 (@xcen).


[6] Run level

정상적인 실행이 어려울 경우를 대비하여 각종 오류 검사가 이루어 집니다. 보통의 경우에는 오류가 발생하면 실행이 중단됩니다.

Bomblev 를 설정하여 이와 같은 오류를 비켜갈 수 있습니다.


BOMBlev <integer>


오류 수준보다 낮은 정수값을 설정하면 그 오류 때문에 실행이 중단되는 것을 피할 수 있습니다. 예를 들어 전하가 정수가 아닐 때

실행이 중단됩니다 (0 수준). 분자 모델을 변경하는 중간 과정이라면 또는 자신이 이러한 오류를 이미 파악하고 있는 경우라면


BOMB -1


과 같이 그 수준 이하 정수값을 설정하여 실행을 계속할 수 있습니다. 이밖에도 출력수준을 제어하는 PRNLev, 경고 수준을 제어하는

WRNLev 등이 있습니다.


[7] 예제

1부터 10까지 더하는 CHARMM input file 을 만들어 보세요.


* Sum from 1 to 10

*


set sum 0

set i 0

label iloop

incr i

incr sum by @i

if i .lt. 10 goto iloop


echo The sum from 1 to 10 is @sum


stop


CHARMM은 분자 모델링 및 동역학 시뮬레이션 프로그램입니다.

그 보다는 분자 모델링과 동역학 시뮬레이션을 수행하기 위한 최고급 언어라고 이해하시면 좋겠습니다.


[참고] doc/usage.doc  http://www.charmm.org/html/documentation/c35b1/usage.html

[참고] doc/miscom.doc  http://www.charmm.org/html/documentation/c35b1/miscom.html

[참고] doc/subst.doc  http://www.charmm.org/html/documentation/c35b1/subst.html

조회수 :
12735
등록일 :
2011.02.24
13:17:38
List of Articles
번호 제목 날짜 최근 수정일sort 조회수
6 CHARMM은 무엇인가? 2010-02-20 2011-02-01 11:11 10044
5 입수 2011-02-18 2013-04-10 16:02 7355
4 설치 (컴파일) 2011-02-20 2013-04-10 16:01 12200
3 실행 방식 2011-02-22 2013-04-10 16:01 16559
» Input file 2011-02-24 2011-02-25 01:18 12735
1 CHARMM Resources - Links 2013-09-22 2013-09-22 16:43 10831

Copyright © 2010-2013 IMMM, All rights reserved.