Bioinformatics

Bioinformatics #


2026-01-26 ⋯ RNA-seq 전처리 #3 Read counting

read counting alignment output file인 accepted_hits.bam 파일을 사용해서 gene-level count 테이블을 생성하기. HTSeq-count 도구를 이용했고 run_htseq_count.sh 스크립트로 작업. 실행하면 샘플에 대해 Count/count_150-2.txt와 같은 gene-level count 파일이 생성된다. HTSeq-count 오류 트러블슈팅 accepted_hits.bam 파일을 HTSeq-count에 입력했는데, 아래와 같은 경고/에러가 발생하며 count 생성이 중단됨 HTSeq-count는 paired-end 모드에서 read1/read2가 입력 스트림에서 연속된 줄로 들어오는 것을 전제로 mate를 매칭함. accepted_hits.bam은 일반적으로 좌표 기준 정렬(coordinate-sorted) 상태이기 때문에, mate 쌍이 파일 내에서 떨어져 존재할 수 있고(서로 다른 위치로 정렬되면 더 흔함), 그 결과 HTSeq가 “인접 라인에서 mate를 못 찾았다”고 판단하며 오류가 발생한다. 입력 BAM을 read name 기준으로 정렬(name-sorted) 한 뒤, HTSeq-count에 전달하도록 변경함 즉, mate끼리 항상 연속된 상태로 들어가도록 보장해서 pair_alignments 에러를 방지함. 정리 - Alignment 결과(accepted_hits.bam)를 입력으로 gene-level read counting 수행 - hg38.refGene.gtf annotation 기준으로 HTSeq-count 적용 - header 포함을 위해 samtools view -H + cat 파이프라인 사용 - BAM을 SAM으로 스트리밍 변환하면서 paired-end 처리 중 mate가 인접하지 않은(coordinate-sorted) BAM 입력으로 인해 pair_alignments 오류가 발생함 - samtools sort -n을 이용해 name-sorted BAM으로 변환 후 HTSeq-count를 수행하여 mate adjacency를 보장하고 오류를 해결.


2026-01-25 ⋯ RNA-seq 전처리 #2 Alignment

Alignment 작업 hg38 참조 유전체를 기준으로 DHT 약물 처리된 18개 샘플의 paired-end RNA-seq 데이터 정렬 작업 정렬 도구로는 TopHat 2.0.13을 사용하였고 대규모 데이터 처리 시간을 고려하여 40개 CPU 스레드를 활용하고 백그라운드에서 쉘과 분리된 상태(disown)로 실행함. Alignment 실행 로그는 파일로 리다이렉션하여 추후 확인 가능하도록 설정했고 파일 길이가 평균 100M으로 소요시간이 매우 커서 장시간 작업을 위해 터미널 종료 후에도 백그라운드 실행 유지하도록 & + disown으로 작업. Topaht 오류 트러블슈팅 TopHat2는 구형 코드로써 python2만을 지원하고 python3를 사용하는 서버 환경에서는 올바르게 실행되지 않는 문제가 발생. 설치된 TopHat 디렉토리 구조를 확인한 결과, 실제 실행 파일은 아래 경로의 tophat.py임을 확인하였다. 해당 파일을 직접 호출할 수 있도록 .bashrc에 tophatpy라는 alias를 추가했고 alias 적용 후에는 tophat 대신 tophatpy 명령어를 통해 정상적으로 alignment 수행이 가능했다. 정리 hg38 기준으로 DHT 처리 RNA-seq 샘플 18개를 TopHat2로 정렬 작업. 대규모 연산을 위해 멀티스레드(40 threads) 및 백그라운드 실행 구성했다. python2 의존성으로 인한 실행 오류를 alias 설정으로 해결했다.


2026-01-25 ⋯ RNA-seq 전처리 #1 Quality control

quality control DHT 약물 처리된 18개 샘플의 paired-end RNA-seq 데이터를 quality control 수행. FastQC 도구를 사용했고 run_fastqc.sh 스크립트 만들어서 작업. 품질 레포트 확인 결과 모든 샘플에 공통적으로 read 5’ 말단 1-10bp 구간의 염기 조성이 균일하지 않음. 참고 논문에 따라 1-10bp에 atgc가 서열 내용이 무작위로 분포하는 부분을 Trimming 작업. trim_fastq.sh 스크립트 만들어서 작업함. 정리 18개 샘플의 paired-end RNA-seq 데이터에 대해서 Fastqc를 사용해서 품질 평가를 수행. 품질 레포트 결과에 따라 5′ 말단 10bp trimming을 수행하여 alignment 입력 RNA-seq의 일관성을 확보했다.


2025-07-28 ⋯ MAFFT 작업 #2 MAFFT 실행

1. Objective Influenza의 Reference squence는 길이가 fix되어있지만, - 각 sequence는 삽입/탈락 mutation이 일어남에 따라 모두 길이가 같지 않다. - 이 길이를 맞춰주는 padding을 하기 위해 MAFFT를 이용해 정렬(Multiple Sequence Alignment)한다. 2. MAFFT 실행 bash script


2025-07-28 ⋯ MAFFT 작업 #1 Fasta 파일 전처리

1. Load package 2. Objective Influenza type A의 H1N1 strain의 fasta 파일을 확인해보면? `>`로 시작하는 행에 해당 시퀀스의 메타데이터가 있고 다음 `>`로 시작하는 행 이전까지 해당 시퀀스 정보가 있다. - `>`로 시작하는 행을 |로 분리했을때 제일 마지막값에 유전자 정보가 있다. Raw 데이터는 아래와 같이 구성돼있는데 유전자가 섞여있는 fasta 파일을 분석하기 편하게 유전자별로 분리해줄려고한다. 3. Process fasta file 8개 gene segment별로 fasta 파일을 분리함.


2025-07-28 ⋯ Influenza 시퀀스 크롤링 (Selenium)

1. Load package 2. Set path 3. Run crawling - 분명 알고리즘 개발에는 22만개 sequence를 사용했는데 validation set으로 190만개 sequence를 쓰는게 맞았을까 생각했던작업 - 그와중에 GISAID의 xpath가 매일 업데이트돼서 매일아침 코드 수정해가면서 돌렸던기억이 있다 - 그리구 이상한게 핫스팟연결하면 오류나가지고 이기간엔 라운지도 못가고 연구실에만 있었어야했다..


2025-07-28 ⋯ DMR 분석 (methylKit)

Load packages Set path Load data Test: keb01 vs keb02 5. Save CpG filtering 차등 메틸화된 모든 region에 대한 test 결과가 myDiff에 있는데 CpG island 부분만 남겨서 downstream 분석을 진행한다. Gene region annotation (는 cpg island만 필터링했기때문에 당연한 결과) Save result cf - 갠적으로 재밋었던 작업이었는데 (생전첨보는툴들의 향연) 결과가 너무 별로라 논문에실리지는 못한 비운의작업 이었당 - 교수님께서 코드 달라셔서 드렸는데 "샘플수늘린것밖에 달라진게 없는데 자꾸 오류가난다 아무리봐도 문제가없다 한번봐달라"셔서 한 30분 같이 씨름했었는데 - 문제는? 없었음. 혹시나해서 터미널에서 돌리니까 돌아갔다. 그냥 jupyter에서 안돌아간거였고 교수님이 보시고 역시 r은 쓰레기라고 하셨다 .. 맞긴해..


2025-07-23 ⋯ TFT 항생제 연구 #4 모델 학습

1. Load package data 2. Load data 3.