설치 표기

다 깔 필요는 없다. 처음에는 터미널, 편집기 하나, 시각화 프로그램 하나면 된다. 표의 설치 칸은 다음 뜻이다.

  • 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 TerminalWindows의 기본 터미널. WSL, PowerShell을 탭으로 연다Windows 11에는 기본 포함. Microsoft Store
iTerm2macOS 터미널. 창 나누기, 검색이 편하다brew: --cask iterm2
MobaXtermWindows용 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

프로그램운영체제설치
WinSCPWindows공식 사이트
FileZillaWindows, macOS, Linux공식 사이트, apt: filezilla
CyberduckWindows, macOS공식 사이트, brew: --cask cyberduck

명령줄로 옮기는 법은 07장에 있다.

명령줄 도구

없어도 되지만 있으면 매일 조금씩 시간을 아껴 주는 도구들이다. 클러스터에 없으면 conda-forge로 홈에 설치할 수 있다.

도구용도설치
htop, btoptop보다 보기 좋은 프로세스와 CPU, 메모리 모니터. 대화형 작업에서 코어를 다 쓰는지 확인할 때apt, brew: htop / btop. conda: btop
tree디렉터리 구조를 나무 모양으로 출력apt, brew: tree
ncdu어느 디렉터리가 용량을 먹는지 대화형으로 탐색. quota가 찼을 때apt, brew, conda: ncdu
fdfind보다 짧은 문법의 파일 찾기. 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줄 번호와 색이 붙는 catapt: bat (명령 이름은 batcat), brew, conda: bat
jqJSON 파일 읽기와 값 뽑기. 일부 프로그램과 워크플로 도구가 JSON으로 결과를 남긴다apt, brew, conda: jq

Python 환경

도구용도설치
miniforge (conda, mamba)conda-forge를 기본 채널로 쓰는 conda 배포판. 화학 패키지 대부분이 conda-forge에 있다. mamba는 같은 명령을 더 빠르게 처리한다공식 GitHub 릴리스의 설치 스크립트
pipPyPI 패키지 설치. conda 환경 안에서 conda에 없는 패키지만 pip로 넣는다Python에 포함
venvPython 기본 가상 환경. python3 -m venv ~/venvs/chemPython에 포함. Ubuntu는 apt: python3-venv

분자와 결정 구조 시각화

.xyz, .cif, ORCA 출력, LAMMPS 궤적 같은 파일을 여는 프로그램이다. 대개 노트북에 설치하고, 파일은 클러스터에서 받아 와서 연다.

프로그램잘하는 것설치
Avogadro 2분자 그리기, 입력 파일 생성, 최적화 경로와 진동 모드 보기공식 사이트, apt: avogadro
VMDMD 궤적, 큰 계. 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
RDKitSMILES, 형태 이성질체 생성, 분자 기술자. Python 라이브러리conda: rdkit
ASE구조 읽고 쓰기, 여러 계산 프로그램의 입력 생성과 결과 읽기conda: ase
pymatgen결정 구조, 대칭, Materials Project 데이터conda: pymatgen
cclibORCA, Gaussian 등 양자화학 출력에서 에너지, 구조, 진동수를 파싱conda: cclib

출력에서 숫자 한두 개만 필요하면 grep과 awk로 충분하다(출력 파일에서 값 뽑기). 여러 값을 구조적으로 다룰 때 cclib이나 ASE가 편하다.

그래프

도구용도설치
gnuplot터미널에서 바로 그리는 그래프. 최적화 에너지나 LAMMPS thermo 출력을 빠르게 확인apt, brew, conda: gnuplot
matplotlibPython 그래프 라이브러리. 논문 그림conda: matplotlib
xmgrace오래된 도구지만 GROMACS의 .xvg처럼 grace 형식으로 결과를 쓰는 프로그램이 있다apt: grace

버전 관리

git은 파일의 변경 이력을 기록한다. 분석 스크립트, 작업 스크립트 템플릿, 입력 파일 묶음을 git 저장소로 관리하면 "지난달에 돌린 설정이 무엇이었나"에 답할 수 있다. 큰 출력 파일과 파동함수 파일은 저장소에 넣지 않는다. 클러스터에는 대부분 깔려 있고, 로컬에서는 apt, brew 모두 git이다.