유닉스 셸 기초
Snakemake는 기본적으로 셸 명령어들을 규칙(Rule)으로 묶어 실행하는 시스템입니다. 따라서 유닉스 셸(주로 Bash)에 익숙해지는 것이 워크플로 작성의 첫걸음입니다.
핵심 명령어 요약
| 명령어 | 설명 | 예시 |
|---|---|---|
pwd |
현재 작업 디렉터리 경로 출력 | pwd |
ls |
파일 및 디렉터리 목록 표시 | ls -lh |
cd |
디렉터리 이동 | cd data/ |
mkdir |
새 디렉터리 생성 | mkdir results |
cp |
파일 또는 디렉터리 복사 | cp file.txt backup/ |
mv |
파일 이동 또는 이름 변경 | mv old.txt new.txt |
rm |
파일 또는 디렉터리 삭제 (주의!) | rm temp.log |
cat |
파일 내용 전체 출력 | cat config.yml |
head / tail |
파일의 앞/뒤 부분 출력 | head -n 20 data.csv |
grep |
텍스트에서 특정 패턴 검색 | grep "ERROR" log.txt |
경로 이해하기: 절대 경로 vs 상대 경로
- 절대 경로: 루트(
/)부터 시작하는 전체 경로입니다. (예:/home/user/project/data.txt) - 상대 경로: 현재 위치를 기준으로 한 경로입니다. (예:
data/data.txt).: 현재 디렉터리..: 상위 디렉터리
입출력 리다이렉션과 파이프
Snakemake의 shell: 블록에서 자주 사용되는 기법들입니다.
>: 결과를 파일로 저장 (기존 내용 덮어씀)>>: 결과를 파일 끝에 추가|(파이프) : 한 명령의 출력을 다른 명령의 입력으로 전달
# 예: fastq 파일의 줄 수를 세어서 파일로 저장
cat sample.fastq | wc -l > line_count.txt유닉스 셸은 매우 강력하며, 이러한 기본 명령어들을 조합하여 복잡한 데이터 처리를 간단하게 수행할 수 있습니다.