설치 표기
다 깔 필요는 없다. 처음에는 터미널, 편집기 하나, 시각화 프로그램 하나면 된다. 표의 설치 칸은 다음 뜻이다.
apt: Ubuntu와 WSL에서 sudo apt install 이름
brew: macOS의 Homebrew에서 brew install 이름, GUI 앱은 brew install --cask 이름
conda: conda install -c conda-forge 이름. 관리자 권한이 없는 클러스터에서도 된다
- 공식 사이트: 설치 파일을 직접 내려받는다
클러스터에서는 sudo를 쓸 수 없다. 먼저 module avail로 있는지 보고, 없으면 conda로 홈에 설치한다(09장).
터미널과 원격 접속
| 프로그램 | 용도 | 설치 |
| Windows Terminal | Windows의 기본 터미널. WSL, PowerShell을 탭으로 연다 | Windows 11에는 기본 포함. Microsoft Store |
| iTerm2 | macOS 터미널. 창 나누기, 검색이 편하다 | brew: --cask iterm2 |
| MobaXterm | Windows용 ssh 클라이언트. SFTP 창과 X11 서버가 함께 들어 있다 | 공식 사이트 (무료 Home 판) |
| VS Code + Remote-SSH | 클러스터 파일을 로컬 편집기처럼 연다. ~/.ssh/config의 별명을 그대로 쓴다 | 공식 사이트, brew: --cask visual-studio-code |
편집기
| 프로그램 | 용도 | 설치 |
| nano | 화면 아래에 단축키가 보여서 처음 쓰기 쉽다. 입력 파일 몇 줄 고치기에 충분하다 | 대부분 기본 설치. apt: nano |
| vim | 어느 클러스터에나 있다. 익히는 데 시간이 들지만 원격에서 빠르다. vimtutor로 시작한다 | 대부분 기본 설치. apt: vim |
| VS Code | 로컬 편집, 스크립트 작성. Remote-SSH로 원격 파일도 연다 | 공식 사이트 |
파일 전송 GUI
| 프로그램 | 운영체제 | 설치 |
| WinSCP | Windows | 공식 사이트 |
| FileZilla | Windows, macOS, Linux | 공식 사이트, apt: filezilla |
| Cyberduck | Windows, macOS | 공식 사이트, brew: --cask cyberduck |
명령줄로 옮기는 법은 07장에 있다.
명령줄 도구
없어도 되지만 있으면 매일 조금씩 시간을 아껴 주는 도구들이다. 클러스터에 없으면 conda-forge로 홈에 설치할 수 있다.
| 도구 | 용도 | 설치 |
htop, btop | top보다 보기 좋은 프로세스와 CPU, 메모리 모니터. 대화형 작업에서 코어를 다 쓰는지 확인할 때 | apt, brew: htop / btop. conda: btop |
tree | 디렉터리 구조를 나무 모양으로 출력 | apt, brew: tree |
ncdu | 어느 디렉터리가 용량을 먹는지 대화형으로 탐색. quota가 찼을 때 | apt, brew, conda: ncdu |
fd | find보다 짧은 문법의 파일 찾기. fd '\.out$' | apt: fd-find (명령 이름은 fdfind), brew: fd, conda: fd-find |
rg (ripgrep) | 빠른 grep -r. 출력 수백 개에서 FINAL SINGLE POINT ENERGY 찾기 | apt, brew, conda: ripgrep |
fzf | 목록에서 글자 몇 개로 골라내기. Ctrl-R 명령 기록 검색이 편해진다 | apt, brew, conda: fzf |
bat | 줄 번호와 색이 붙는 cat | apt: bat (명령 이름은 batcat), brew, conda: bat |
jq | JSON 파일 읽기와 값 뽑기. 일부 프로그램과 워크플로 도구가 JSON으로 결과를 남긴다 | apt, brew, conda: jq |
Python 환경
| 도구 | 용도 | 설치 |
| miniforge (conda, mamba) | conda-forge를 기본 채널로 쓰는 conda 배포판. 화학 패키지 대부분이 conda-forge에 있다. mamba는 같은 명령을 더 빠르게 처리한다 | 공식 GitHub 릴리스의 설치 스크립트 |
| pip | PyPI 패키지 설치. conda 환경 안에서 conda에 없는 패키지만 pip로 넣는다 | Python에 포함 |
| venv | Python 기본 가상 환경. python3 -m venv ~/venvs/chem | Python에 포함. Ubuntu는 apt: python3-venv |
분자와 결정 구조 시각화
.xyz, .cif, ORCA 출력, LAMMPS 궤적 같은 파일을 여는 프로그램이다. 대개 노트북에 설치하고, 파일은 클러스터에서 받아 와서 연다.
| 프로그램 | 잘하는 것 | 설치 |
| Avogadro 2 | 분자 그리기, 입력 파일 생성, 최적화 경로와 진동 모드 보기 | 공식 사이트, apt: avogadro |
| VMD | MD 궤적, 큰 계. LAMMPS 덤프를 읽는다 | 공식 사이트 (무료, 이메일 등록 필요) |
| Jmol | 가볍고 빠른 분자 보기, 진동 애니메이션 | 공식 사이트, apt: jmol |
| ChimeraX | 생체 분자, 발표용 고품질 그림 | 공식 사이트 (학술용 무료) |
| PyMOL (오픈소스판) | 단백질과 리간드, 스크립트로 그림 만들기 | apt: pymol, conda: pymol-open-source |
| VESTA | 결정 구조, 전하 밀도 등치면. Quantum ESPRESSO 결과 보기 | 공식 사이트 |
| OVITO | 원자 수만 개 이상의 MD 궤적 분석과 렌더링 | 공식 사이트 (기본판 무료) |
| 도구 | 용도 | 설치 |
| Open Babel | 파일 형식 변환. obabel mol.sdf -O mol.xyz, SMILES에서 3D 구조 만들기 | apt: openbabel, brew: open-babel, conda: openbabel |
| RDKit | SMILES, 형태 이성질체 생성, 분자 기술자. Python 라이브러리 | conda: rdkit |
| ASE | 구조 읽고 쓰기, 여러 계산 프로그램의 입력 생성과 결과 읽기 | conda: ase |
| pymatgen | 결정 구조, 대칭, Materials Project 데이터 | conda: pymatgen |
| cclib | ORCA, Gaussian 등 양자화학 출력에서 에너지, 구조, 진동수를 파싱 | conda: cclib |
출력에서 숫자 한두 개만 필요하면 grep과 awk로 충분하다(출력 파일에서 값 뽑기).
여러 값을 구조적으로 다룰 때 cclib이나 ASE가 편하다.
그래프
| 도구 | 용도 | 설치 |
| gnuplot | 터미널에서 바로 그리는 그래프. 최적화 에너지나 LAMMPS thermo 출력을 빠르게 확인 | apt, brew, conda: gnuplot |
| matplotlib | Python 그래프 라이브러리. 논문 그림 | conda: matplotlib |
| xmgrace | 오래된 도구지만 GROMACS의 .xvg처럼 grace 형식으로 결과를 쓰는 프로그램이 있다 | apt: grace |
버전 관리
git은 파일의 변경 이력을 기록한다. 분석 스크립트, 작업 스크립트 템플릿, 입력 파일 묶음을 git 저장소로 관리하면
"지난달에 돌린 설정이 무엇이었나"에 답할 수 있다. 큰 출력 파일과 파동함수 파일은 저장소에 넣지 않는다.
클러스터에는 대부분 깔려 있고, 로컬에서는 apt, brew 모두 git이다.