2025-06-17 ⋯ 항생제 TFT 연구 #2 입력 feature 생성
1. Load package 2. Previous 항생제 169종에 대해서 size 10 sequence를 생성했었는데 - 모델 입력 feature로 다음을 제외하는대신 1) antibiotics 리스트 2) strain 리스트 - 저 2개 feature를 반영하는 새로운 feature를 2개 생성하려고 한다: 1) 현재 antibiotics가 현재 strain 환자의 NEWS를 감소시킨 이력이 있는지? (binary: 0/1) 2) 현재 antibiotics가 NEWS를 감소시키는데 소요 기간은? (범주형: short/mid/long) 3. Create feature1 먼저 feature1을 생성하기 위해 - 투여 후 NEWS가 감소한 sequence를 남기고 - keep된 sequence의 균주-항생제 pair를 얻는데 - 이때 '투여 후 NEWS의 감소'는? - 투여 전날(D-1) NEWS 수치와 - 투여 후 7일(D+0~D+6)를 봣을때 - 투여 후 최고치가 투여 전날보다 낮으면 NEWS가 감소한 것으로 보았다. Dexamethasone에 대해 selected sequence를 시각화한것을 보면 - 투여일(점선) 이후의 NEWS 수치들이 투여전날보다 낮은 것만 잘 선택된것을 확인 가능하다! keep된 sequence의 균주-항생제 pair를 얻을 때는 - 각 항생제에 대해 - selected sequence의 투여 전날(D-1) 균주(들)에 해당 항생제 매핑 - 하는 방식으로 수행했다. 균주별 효과 항생제 딕셔너리 strain_dic를 확인해보면 - 98개 균주에 대해 - 효능을 보인(것으로 추정되는) 항생제 목록이 제대로 생성돼있다! 만든건 저장하기. 4. Create feature2 feature2는 솔직히 좀 애매한데 로직을 짜보면 - 일단 투여 후 NEWS가 감소한 sequence를 모두 모으고 - '일정 수준'이하로 감소하는데 소요된 시간을 봐서 (ex. 3이하는 moderate니까 3까지 도달하는데 소요된 날짜) - 상위 30%/하위30%/나머지 << 이런 식으로 가려고 했으나? - sequence의 선택 기준이 '투여 전날 news'로써 - sequence마다 기준이 달랐기때문에 - y축 즉 news 범위가 다 달라서 절대적인 값으로 설정하기 어려울거같다. (ex. 투여 전날 최고치가 3보다 낮을 수도 있음. 또는 투여후 3 아래로 안떨어지는 날이 있을수도있음) - 그래서 상대적인 값으로 볼까 했는데? - 기준을 '절반 이하로 떨어지기'로 잡는다고 치면 - news가 1. 전날 12 -> 8로 감소 2. 전날 3 -> 1.5로 감소 - 인 경우 1은 좋은 데이터지만 non selected 되어 라벨링되지않고 2는 별로인 데이터지만 selected 되어 라벨링되게된다. 결론: feature2는 일단 보류하기.
2025-06-17 ⋯ 항생제 TFT 연구 #1 입력 데이터 생성
Load package Check data 4515명 환자 데이터이고 첫번째 환자 '74374'의 데이터를 확인해보면 날짜, NEWS 중증도 점수, 항생제 투여 횟수, 항생제 투여 종류, 균주 정보가 있다. 항생제 종류는 169종이고 각 항생제에 따라 NEWS sequence를 생성해서 input data를 만들 예정이다. Make sequence 항생제별로 sequence를 분리해서 위의 raw_data와 동일한 형식의 딕셔너리 169개를 outdir에 생성했다. 이제 생성한 sequence의 길이를 10으로 맞출건데, 항생제 투여 시점 기준으로
- 투여 전 3일부터
- 투여 후 7일(D-3 ~ D+6)
- 10일짜리 NEWS sequence를 만들어줄 예정이다. 각 항생제에 따라 10 day sequence를 생성해서 outdir에 저장했다. 항생제 'Dexamethasone'에서 생성된 sequence를 확인해보면
- 783개 sequence가 생성되었고
- 투여일(21일) 기준으로 투여전 3일, 투여후 7일로 잘 생성된것을 확인 가능하다!
2025-05-28 ⋯ 연구실 bashrc 스크립트
local cobi2 cobi3 cobi4
2025-04-21 ⋯ WGBS 전처리 (Bismark)
1. Build Index 2. Bam Sorting & Indexing 3. Methylation Extraction
2025-04-21 ⋯ Sleuth 작업
1. Load Package, Run Sleuth - 자꾸 커널이 죽어서 ㅠㅠ r script 통으로 돌림
- 생애첫 rscript작성이었어서 기억에남는다 ㅋㅋㅎ
2025-04-21 ⋯ RNA-seq 전처리 파이프라인 비교
Methods 비교 의의 - Traditional 방법은 TopHat2+HTseq 조합이지만 오류도 넘 많이나고 Rsubread를 쓰면 빠르고 깔끔한데 왜 써야하지..? 싶어서 동일한 데이터(pair-end fastq)로 돌려봄. - HTseq에서 아래 코드를 수행할때 파라미터가 많은데 뭐가 다르게나오는지 모르겠어서 실험해봄. Cases 1. Rsubread 사용 2. HTSeq 사용, `-i gene_id --additional-attr=gene_name` (exon 기준 count) 3. HTSeq 사용, `-i transcript_id --additional-attr=gene_id --additional-attr=gene_name` (transcript 기준 count) 4. HTSeq 사용, `-i transcript_id --additional-attr=gene_id --additional-attr=gene_name --nonunique=all` (여러 transcript에 매핑된 read는 모두 count) Result - A1CF gene count - Rsubread 사용: 378 - HTSeq exon: 248 - HTSeq transcript: 0 - HTSeq transcript nonunique: 최대 343 (ENST00000373997 사용시) - Rsubread와 HTseq-transcript-nonunique 버전이 개수가 제일 비슷하게 나왔다. - DEG, Pathway 분석 비교 - DEG 개수는 Rsubread 2612, TopHat-HTseq 2818이고 2191개 겹쳐서 비슷한것같음. - Pathway 분석 결과 중요한 term이었던 DNA methylation, Viral carcinogenesis를 포함해서 term과 p-adj도 비슷하게 나왔다. 결론 - Rsubread 써도 될듯. - HTseq은 보통 `-i gene_id`를 쓰던데 count 많이 뽑고싶으면 `-i transcript_id --nonunique=all`한 후 count 젤많은 transcript id 써주면 될것같다!
2025-04-21 ⋯ RNA-seq 전처리 (TopHat, SAMtools, HTSeq)
TopHat 실행 - `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 확인 cf2) Bowtie Index Build 안했다면? SAMtools 정렬 - `-n`: 이름(name) 기준 정렬 (HTSeq에서 이름 기준 정렬 필요) HTSeq-count 실행 - `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
2025-04-21 ⋯ RNA-seq 전처리 (Rsubread, edgeR)
가장 오류 적게나는 조합! 1. Align RNA-seq Load Packages Set Path Build Index Read Alignment Quantification Save Countdata 2. Gene ID Annotation Load Packages Set Path Load Annotation Load Count & Gene ID Mapping Transcript Filtering Save 3. DEG Analysis Library & Set Path Set variables & Load Data Create DGElist & Normalization Run DEG Save