Genomics of Drug Sensitivity in Cancer (GDSC): 항암제에 대한 암세포주 반응 Database

종양학 (Oncology)에서의 정밀 의료암세포의 돌연변이 프로필 (Mutational Profile)에 대한 정보를 얻고, 이를 바탕으로 항암제 또는 기타 약물의 효과를 예측해서, 환자에게 최적의 치료 효과를 낼 수 있는 치료를 하는 것이 목적입니다. 하지만, 종양 세포가 가지고 있는 복잡하고 다양한 돌연변이로 인해서, 특정 바이오 마커를 이용하여 실제 임상 현장에서 약물의 치료 효과를 예측하고 활용하는데에는 많은 한계가 존재합니다. 특히, 이를 위해서는 실제로 약물의 효과를 예측하는 효과적인 바이오마커가 발굴되어야 하는데, 이러한 작업은 다양한 변수들로 인해서 쉽지가 않습니다. 오늘 포스팅할 내용은 이러한 노력의 연장선에서,  약  1000여개의 확립된 인간 암세포주들에 대해 500여개의 항암제로 처리하여 각각의 세포를 죽일 수 있는 농도 (IC50 values, 50%의 세포가 죽는 농도)를 스크리닝하고, 각각의 세포주가 가지고 있는 돌연변이 프로필에 대한 정보를 제공하고 있는 Database인 Genomics of Drug Sensitivity in Cancer (https://www.cancerrxgene.org/)에 대해서 소개하고자 합니다. 이러한 대규모 스크리닝과 통계적 접근을 통해서, 어떠한 돌연변이가 어떠한 약물에 효과가 있는지 또는 저항성을 보이는지에 대한 분석이 가능하고, 궁극적으로 약물 효과를 예측하는 바이오 마커를 찾아내는게 가능해지게 됩니다.

title

overview
GDSC Website (https://www.cancerrxgene.org/)에서는 다양한 암종의 Pathway를 타겟으로 하는 약물에 대한 암세포주의 스크리닝 결과를 제공하고 있습니다.

위의 사이트에 들어가면, 다양한 세포주 정보, 돌연변이 정보, 그리고 약물 스크리닝 결과를 항목별로 조회할 수 있으면, 해당 데이터도 다운로드가 가능합니다.

kras

위의 그림은 KRAS 돌연변이를 가지고 있는 세포주들에 대해서 통계적으로 유의미하게 효과가 있거나, 저항성을 나타내는 약물에 대한 Volcano plot을 보여주고 있습니다. 이러한 세포주 결과를 통해서, KRAS 돌연변이 암세포에 대해서는 효과를 나타내는 약물 (위 그림의 초록색)을 타겟 치료의 후보로 생각해 볼 수 있습니다.

scatter

또한 비슷하게, 개별 약물에 대해서 조회를 하면, 세포주 중에서 해당 돌연변이를 가지고 있는 세포주와 가지고 있지 않은 세포주의 반응을 통계적으로 분석하여 Scatter Plot으로 제공해주고 있기도 합니다. 위의 그림은 Ibrutinib에 대해서 KRAS 돌연변이를 가지고 있는 세포들이 더 높은 IC50를 가져서, 저항성이 높다는 것을 보여주고 있습니다.

현재 위와 같은 시도는 인간 유래의 확립된 세포주 (Human Cancer Cell Lines)들에 대해서 스크리닝이 진행되고 있습니다.  추후에는 궁극적으로는 환자 개개인의 암 세포 또는 종양 오가노이드 (Organoid)를 이용하여 비슷한 접근을 한 후에, 치료 효과를 판정하고, 이를 바탕으로 치료제를 선택하는 날이 올 것으로 기대되고 있습니다. 다만, 위의 방법은 약물에 의해 세포를 직접적으로 죽이는 효과이기 때문에 면역항암제와 같이 환자 체내에서 일어나는 면역 반응을 이용하는 치료제에 대해서는 효과를 보기 어렵다는 단점이 있습니다. 위의 GDSC 프로젝트에 대해서자세히 나와있는 논문들을 Reference에 남기며, 이번 포스팅은 마무리하도록 하겠습니다.

 

관련 포스팅 보기>

DNA 손상 복구 기전과 타겟 치료 항암제

[실험실 노트] Organoid의 기본 개념과 활용

면역 항암제, Immune checkpoint inhibitor의 원리 및 종류

동반 진단, Companion diagnostics란 무엇인가?

 


[References]

Yang, Wanjuan, et al. “Genomics of Drug Sensitivity in Cancer (GDSC): a resource for therapeutic biomarker discovery in cancer cells.” Nucleic acids research 41.D1 (2012): D955-D961.

Garnett, Mathew J., et al. “Systematic identification of genomic markers of drug sensitivity in cancer cells.” Nature 483.7391 (2012): 570-575.

Iorio, Francesco, et al. “A landscape of pharmacogenomic interactions in cancer.” Cell 166.3 (2016): 740-754.

[유전학 중요개념 정리] Mutational signature

암 발생의 대부분은 Somatic mutation으로 생각하고 있습니다. 사람이 살아가면서 다양한 주변 환경에 노출되고 이로 인해 DNA 손상을 받게되면서, 돌연변이가 축적이 되고 어느 한계를 넘어서는 순간 암세포로 자라나게 된다는 개념이지요. 이러한 암유전체 분야에서는 다양한 암종에서 어떤한 돌연변이가 발생하는지에 대한 Mutational signature 연구가 많이 되어 있는데, 2013년에 Nature에 관련 논문이 실린 이후 암 유전체 분야에서 Mutational signature 연구는 거의 필수로 요구되는 분위기인 듯 합니다.

여기서 Mutational signature특정 암종에서 발생하는 돌연변이의 종류에는 특정 패턴이 존재한다는 개념입니다. 구체적으로 돌연변이의 발생 원인 (mutagen exposure)에 노출된 후, 이러한 특정 DNA 손상 기전에 의해 아래와 같은 패턴(Mutational signature)이 나타나고, 결과적으로 암종으로 발생한다는 개념인 것이죠.

nature12477-f2
[Mutational Signature] 암종별로 발생하는 염기 치환 돌연변이들을 특징별로 다양한 패턴으로 나타낸 그림입니다.

이러한 연구는 아래 Science에 실린 논문과 같이 흡연에 의한 특정 암 발생의 위험도가 증가하는 것을 설명하는 많은 근거를 제공해줍니다. 즉, DNA 손상이 어떠한 기전에 의해서 발생했는지에 대한 흔적을 통해서, 암 발생의 원인과 기전에 대한 유추를 가능하게 합니다. 따라서 최근의 대부분의 암유전체 분석 논문에서는 거의 필수적으로 해당 분석 결과를 제시하는 추세입니다.

Picture1
[Mutational signature 활용 예] 흡연에 의한 대표적인 돌연변이 발생 패턴과 이를 통해, 관련 암종들의 발생 위험도가 증가함을 설명해준 논문의 Figure 입니다.

이러한 Mutational signature에 대한 정보는 아래의 Sanger Institute에서 제공하는 COSMIC 웹 사이트에서 더 자세하게 나와 있습니다.

COSMIC 웹사이트 방문하기: Signatures of Mutational Processes in Human Cancer

다음 포스팅에서는 이러한 Mutational signature 분석과 관련된 R package와 코드에 대해서 정리하기로 하고, 이번 포스팅은 여기에서 마치도록 하겠습니다.

 


[Reference]

Alexandrov, Ludmil B., et al. “Signatures of mutational processes in human cancer.” Nature 500.7463 (2013): 415.

Alexandrov, Ludmil B., et al. “Mutational signatures associated with tobacco smoking in human cancer.” Science 354.6312 (2016): 618-622.

 

암유전체 분석: Waterfall plot

최근에 종양 내과에 계신 선배와 함께 담관암 (Biliary tract cancer) 환자들의 암유전체 (Cancer Genomics) 관련 NGS 분석을 시작했습니다. 확실히 작년부터 다양한 질환과 환자들의 다양한 유전체 데이터를 접하다보니, 데이터셋의 특성에 따라서 분석 및 접근 방법이 많이 다른 것을 느낍니다. 사실 그동안 저는 주로 Germline variant 분석을 했었는데, Somatic variant 가 더 중요한 암 환자들을 분석하기 위해서는 추가로 더 공부하고 알아야 할 내용들이 많은 것 같습니다. 특히 암과 같은 경우는 선천적으로 가지고 있는 Germline variant와 살면서 축적된 Somatic mutation을 종합적으로 함께 고려해야하기 때문에, 더 복잡한 측면이 있는 것 같습니다.

관련 포스팅 보기 > [유전학 중요개념 정리] Germline vs. Somatic mutation

오늘은 암유전체 분석 관련 논문들의 Figure 1을 차지하는 Waterfall plot을 만드는 법을 잘 소개하고 있는 페이지가 있어 관련 내용을 스크랩 합니다.

다운로드

Waterfall plot: 환자군에서 나타나는 Mutation을 유전자별로 나타내어, 전체 암 유전체의 특성을 잘 나타내주는 plot으로 마치 폭포가 떨어지는 모양과 비슷한데서 그 이름의 유래가 있습니다.

관련 설명 링크 가기:

Waterfall plot: introduction

Introduction to waterfall plots (Griffith Lab)

 

이제 연구자들에게 Bioconductor와 R과 같은 프로그램은 필수죠. 다행히 저와 같은 코드를 잘 모르는 사람을 위해서 R package가 잘 만들어져 있습니다. 위 페이지에서 소개하는 필수 코드를 약간 정리하여 올립니다.


library(GenVisR)
setwd("c:/BTC_R/sample")

# Load data file
mutationData <- read.csv("BKM120_mutationdata.csv")
clinicalData <- read.csv("BKM120_clinical.csv")
mutationBurden <- read.csv("BKM120_mutationburden.csv")

# Reformat the mutation data for waterfall()
mutationData <- mutationData[,c("patient", "gene.name", "trv.type", "amino.acid.change")]
colnames(mutationData) <- c("sample", "gene", "variant_class", "amino.acid.change")

# Create a vector to save mutation priority order for plotting
mutation_priority <- as.character(unique(mutationData$variant_class))

# Create an initial plot
waterfall(mutationData, fileType = "Custom", variant_class_order=mutation_priority)

# Define a mutation hierarchy
mutationHierarchy <- c("nonsense", "frame_shift_del", "frame_shift_ins", "in_frame_del", "splice_site_del", "splice_site", "missense", "splice_region", "rna")

# define colours for all mutations
mutationColours <- c("nonsense"='#4f00A8', "frame_shift_del"='#A80100', "frame_shift_ins"='#CF5A59', "in_frame_del"='#ff9b34', "splice_site_del"='#750054', "splice_site"='#A80079', "missense"='#009933', "splice_region"='#ca66ae', "rna"='#888811')

# Find which samples are not in the mutationBurden data frame
# First, let's look at the sample names in the mutationData and mutationBurden
mutationData$sample
mutationBurden$sample

# Now, determine the non-overlap between these values
sampleVec <- unique(mutationData$sample)
sampleVec[!sampleVec %in% mutationBurden$sample]

# Fix mutationBurden to match mutationData
mutationBurden$sample <- gsub("^WU(0)+", "", mutationBurden$sample)

# Check for non-overlap again
sampleVec[!sampleVec %in% mutationBurden$sample]
# reformat clinical data to long format
library(reshape2)
clinicalData_2 <- clinicalData[,c(1,2,3,5)]
colnames(clinicalData_2) <- c("sample", "Months on Study", "Best Response", "Treatment Setting")
clinicalData_2 <- melt(data=clinicalData_2, id.vars=c("sample"))

# find which samples are not in the mutationBurden data frame
sampleVec <- unique(mutationData$sample)
sampleVec[!sampleVec %in% clinicalData$sample]

# fix mutationBurden to match mutationData
clinicalData_2$sample <- gsub("^WU(0)+", "", clinicalData_2$sample)

# create the waterfall plot
waterfall(mutationData, fileType = "Custom", variant_class_order=mutationHierarchy, mainPalette=mutationColours, mutBurden=mutationBurden, clinData=clinicalData_2, clinLegCol=3, clinVarCol=c('0-6'='#ccbadc', '6.1-12'='#9975b9', '12.1+'='#663096', 'Partial Response'='#c2ed67', 'Progressive Disease'='#E63A27', 'Stable Disease'='#e69127', '1'='#90ddee', '2'='#649aa6', '3+'='#486e77'), clinVarOrder=c('1', '2', '3+', 'Partial Response', 'Stable Disease', 'Progressive Disease', '0-6', '6.1-12', '12.1+'), section_heights=c(1, 5, 1), mainLabelCol="amino.acid.change", mainLabelSize = 3)
# Create a sample ordering
sample_ordering <- c("19", "5", "31", "22", "12", "2", "32", "8", "28", "18", "4", "24", "23", "17", "11", "14")

# Create a gene ordering
gene_ordering <- c("CDH1", "MALAT1", "RUNX1", "NCOR1", "GATA3", "FOXA1", "ESR1", "CBFB", "TBX3", "TAB1", "MED12", "XBP1", "TP53", "RB1CC1", "BRCA2", "ATM", "SMARCD1", "MLL3", "MLL2", "ARID1A", "FBXW7", "CAV1", "MAP3K1", "MAP2K4", "NOTCH4", "PDGFRA", "ERBB3", "ERBB2", "RELN", "MAGI3", "MTOR", "AKT2", "AKT1", "PTEN", "PIK3CA")

# Create a gene ordering
waterfall(mutationData, fileType = "Custom", variant_class_order=mutationHierarchy, mainPalette=mutationColours, mutBurden=mutationBurden, clinData=clinicalData_2, clinLegCol=3, clinVarCol=c('0-6'='#ccbadc', '6.1-12'='#9975b9', '12.1+'='#663096', 'Partial Response'='#c2ed67', 'Progressive Disease'='#E63A27', 'Stable Disease'='#e69127', '1'='#90ddee', '2'='#649aa6', '3+'='#486e77'), clinVarOrder=c('1', '2', '3+', 'Partial Response', 'Stable Disease', 'Progressive Disease', '0-6', '6.1-12', '12.1+'), section_heights=c(1, 5, 1), mainLabelCol="amino.acid.change", mainLabelSize=3, sampOrder=sample_ordering, geneOrder=gene_ordering)

 

GenVisR Bioconductor 페이지 바로가기

 

[Reference]

Skidmore, Zachary L., et al. “GenVisR: genomic visualizations in R.” Bioinformatics 32.19 (2016): 3012-3014.