Mechanism of Doxorubicin-induced Cardiotoxicity


Organism Mus musculus

To compare expression profiles in the cardiomyocytes with wild type top2b and those with top2b deletion after in vivo treatment of mice with doxorubicin or drug vehicle 1


Doxorubicin is widely used in modern cancer treatments, despite the advent of targeted therapy. However, a dose-dependent cardiotoxicity often limits its clinical use. The prevailing theory hypothesizes that doxorubicin-induced cardiotoxicity is the result of reactive oxygen species (ROS) generation due to redox-cycling of doxorubicin. Here is shown that cardiomyocyte-specific deletion of Topoisomerase II beta (Top2b) markedly reduced DNA double-strand breaks, apoptosis, and functional damages in doxorubicin-treated hearts. To investigate transcriptomic changes after doxorubicin treatment in wild type mouse and mouse with cardiac specific deletion of Top2b, researchers have examined the expression profiles in 4 groups of mice (3/group), ie. wildtype mice with or without doxorubicin treatment and mice with Top2b deletion in the cardiomyocytes with or without doxorubicin treatment. Mice were treated with doxorubicin (25mg/kg, i.p.) or PBS (drug vehicle) for 16 hr or 72 hr. The heart was removed and cardiomyocytes were isolated by using a Langendorff apparatus. After purification, total RNA was extracted from the cardiomyocytes, purified, and used for gene expression analysis. Compared with that in control cardiomyocytes or cardiomyocytes with Top2b deletion, doxorubicin caused a significant expression change in the genome of cardiomyocytes from the wildtype mice. Among the changes, multiple genes encoding mitochondrial structural protein and components of the respiratory chain complexes were down-regulated 72 hr after treatment while multiple genes in the p53 pathway were up-regulated 16 hr after treatment in the wildtype cardiomyocytes.

Overall design: Expression changes were examined in 2 groups of mice (wild type and conditional knockout of top2b in the cardiomyocytes) treated with doxorubicin or PBS for 16 or 72 hours



library(limma)
library(tidyverse)
library(dplyr)
library(magrittr)



Features  Samples 
   29532       12 


        treatment
genotype dox pbs
   top2b   3   3
   wt      3   3






Feature Inspection from Density-plot and Pre-processing

eset <- doxiru
exprs(eset) <- log(exprs(eset))
plotDensities(eset,  group = pData(eset)[,"genotype"], legend = "topright")



# Quantile normalize
exprs(eset) <- normalizeBetweenArrays(exprs(eset))
plotDensities(eset,  group = pData(eset)[,"genotype"], legend = "topright")
abline(v=0)



# Determining the genes with mean expression level greater than 0
keep <- rowMeans(exprs(eset)) > 0
sum(keep)
[1] 18361



eset <- eset[keep,]
plotDensities(eset, group = pData(eset)[,"genotype"], legend = "topright")

NA
NA





Boxplot of top2b


As expected, the expresssion of Top2b is much lower in the null mice (top2b) compared to wild type (wt).








Batch Effects & Checking Sources of Variations


Visualized the variation effect in PCA with Multidimensional Scaling. Both treatment and genotypic variates are checked.

plotMDS(eset, labels = pData(eset)[,"genotype"], gene.selection = "common")


plotMDS(eset, labels = pData(eset)[,"treatment"], gene.selection = "common")


Reassuringly, the samples cluster by their genotype and treatment. Interestingly, the Top2b null samples cluster more tightly compared to the wild type samples.


This supports the hypothesis that, top2b null mice are resistant to cardiotoxic effect of Doxorubicin.








Data Modelling


Factorial Design Using Group-mean Parameterization Model for Doxorubicine Study;

\(Y \:= \:\beta_1 X_1 \:+\: \beta_2 X_2 \:+\:\beta_3 X_3\:+\: \beta_4 X_4\:+\: \epsilon\)


  • \(β_1\) - Mean expression level in top2b mice treated with dox
  • \(β_2\) - Mean expression level in top2b treated with pbs
  • \(β_3\) - Mean expression level in wt mice treated with dox
  • \(β_4\) - Mean expression level in wt mice treated with pbs



Contrasts for Doxorubicine Study


  • Response of wild type mice to dox treatment: \(β_3 − β_4\) = 0
  • Response of Top2b null mice to dox treatment: \(β_1 − β_2\) = 0
  • Differences between Top2b null and wild type mice in response to dox treatment: \((β_1 − β_2) - (β_3 − β_4) = 0\)


group <- with(pData(eset), paste(genotype, treatment, sep = "."))
group <- factor(group)


design <- model.matrix(~0 + group)
colnames(design) <- levels(group)


colSums(design)
top2b.dox top2b.pbs    wt.dox    wt.pbs 
        3         3         3         3 

This resulted in 4 coefficients that each model 3 samples.




To test for the effect of doxorubicin on the hearts of wild type and Top2b null mice (and any interaction between treatment and genotype), it’s needed to contrast the coefficients from the design matrix.

cm <- makeContrasts(dox_wt = wt.dox - wt.pbs,
                    dox_top2b = top2b.dox - top2b.pbs,
                    interaction = (top2b.dox - top2b.pbs) - (wt.dox - wt.pbs),
                    levels = design)

# View the contrasts matrix
cm
           Contrasts
Levels      dox_wt dox_top2b interaction
  top2b.dox      0         1           1
  top2b.pbs      0        -1          -1
  wt.dox         1         0          -1
  wt.pbs        -1         0           1



Model Fitting


fit <- lmFit(eset, design)
fit2 <- contrasts.fit(fit, contrasts = cm)
fit2 <- eBayes(fit2)

results <- decideTests(fit2)
summary(results)
       dox_wt dox_top2b interaction
Down     3180         0        1254
NotSig  12265     18361       15621
Up       2916         0        1486
# Create a Venn diagram
vennDiagram(results)

As expected, the doxorubucin only had an effect on the wild type mice.




Contrast Specified P-value Histogram


stats_dox_wt <- topTable(fit2, coef = "dox_wt", number = nrow(fit2),
                         sort.by = "none")

stats_dox_top2b <- topTable(fit2, coef = "dox_top2b", number = nrow(fit2),
                            sort.by = "none")

stats_interaction <- topTable(fit2, coef = "interaction", number = nrow(fit2),
                              sort.by = "none")


hist(stats_dox_wt[,"P.Value"])

hist(stats_dox_top2b[,"P.Value"])

hist(stats_interaction[,"P.Value"])

The contrasts dox_wt and interaction were enriched for low p-values, and the p-values for the contrast dox_top2b were uniformly distributed.


Contrast Specified Volcano-Plot


# Extract the gene symbols
gene_symbols <- fit2$genes[,"symbol"]

# Create a volcano plot for the contrast dox_wt
volcanoplot(fit2, coef = "dox_wt", highlight = 5, names = gene_symbols)


# Create a volcano plot for the contrast dox_top2b
volcanoplot(fit2, coef = "dox_top2b", highlight = 5, names = gene_symbols)


# Create a volcano plot for the contrast interaction
volcanoplot(fit2, coef = "interaction", highlight = 5, names =gene_symbols)

The difference in the x- and y-axis ranges for the dox_top2b contrast comapred to the other two are noted.






Pathway Enrichment Analysis


To better understand the effect of the differentially expressed genes in the doxorubicin study, enrichment of known biological pathways curated in the KEGG database are tested.

entrez <- fit2$genes[,"entrez"]

enrich_dox_wt <- kegga(fit2, coef = "dox_wt", geneid = entrez, species = "Mm")
topKEGG(enrich_dox_wt)

enrich_interaction <- kegga(fit2, coef = "interaction", geneid = entrez, species = "Mm")
topKEGG(enrich_interaction)


One of the top hits for both contrasts was a pathway for cardiomyopathy, so the genes in this pathway would be worth investigating further.


R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] limma_3.40.6                plotly_4.9.2.1              annotables_0.1.91          
 [4] forcats_0.5.0               stringr_1.4.0               dplyr_0.8.3                
 [7] purrr_0.3.3                 readr_1.3.1                 tidyr_1.0.0                
[10] tibble_2.1.3                ggplot2_3.3.2               tidyverse_1.3.0            
[13] magrittr_1.5                SummarizedExperiment_1.14.1 DelayedArray_0.10.0        
[16] BiocParallel_1.18.1         matrixStats_0.57.0          Biobase_2.44.0             
[19] GenomicRanges_1.36.1        GenomeInfoDb_1.20.0         IRanges_2.18.3             
[22] S4Vectors_0.22.1            BiocGenerics_0.30.0        

loaded via a namespace (and not attached):
 [1] colorspace_1.4-1       ellipsis_0.3.1         rsconnect_0.8.16       htmlTable_2.1.0       
 [5] XVector_0.24.0         base64enc_0.1-3        fs_1.3.1               rstudioapi_0.11       
 [9] remotes_2.2.0          bit64_4.0.5            AnnotationDbi_1.46.1   fansi_0.4.1           
[13] lubridate_1.7.4        xml2_1.2.2             splines_3.6.1          geneplotter_1.62.0    
[17] knitr_1.30             Formula_1.2-4          jsonlite_1.7.1         broom_0.5.3           
[21] annotate_1.62.0        GO.db_3.8.2            cluster_2.1.0          dbplyr_1.4.4          
[25] png_0.1-7              BiocManager_1.30.10    compiler_3.6.1         httr_1.4.2            
[29] backports_1.1.5        assertthat_0.2.1       Matrix_1.2-18          lazyeval_0.2.2        
[33] cli_2.1.0              org.Mm.eg.db_3.8.2     htmltools_0.5.0        tools_3.6.1           
[37] gtable_0.3.0           glue_1.3.1             GenomeInfoDbData_1.2.1 Rcpp_1.0.3            
[41] cellranger_1.1.0       vctrs_0.3.4            nlme_3.1-143           xfun_0.18             
[45] rvest_0.3.6            lifecycle_0.2.0        XML_3.99-0.3           zlibbioc_1.30.0       
[49] scales_1.1.1           hms_0.5.3              RColorBrewer_1.1-2     yaml_2.2.1            
[53] curl_4.3               memoise_1.1.0          gridExtra_2.3          rpart_4.1-15          
[57] latticeExtra_0.6-29    stringi_1.4.4          RSQLite_2.2.1          genefilter_1.66.0     
[61] checkmate_2.0.0        rlang_0.4.8            pkgconfig_2.0.3        bitops_1.0-6          
[65] evaluate_0.14          lattice_0.20-38        htmlwidgets_1.5.2      bit_4.0.4             
[69] tidyselect_0.2.5       R6_2.4.1               generics_0.0.2         Hmisc_4.4-1           
[73] DBI_1.1.0              pillar_1.4.6           haven_2.3.1            foreign_0.8-74        
[77] withr_2.3.0            survival_3.1-8         RCurl_1.98-1.2         nnet_7.3-12           
[81] modelr_0.1.8           crayon_1.3.4           rmarkdown_2.5          jpeg_0.1-8.1          
[85] locfit_1.5-9.4         grid_3.6.1             readxl_1.3.1           data.table_1.13.0     
[89] blob_1.2.1             reprex_0.3.0           digest_0.6.26          xtable_1.8-4          
[93] munsell_0.5.0          viridisLite_0.3.0     




  1. “Zhang S, Liu X, Bawa-Khalfe T, Lu LS et al. Identification of the molecular basis of doxorubicin-induced cardiotoxicity. Nat Med 2012 Nov;18(11):1639-42. PMID: 23104132”

LS0tDQp0aXRsZTogIlJOQS1zZXEgRGF0YSBBbmFseXNpcyAoTGltbWEpIg0KYXV0aG9yOiAiTWQuIFRhYmFzc3VtIEhvc3NhaW4gRW1vbiINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgaW5jbHVkZXM6DQogICAgICBhZnRlcl9ib2R5OiBmb290ZXIuaHRtbA0KICAgIHRoZW1lOiBkYXJrbHkNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KDQo8YnI+DQo8YnI+DQoNCjxoMSBhbGlnbj0nY2VudGVyJz48c3Ryb25nPk1lY2hhbmlzbSBvZiBEb3hvcnViaWNpbi1pbmR1Y2VkIENhcmRpb3RveGljaXR5PC9zdHJvbmc+PC9oMT4NCg0KPGJyPg0KDQoqKk9yZ2FuaXNtKiogCSpNdXMgbXVzY3VsdXMqDQoNClRvIGNvbXBhcmUgZXhwcmVzc2lvbiBwcm9maWxlcyBpbiB0aGUgY2FyZGlvbXlvY3l0ZXMgd2l0aCB3aWxkIHR5cGUgdG9wMmIgYW5kIHRob3NlIHdpdGggdG9wMmIgZGVsZXRpb24gYWZ0ZXIgaW4gdml2byB0cmVhdG1lbnQgb2YgbWljZSB3aXRoIGRveG9ydWJpY2luIG9yIGRydWcgdmVoaWNsZSBeWyJaaGFuZyBTLCBMaXUgWCwgQmF3YS1LaGFsZmUgVCwgTHUgTFMgZXQgYWwuIElkZW50aWZpY2F0aW9uIG9mIHRoZSBtb2xlY3VsYXIgYmFzaXMgb2YgZG94b3J1YmljaW4taW5kdWNlZCBjYXJkaW90b3hpY2l0eS4gTmF0IE1lZCAyMDEyIE5vdjsxOCgxMSk6MTYzOS00Mi4gUE1JRDogMjMxMDQxMzIiXQ0KDQo8YnI+DQoNCkRveG9ydWJpY2luIGlzIHdpZGVseSB1c2VkIGluIG1vZGVybiBjYW5jZXIgdHJlYXRtZW50cywgZGVzcGl0ZSB0aGUgYWR2ZW50IG9mIHRhcmdldGVkIHRoZXJhcHkuIEhvd2V2ZXIsIGEgZG9zZS1kZXBlbmRlbnQgY2FyZGlvdG94aWNpdHkgb2Z0ZW4gbGltaXRzIGl0cyBjbGluaWNhbCB1c2UuIFRoZSBwcmV2YWlsaW5nIHRoZW9yeSBoeXBvdGhlc2l6ZXMgdGhhdCBkb3hvcnViaWNpbi1pbmR1Y2VkIGNhcmRpb3RveGljaXR5IGlzIHRoZSByZXN1bHQgb2YgcmVhY3RpdmUgb3h5Z2VuIHNwZWNpZXMgKFJPUykgZ2VuZXJhdGlvbiBkdWUgdG8gcmVkb3gtY3ljbGluZyBvZiBkb3hvcnViaWNpbi4gSGVyZSBpcyBzaG93biB0aGF0IGNhcmRpb215b2N5dGUtc3BlY2lmaWMgZGVsZXRpb24gb2YgVG9wb2lzb21lcmFzZSBJSSBiZXRhIChUb3AyYikgbWFya2VkbHkgcmVkdWNlZCBETkEgZG91YmxlLXN0cmFuZCBicmVha3MsIGFwb3B0b3NpcywgYW5kIGZ1bmN0aW9uYWwgZGFtYWdlcyBpbiBkb3hvcnViaWNpbi10cmVhdGVkIGhlYXJ0cy4gVG8gaW52ZXN0aWdhdGUgdHJhbnNjcmlwdG9taWMgY2hhbmdlcyBhZnRlciBkb3hvcnViaWNpbiB0cmVhdG1lbnQgaW4gd2lsZCB0eXBlIG1vdXNlIGFuZCBtb3VzZSB3aXRoIGNhcmRpYWMgc3BlY2lmaWMgZGVsZXRpb24gb2YgVG9wMmIsIHJlc2VhcmNoZXJzIGhhdmUgZXhhbWluZWQgdGhlIGV4cHJlc3Npb24gcHJvZmlsZXMgaW4gNCBncm91cHMgb2YgbWljZSAoMy9ncm91cCksIGllLiB3aWxkdHlwZSBtaWNlIHdpdGggb3Igd2l0aG91dCBkb3hvcnViaWNpbiB0cmVhdG1lbnQgYW5kIG1pY2Ugd2l0aCBUb3AyYiBkZWxldGlvbiBpbiB0aGUgY2FyZGlvbXlvY3l0ZXMgd2l0aCBvciB3aXRob3V0IGRveG9ydWJpY2luIHRyZWF0bWVudC4gTWljZSB3ZXJlIHRyZWF0ZWQgd2l0aCBkb3hvcnViaWNpbiAoMjVtZy9rZywgaS5wLikgb3IgUEJTIChkcnVnIHZlaGljbGUpIGZvciAxNiBociBvciA3MiBoci4gVGhlIGhlYXJ0IHdhcyByZW1vdmVkIGFuZCBjYXJkaW9teW9jeXRlcyB3ZXJlIGlzb2xhdGVkIGJ5IHVzaW5nIGEgTGFuZ2VuZG9yZmYgYXBwYXJhdHVzLiBBZnRlciBwdXJpZmljYXRpb24sIHRvdGFsIFJOQSB3YXMgZXh0cmFjdGVkIGZyb20gdGhlIGNhcmRpb215b2N5dGVzLCBwdXJpZmllZCwgYW5kIHVzZWQgZm9yIGdlbmUgZXhwcmVzc2lvbiBhbmFseXNpcy4gQ29tcGFyZWQgd2l0aCB0aGF0IGluIGNvbnRyb2wgY2FyZGlvbXlvY3l0ZXMgb3IgY2FyZGlvbXlvY3l0ZXMgd2l0aCBUb3AyYiBkZWxldGlvbiwgZG94b3J1YmljaW4gY2F1c2VkIGEgc2lnbmlmaWNhbnQgZXhwcmVzc2lvbiBjaGFuZ2UgaW4gdGhlIGdlbm9tZSBvZiBjYXJkaW9teW9jeXRlcyBmcm9tIHRoZSB3aWxkdHlwZSBtaWNlLiBBbW9uZyB0aGUgY2hhbmdlcywgbXVsdGlwbGUgZ2VuZXMgZW5jb2RpbmcgbWl0b2Nob25kcmlhbCBzdHJ1Y3R1cmFsIHByb3RlaW4gYW5kIGNvbXBvbmVudHMgb2YgdGhlIHJlc3BpcmF0b3J5IGNoYWluIGNvbXBsZXhlcyB3ZXJlIGRvd24tcmVndWxhdGVkIDcyIGhyIGFmdGVyIHRyZWF0bWVudCB3aGlsZSBtdWx0aXBsZSBnZW5lcyBpbiB0aGUgcDUzIHBhdGh3YXkgd2VyZSB1cC1yZWd1bGF0ZWQgMTYgaHIgYWZ0ZXIgdHJlYXRtZW50IGluIHRoZSB3aWxkdHlwZSBjYXJkaW9teW9jeXRlcy4NCiAJDQoqKk92ZXJhbGwgZGVzaWduOioqCUV4cHJlc3Npb24gY2hhbmdlcyB3ZXJlIGV4YW1pbmVkIGluIDIgZ3JvdXBzIG9mIG1pY2UgKHdpbGQgdHlwZSBhbmQgY29uZGl0aW9uYWwga25vY2tvdXQgb2YgdG9wMmIgaW4gdGhlIGNhcmRpb215b2N5dGVzKSB0cmVhdGVkIHdpdGggZG94b3J1YmljaW4gb3IgUEJTIGZvciAxNiBvciA3MiBob3Vycw0KDQo8YnI+DQoNCioqKg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShsaW1tYSkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobWFncml0dHIpDQpgYGANCjxicj48YnI+DQoNCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBwYWdlZC5wcmludD1UUlVFfQ0KZG94aXJ1IDwtIHJlYWRSRFMoImNhbmNlcl9kb3hpcnViaWNpbi1leHByLnJkcyIpDQoNCmBgYA0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KDQplc2V0IDwtIGRveGlydQ0KZGltKGVzZXQpDQpgYGANCg0KPGJyPg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KDQp0YWJsZShwRGF0YShlc2V0KVssIGMoImdlbm90eXBlIiwgInRyZWF0bWVudCIpXSkNCg0KYGBgDQoNCg0KDQo8YnI+PGJyPjxicj48YnI+DQoNCioqKioqKg0KDQo8aDIgYWxpZ249ImNlbnRlciI+RmVhdHVyZSBJbnNwZWN0aW9uIGZyb20gRGVuc2l0eS1wbG90IGFuZCBQcmUtcHJvY2Vzc2luZzwvaDI+DQoNCmBgYHtyIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTEwfQ0KZXhwcnMoZXNldCkgPC0gbG9nKGV4cHJzKGVzZXQpKQ0KcGxvdERlbnNpdGllcyhlc2V0LCAgZ3JvdXAgPSBwRGF0YShlc2V0KVssImdlbm90eXBlIl0sIGxlZ2VuZCA9ICJ0b3ByaWdodCIpDQpgYGANCg0KPGJyPjxicj4NCg0KYGBge3IgZmlnLmhlaWdodD03LCBmaWcud2lkdGg9MTB9DQojIFF1YW50aWxlIG5vcm1hbGl6ZQ0KZXhwcnMoZXNldCkgPC0gbm9ybWFsaXplQmV0d2VlbkFycmF5cyhleHBycyhlc2V0KSkNCnBsb3REZW5zaXRpZXMoZXNldCwgIGdyb3VwID0gcERhdGEoZXNldClbLCJnZW5vdHlwZSJdLCBsZWdlbmQgPSAidG9wcmlnaHQiKQ0KYWJsaW5lKHY9MCkNCmBgYA0KDQo8YnI+PGJyPg0KDQoNCmBgYHtyfQ0KIyBEZXRlcm1pbmluZyB0aGUgZ2VuZXMgd2l0aCBtZWFuIGV4cHJlc3Npb24gbGV2ZWwgZ3JlYXRlciB0aGFuIDANCmtlZXAgPC0gcm93TWVhbnMoZXhwcnMoZXNldCkpID4gMA0Kc3VtKGtlZXApDQpgYGANCg0KPGJyPjxicj4NCg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTcsIGZpZy53aWR0aD0xMH0NCmVzZXQgPC0gZXNldFtrZWVwLF0NCnBsb3REZW5zaXRpZXMoZXNldCwgZ3JvdXAgPSBwRGF0YShlc2V0KVssImdlbm90eXBlIl0sIGxlZ2VuZCA9ICJ0b3ByaWdodCIpDQoNCg0KYGBgDQoNCjxicj48YnI+DQo8YnI+PGJyPg0KDQoNCjxoMyBhbGlnbj0iY2VudGVyIj5Cb3hwbG90IG9mIHRvcDJiPC9oMz4NCg0KDQoNCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTEwfQ0KdG9wMmIgPC0gd2hpY2goZkRhdGEoZXNldClbLCJzeW1ib2wiXSA9PSAiVG9wMmIiKQ0KDQpib3hwbG90KGV4cHJzKGVzZXQpW3RvcDJiLCBdIH4gcERhdGEoZXNldClbLCJnZW5vdHlwZSJdLA0KICAgICAgICBtYWluID0gZkRhdGEoZXNldClbdG9wMmIsInN5bWJvbCJdKQ0KYGBgDQoNCjxicj4NCg0KDQo8cCBhbGlnbj0iY2VudGVyIj5BcyBleHBlY3RlZCwgdGhlIGV4cHJlc3NzaW9uIG9mIFRvcDJiIGlzIG11Y2ggbG93ZXIgaW4gdGhlIG51bGwgbWljZSAodG9wMmIpIGNvbXBhcmVkIHRvIHdpbGQgdHlwZSAod3QpLjwvcD4NCg0KPGJyPg0KDQo8YnI+PGJyPg0KPGJyPjxicj4NCjxicj48YnI+DQoNCjxoMyBhbGlnbj0iY2VudGVyIj5CYXRjaCBFZmZlY3RzICYgQ2hlY2tpbmcgU291cmNlcyBvZiBWYXJpYXRpb25zPC9oMz4NCg0KPGJyPg0KPHAgYWxpZ24gPSJjZW50ZXIiPlZpc3VhbGl6ZWQgdGhlIHZhcmlhdGlvbiBlZmZlY3QgaW4gUENBIHdpdGggTXVsdGlkaW1lbnNpb25hbCBTY2FsaW5nLiBCb3RoIHRyZWF0bWVudCBhbmQgZ2Vub3R5cGljIHZhcmlhdGVzIGFyZSBjaGVja2VkLjwvcD4NCg0KYGBge3IgZmlnLmhlaWdodD03LCBmaWcud2lkdGg9MTB9DQpwbG90TURTKGVzZXQsIGxhYmVscyA9IHBEYXRhKGVzZXQpWywiZ2Vub3R5cGUiXSwgZ2VuZS5zZWxlY3Rpb24gPSAiY29tbW9uIikNCmBgYA0KDQoNCmBgYHtyIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTEwfQ0KDQpwbG90TURTKGVzZXQsIGxhYmVscyA9IHBEYXRhKGVzZXQpWywidHJlYXRtZW50Il0sIGdlbmUuc2VsZWN0aW9uID0gImNvbW1vbiIpDQpgYGANCg0KPGJyPg0KDQpSZWFzc3VyaW5nbHksIHRoZSBzYW1wbGVzIGNsdXN0ZXIgYnkgdGhlaXIgZ2Vub3R5cGUgYW5kIHRyZWF0bWVudC4gSW50ZXJlc3RpbmdseSwgdGhlIFRvcDJiIG51bGwgc2FtcGxlcyBjbHVzdGVyIG1vcmUgdGlnaHRseSBjb21wYXJlZCB0byB0aGUgd2lsZCB0eXBlIHNhbXBsZXMuDQoNCjxicj4NCg0KVGhpcyBzdXBwb3J0cyB0aGUgaHlwb3RoZXNpcyB0aGF0LCB0b3AyYiBudWxsIG1pY2UgYXJlIHJlc2lzdGFudCB0byBjYXJkaW90b3hpYyBlZmZlY3Qgb2YgRG94b3J1YmljaW4uDQoNCg0KPGJyPjxicj4NCjxicj48YnI+DQo8YnI+PGJyPg0KDQoqKioNCg0KPGgzIGFsaWduPSJjZW50ZXIiPkRhdGEgTW9kZWxsaW5nPC9oMz4NCg0KPGJyPg0KDQpGYWN0b3JpYWwgRGVzaWduIFVzaW5nIEdyb3VwLW1lYW4gUGFyYW1ldGVyaXphdGlvbiBNb2RlbCBmb3IgRG94b3J1YmljaW5lIFN0dWR5Ow0KDQoNCiRZIFw6PSAgXDpcYmV0YV8xIFhfMSBcOitcOiBcYmV0YV8yIFhfMiBcOitcOlxiZXRhXzMgWF8zXDorXDogXGJldGFfNCBYXzRcOitcOiBcZXBzaWxvbiQNCg0KPGJyPg0KDQotICTOsl8xJCAtIE1lYW4gZXhwcmVzc2lvbiBsZXZlbCBpbiB0b3AyYiBtaWNlIHRyZWF0ZWQgd2l0aCBkb3gNCi0gJM6yXzIkIC0gTWVhbiBleHByZXNzaW9uIGxldmVsIGluIHRvcDJiIHRyZWF0ZWQgd2l0aCBwYnMNCi0gJM6yXzMkIC0gTWVhbiBleHByZXNzaW9uIGxldmVsIGluIHd0IG1pY2UgdHJlYXRlZCB3aXRoIGRveA0KLSAkzrJfNCQgLSBNZWFuIGV4cHJlc3Npb24gbGV2ZWwgaW4gd3QgbWljZSB0cmVhdGVkIHdpdGggcGJzDQoNCjxicj48YnI+DQoNCjxoNCBhbGlnbj0iY2VudGVyIj5Db250cmFzdHMgZm9yIERveG9ydWJpY2luZSBTdHVkeTwvaDQ+DQoNCjxicj4NCg0KLSBSZXNwb25zZSBvZiB3aWxkIHR5cGUgbWljZSB0byBkb3ggdHJlYXRtZW50OiAkzrJfMyDiiJIgzrJfNCQgPSAwDQotIFJlc3BvbnNlIG9mIFRvcDJiIG51bGwgbWljZSB0byBkb3ggdHJlYXRtZW50OiAkzrJfMSDiiJIgzrJfMiQgPSAwDQotIERpZmZlcmVuY2VzIGJldHdlZW4gVG9wMmIgbnVsbCBhbmQgd2lsZCB0eXBlIG1pY2UgaW4gcmVzcG9uc2UgdG8gZG94IHRyZWF0bWVudDogJCjOsl8xIOKIkiDOsl8yKSAtICjOsl8zIOKIkiDOsl80KSA9IDAkDQoNCjxicj4NCg0KYGBge3J9DQpncm91cCA8LSB3aXRoKHBEYXRhKGVzZXQpLCBwYXN0ZShnZW5vdHlwZSwgdHJlYXRtZW50LCBzZXAgPSAiLiIpKQ0KZ3JvdXAgPC0gZmFjdG9yKGdyb3VwKQ0KDQoNCmRlc2lnbiA8LSBtb2RlbC5tYXRyaXgofjAgKyBncm91cCkNCmNvbG5hbWVzKGRlc2lnbikgPC0gbGV2ZWxzKGdyb3VwKQ0KDQoNCmNvbFN1bXMoZGVzaWduKQ0KYGBgDQoNCjxwIGFsaWduPSJjZW50ZXIiPlRoaXMgcmVzdWx0ZWQgaW4gNCBjb2VmZmljaWVudHMgdGhhdCBlYWNoIG1vZGVsIDMgc2FtcGxlcy48L3A+DQoNCjxicj48YnI+DQoNCjxicj4NCg0KVG8gdGVzdCBmb3IgdGhlIGVmZmVjdCBvZiBkb3hvcnViaWNpbiBvbiB0aGUgaGVhcnRzIG9mIHdpbGQgdHlwZSBhbmQgVG9wMmIgbnVsbCBtaWNlIChhbmQgYW55IGludGVyYWN0aW9uIGJldHdlZW4gdHJlYXRtZW50IGFuZCBnZW5vdHlwZSksIGl0J3MgbmVlZGVkIHRvIGNvbnRyYXN0IHRoZSBjb2VmZmljaWVudHMgZnJvbSB0aGUgZGVzaWduIG1hdHJpeC4NCg0KDQoNCmBgYHtyIGVjaG89VFJVRX0NCmNtIDwtIG1ha2VDb250cmFzdHMoZG94X3d0ID0gd3QuZG94IC0gd3QucGJzLA0KICAgICAgICAgICAgICAgICAgICBkb3hfdG9wMmIgPSB0b3AyYi5kb3ggLSB0b3AyYi5wYnMsDQogICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uID0gKHRvcDJiLmRveCAtIHRvcDJiLnBicykgLSAod3QuZG94IC0gd3QucGJzKSwNCiAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gZGVzaWduKQ0KY20NCmBgYA0KDQo8YnI+PGJyPg0KDQoNCjxoMyBhbGlnbj0iY2VudGVyIj5Nb2RlbCBGaXR0aW5nPC9oMz4NCg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTcsIGZpZy53aWR0aD0xMH0NCg0KZml0IDwtIGxtRml0KGVzZXQsIGRlc2lnbikNCmZpdDIgPC0gY29udHJhc3RzLmZpdChmaXQsIGNvbnRyYXN0cyA9IGNtKQ0KZml0MiA8LSBlQmF5ZXMoZml0MikNCg0KcmVzdWx0cyA8LSBkZWNpZGVUZXN0cyhmaXQyKQ0Kc3VtbWFyeShyZXN1bHRzKQ0KDQojIENyZWF0ZSBhIFZlbm4gZGlhZ3JhbQ0KdmVubkRpYWdyYW0ocmVzdWx0cykNCmBgYA0KDQoNCjxwIGFsaWduPSdjZW50ZXInPkFzIGV4cGVjdGVkLCB0aGUgZG94b3J1YnVjaW4gb25seSBoYWQgYW4gZWZmZWN0IG9uIHRoZSB3aWxkIHR5cGUgbWljZS48L3A+DQoNCjxicj48YnI+DQoNCjxicj4NCg0KDQo8aDMgYWxpZ249ImNlbnRlciI+Q29udHJhc3QgU3BlY2lmaWVkIFAtdmFsdWUgSGlzdG9ncmFtPC9oMz4NCg0KPGJyPg0KDQpgYGB7ciBmaWcuaGVpZ2h0PTcsIGZpZy53aWR0aD0xMH0NCnN0YXRzX2RveF93dCA8LSB0b3BUYWJsZShmaXQyLCBjb2VmID0gImRveF93dCIsIG51bWJlciA9IG5yb3coZml0MiksDQogICAgICAgICAgICAgICAgICAgICAgICAgc29ydC5ieSA9ICJub25lIikNCg0Kc3RhdHNfZG94X3RvcDJiIDwtIHRvcFRhYmxlKGZpdDIsIGNvZWYgPSAiZG94X3RvcDJiIiwgbnVtYmVyID0gbnJvdyhmaXQyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0LmJ5ID0gIm5vbmUiKQ0KDQpzdGF0c19pbnRlcmFjdGlvbiA8LSB0b3BUYWJsZShmaXQyLCBjb2VmID0gImludGVyYWN0aW9uIiwgbnVtYmVyID0gbnJvdyhmaXQyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQuYnkgPSAibm9uZSIpDQoNCg0KaGlzdChzdGF0c19kb3hfd3RbLCJQLlZhbHVlIl0pDQpoaXN0KHN0YXRzX2RveF90b3AyYlssIlAuVmFsdWUiXSkNCmhpc3Qoc3RhdHNfaW50ZXJhY3Rpb25bLCJQLlZhbHVlIl0pDQpgYGANCg0KDQo8cCBhbGlnbj0nY2VudGVyJz4NClRoZSBjb250cmFzdHMgZG94X3d0IGFuZCBpbnRlcmFjdGlvbiB3ZXJlIGVucmljaGVkIGZvciBsb3cgcC12YWx1ZXMsIGFuZCB0aGUgcC12YWx1ZXMgZm9yIHRoZSBjb250cmFzdCBkb3hfdG9wMmIgd2VyZSB1bmlmb3JtbHkgZGlzdHJpYnV0ZWQuPC9wPg0KDQo8YnI+DQoNCg0KPGgzIGFsaWduPSJjZW50ZXIiPkNvbnRyYXN0IFNwZWNpZmllZCBWb2xjYW5vLVBsb3Q8L2gzPg0KDQo8YnI+DQoNCmBgYHtyIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTEwfQ0KZ2VuZV9zeW1ib2xzIDwtIGZpdDIkZ2VuZXNbLCJzeW1ib2wiXQ0KDQp2b2xjYW5vcGxvdChmaXQyLCBjb2VmID0gImRveF93dCIsIGhpZ2hsaWdodCA9IDUsIG5hbWVzID0gZ2VuZV9zeW1ib2xzKQ0Kdm9sY2Fub3Bsb3QoZml0MiwgY29lZiA9ICJkb3hfdG9wMmIiLCBoaWdobGlnaHQgPSA1LCBuYW1lcyA9IGdlbmVfc3ltYm9scykNCnZvbGNhbm9wbG90KGZpdDIsIGNvZWYgPSAiaW50ZXJhY3Rpb24iLCBoaWdobGlnaHQgPSA1LCBuYW1lcyA9Z2VuZV9zeW1ib2xzKQ0KDQpgYGANCg0KPHAgYWxpZ249J2NlbnRlcic+DQpUaGUgZGlmZmVyZW5jZSBpbiB0aGUgeC0gYW5kIHktYXhpcyByYW5nZXMgZm9yIHRoZSBkb3hfdG9wMmIgY29udHJhc3QgY29tYXByZWQgdG8gdGhlIG90aGVyIHR3byBhcmUgbm90ZWQuPC9wPg0KDQoNCjxicj4NCjxicj48YnI+DQo8YnI+DQoNCioqKg0KDQoNCjxoMyBhbGlnbj0iY2VudGVyIj48c3Ryb25nPlBhdGh3YXkgRW5yaWNobWVudCBBbmFseXNpczwvc3Ryb25nPjwvaDM+DQoNCjxicj4NCg0KPHAgYWxpZ249J2NlbnRlcic+VG8gYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGVmZmVjdCBvZiB0aGUgZGlmZmVyZW50aWFsbHkgZXhwcmVzc2VkIGdlbmVzIGluIHRoZSBkb3hvcnViaWNpbiBzdHVkeSwgZW5yaWNobWVudCBvZiBrbm93biBiaW9sb2dpY2FsIHBhdGh3YXlzIGN1cmF0ZWQgaW4gdGhlIEtFR0cgZGF0YWJhc2UgYXJlIHRlc3RlZC48L3A+DQoNCg0KYGBge3J9DQplbnRyZXogPC0gZml0MiRnZW5lc1ssImVudHJleiJdDQoNCmVucmljaF9kb3hfd3QgPC0ga2VnZ2EoZml0MiwgY29lZiA9ICJkb3hfd3QiLCBnZW5laWQgPSBlbnRyZXosIHNwZWNpZXMgPSAiTW0iKQ0KdG9wS0VHRyhlbnJpY2hfZG94X3d0KQ0KZW5yaWNoX2ludGVyYWN0aW9uIDwtIGtlZ2dhKGZpdDIsIGNvZWYgPSAiaW50ZXJhY3Rpb24iLCBnZW5laWQgPSBlbnRyZXosIHNwZWNpZXMgPSAiTW0iKQ0KdG9wS0VHRyhlbnJpY2hfaW50ZXJhY3Rpb24pDQpgYGANCg0KPGJyPg0KT25lIG9mIHRoZSB0b3AgaGl0cyBmb3IgYm90aCBjb250cmFzdHMgd2FzIGEgcGF0aHdheSBmb3IgY2FyZGlvbXlvcGF0aHksIHNvIHRoZSBnZW5lcyBpbiB0aGlzIHBhdGh3YXkgd291bGQgYmUgd29ydGggaW52ZXN0aWdhdGluZyBmdXJ0aGVyLg0KDQo8YnI+DQoNCmBgYHtyIGVjaG89RkFMU0V9DQpzZXNzaW9uSW5mbygpDQpgYGANCg0KPGJyPjxicj4=
 

A work by Md. Tabassum Hossain Emon

emon.biotech.10th@gmail.com