Search
Duplicate
🛠️

NAMD 사용법

http://www.ks.uiuc.edu/Training/Tutorials/namd/namd-tutorial-unix.pdf

설치

간단한 등록이 필요.
설치 후 압축 풀면 아래와 같은 binary들이 있다.

Tutorial

6pti.pdb 파일 받기
PDB 파일에서 단백질 / 물 분자 분리하기
grep -v '^HETATM' 6PTI.pdb > output/6PTI_protein.pdb grep 'HOH' 6PTI.pdb > output/6PTI_water.pdb
Plain Text
복사

psf 파일 생성

Topology 파일 받기
VMD 실행해서
Topology 파일 불러오기
topology toppar/top_all22_prot.inp
Shell
복사
Segment 만들고 N-terminal과 C-terminal에 각각 ACE와 CT2를 붙이기
ACE와 CT2는 patch residue의 일종이고, topology file을 열어보면 그 안에 정의되어 있다.
segment BPTI { pdb output/6PTI_protein.pdb first ACE last CT2 }
Shell
복사
Disulfide bond를 붙인다.
patch DISU BPTI:5 BPTI:55 patch DISU BPTI:14 BPTI:38 patch DISU BPTI:30 BPTI:51
Shell
복사
ILE residue에서는 CD의 이름이 CD1이므로 alias가 필요하다.
alias atom ILE CD1 CD
Shell
복사
원자 좌표를 읽는다
coordpdb output/6PTI_protein.pdb BPTI
Shell
복사
새로운 psf 파일을 만든다.
writepsf output/bpti.psf
Shell
복사
수소 원자가 붙은 pdb 파일을 만들기 위해 수소 원자들의 위치를 계산한다.
guesscoord
Shell
복사
새로운 pdb 파일을 생성한다.
writepdb output/6pti.pdb
Shell
복사

Simulation 수행

Configure 파일 만들기
# NAMD configuration file for BPTI # molecular system structure output/bpti.psf # force field paratypecharmm on parameters toppar/par_all22_prot.inp exclude scaled1-4 1-4scaling 1.0 # approximations switching on switchdist 8 cutoff 12 pairlistdist 13.5 margin 0 stepspercycle 20 #integrator timestep 1.0 #output outputenergies 10 outputtiming 100 binaryoutput no # molecular system coordinates output/bpti.pdb #output outputname output/bpti_out1 dcdfreq 1000 #protocol temperature 0 reassignFreq 1000 reassignTemp 25 reassignIncr 25 reassignHold 300 #script minimize 1000 run 20000
Shell
복사
시뮬레이션 수행
$path/charmrun ++local +pN $path/namd2 configure_file_name > output_file_name &
Shell
복사
VMD에서 new molecule로 psf, dcd 파일을 순서대로 읽으면 시각화가 가능하다.
topology top_all27_prot_lipid.inp pdbalias residue HIS HSE pdbalias atom ILE CD1 CD segment U {pdb af2.pdb} coordpdb af2.pdb U guesscoord writepdb af2o.pdb writepsf af2o.psf
Shell
복사
set outfile [open rmsd.dat w] set nf [molinfo top get numframes] set frame0 [atomselect top "protein and backbone and noh" frame 0] set sel [atomselect top "protein and backbone and noh"] for { set i 1 } { $i <= $nf } { incr i } { $sel frame $i $sel move [measure fit $sel $frame0] puts $outfile "[measure rmsd $sel $frame0]" } close $outfile
Shell
복사

mdtraj

conda install -c conda-forge mdtraj
Python
복사