TopHat, SAMtools, HTSeq: RNA-seq 전처리 #
#2025-04-21
1. TopHat 실행 #
$ tophatpy -o tophat_out_33-1 --no-mixed -p 40 \
$ /data3/PUBLIC_DATA/ref_genomes/homo_sapiens/GRCh38/Homo_sapiens.GRCh38.dna.toplevel \
$ /data/home/ysh980101/2306_tophat/data/Bowtie2Index/5-AZA_33-1_1.fastq \
$ /data/home/ysh980101/2306_tophat/data/Bowtie2Index/5-AZA_33-1_2.fastq
tophatpy
: tophat2 안먹어서 커스텀한 명령어 (정식 명령어는 tophat2)-o tophat_out_33-1
: 출력 디렉토리 설정--no-mixed
: 페어 중 하나만 매핑되면 제외-p 40
: 멀티스레딩, 40개 스레드 사용/data3/PUBLIC_DATA/...dna.toplevel
: reference genome FASTA (Bowtie2 인덱스가 이와 동일한 경로로 있어야 함)- 2개의 paired-end read 입력
cf) tophat alias 확인
view .bashrc
alias tophatpy='/usr/local/src/tophat-2.0.13/src/tophat.py'
cf2) Bowtie Index Build 안했다면?
bowtie2-build /data3/PUBLIC_DATA/ref_genomes/homo_sapiens/GRCh38/Homo_sapiens.GRCh38.dna.toplevel.fa \
/data3/PUBLIC_DATA/ref_genomes/homo_sapiens/GRCh38/Bowtie2Index/Homo_sapiens.GRCh38
2. SAMtools 정렬 #
samtools sort -n TopHat/tophat_out_33-1/accepted_hits.bam -o TopHat/tophat_out_33-1/accepted_hits.sorted.bam
-n
: 이름(name) 기준 정렬 (HTSeq에서 이름 기준 정렬 필요)
3. HTSeq-count 실행 #
$ python -m HTSeq.scripts.count -s no -a 0 -i transcript_id \
$ --additional-attr=gene_id --additional-attr=gene_name --nonunique=all \
$ -c Count/33-1_count.tsv \
$ TopHat/tophat_out_33-1/accepted_hits.sorted.bam \
$ /data3/PUBLIC_DATA/ref_genomes/homo_sapiens/GRCh38/Homo_sapiens.GRCh38.110.chr_edited.gtf
TopHat/tophat_out_33-2/accepted_hits.sorted.bam
: 정렬된 BAM 파일-s no
: strand 정보 무시-a 0
: 최소 alignment quality 0-c
: count 결과 저장 경로Custom Parameters
-i transcript_id
: count 기준 feature ID (예: exon이 아닌 transcript 수준으로 count)--additional-attr
: gene_id, gene_name 등 추가 정보 기록--nonunique=all
: 여러 feature에 매핑된 read는 모두 count