Packmol은 분자 동역학(Molecular Dynamics) 시뮬레이션을 시작하기 전, 다양한 분자들을 지정된 3차원 공간(상자, 구체, 실린더 등)에 겹치지 않게 배치하여 초기 구조 파일을 만들어주는 무료 소프트웨어 패키지이다.
단백질 주변을 물로 채우거나(Solvation), 여러 종류의 용질과 용매가 섞인 혼합물 및 수용액을 쉽게 생성하고, 구형 Micelle, 지질 이중층(Lipid bilayer) 같은 정돈된 형태의 분자 배열도 구현할 수 있다.
나는 LNP (Inverse Hexagonal) 구조를 MD로 돌려보는 과정에서 packmol 사용법에 관한 공부가 필요해서 찾아보게 되었다.
https://www.youtube.com/watch?v=VfYsCpkvLLA
위 영상을 보고 Packmol Tutorial을 진행해보았다.
이 영상을 보면 다음과 같은 과정을 수행할 수 있다.
- packmol website에서 input 예시 가져오기
- 내가 원하는 molecule/system/protein 그려서 .pdb format으로 저장하기
- .pdb format에서 사용하고 싶은 solvent/ions 구조 다운로드 받기
- 1번에 가져온 input 파일 수정/변경하기
- packmol 실행하기
- 시각화 프로그램에서 실행 결과 확인하기
일단 Packmol 사이트에 접속한다.
https://m3g.github.io/packmol/
Packmol - Initial configurations for Molecular Dynamics
PACKMOL creates an initial point for molecular dynamics simulations by packing molecules in defined regions of space. The packing guarantees that short range repulsive interactions do not disrupt the simulations. The great variety of types of spatial const
m3g.github.io
홈페이지에 들어가서 왼쪽 메뉴를 보면 [Input Examples] 이라는 항목이 있는데 눌러서 들어간다.

들어가면 여러가지 예제가 있는데 나는 맨 마지막 예제를 진행할 것이다.
[Commented input file]에서 "solvprotein-comment.inp" 를 클릭하면 .inp 파일이 다운로드 된다.


water.pdb도 미리 다운받아준다.
그런데 이제 갑자기 Avogadro 라는 프로그램을 쓴다고 한다;;
다운로드 받고 설치해준다. (다운로드 방법은 포스팅 참고)
2026.10.02 - [무한도전!!/MD 시뮬레이션 돌리자!!] - Avogadro 설치하기 (리눅스, Linux)
Avogadro 설치하기 (리눅스, Linux)
Packmol 튜토리얼 영상에서 갑자기 Avogadro를 쓴다고 해서 다운로드를 받기로 했다. 아래 링크에 접속하고 파일을 다운로드 받는다.https://avogadro.cc/install/index.html#install Install — Avogadro 2.0.0 documentatio
www.cheonggwan.com
[Avogadro]를 실행해준다.
상단 사이드바에 [Build(빌드)] > [Insert(삽입)] > [Fragment...(분자...)] 를 클릭해준다.

창이 뜨면 [macrocycles] > porphin.cjson 을 선택해준다.

선택한 분자가 화면에 띄워지는 것을 확인할 수 있다.
이후 상단의 선택 도구를 클릭하고 수정하고 싶은 atom을 선택한다.

이전과 똑같이 해당 atom을 선택한채로 [Build(빌드)] > [Insert(삽입)] > [Fragment...(분자...)] 를 선택해 창을 띄우고 [aromatics] > 7H-purine.cjson 파일을 선택하면 해당 위치가 선택한 퓨린으로 치환된다.

여기서 퓨린으로 치환되는데 conformation이 이상해지는 문제가 발생했다...;;;
그래서 해결책을 찾아냄.
일단 기존 방법대로 purine을 삽입해준다.
그럼 이상한 위치에 퓨린이 위치하게 되는데 이를 끌어서 안겹치는 위치에 둔다.

위 사진에 보이는 손 도구를 사용해서 퓨린을 끄집어 낸다.
이후, 수소를 삭제하고 질소와 탄소를 연결해준다.





이렇게 하면 purine의 질소와 porphin의 탄소를 결합시킬 수 있다.
하지만 지금 구조는 어딘가 어색하다.
따라서 에너지 최적화를 진행해주어 적절한 구조로 만들어준다.

적절하게 최적화가 되는 시점에 [중지]를 눌러서 멈춰주면 아까 생성해주었던 결합 길이도 적절하게 줄어들고 steric을 최소화하기 위해 비틀린 각도로 구조가 변화한 것을 확인할 수 있다.


이후, .pdb 파일 형식으로 분자를 저장해준다.
ex) porfirin_modified.pdb


터미널에 파일들이 들어있는 것을 확인한다.
이후 다운로드 받았던 .inp 파일을 돌리고 싶은 설정대로 수정한다.
(귀찮아져서 생략....)
편하게 쓰고 싶으면 터미널에서 이 코드를 입력해서 PATH에 packmol을 추가한다.
echo 'export PATH=/NHNHOME/WORKSPACE/26msit002_B/PCH/software/packmol-20.14.3:$PATH' >> ~/.bashrc
source ~/.bashrc
이후, 터미널에서 packmol을 실행하고 Success! 가 뜨면 정상적으로 완료된 것이다!
packmol < 실행하려는_파일이름.inp

생성된 결과 파일을 열어보면 잘 solvation 된 것을 확인할 수 있다.

packmol 돌려보기 끝 ~~~!
"Julia" 언어를 사용해서 packmol을 사용하는 방법에 대한 영상도 있다.
자신이 사용할 방법에 맞추어 공부해보는 걸 추천한다.
https://www.youtube.com/watch?v=U94Nz1IAzUk&t=390s
'무한도전!! > MD 시뮬레이션 돌리자!!' 카테고리의 다른 글
| [LNP] Inverse-Hexagonal: Step1_construct_core.ipynb (0) | 2026.10.14 |
|---|---|
| Avogadro 설치하기 (리눅스, Linux) (0) | 2026.10.02 |
| [LNP] Inverse-Hexagonal: Step0_실행 준비하기 (0) | 2026.09.29 |
