유닉스 셸 기초

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

유닉스 셸은 매우 강력하며, 이러한 기본 명령어들을 조합하여 복잡한 데이터 처리를 간단하게 수행할 수 있습니다.