DOI: 10.5281/zenodo.13138174
title: Untargeted mutagenesis of brassinosteroid receptor SbBRI1 confers drought tolerance by altering phenylpropanoid metabolism in Sorghum bicolor

description: Metabolomics data from the study: Untargeted mutagenesis of brassinosteroid receptor SbBRI1 confers drought tolerance by altering phenylpropanoid metabolism in Sorghum bicolor. Files are raw chromatograms.

Metabolite profiling analysisMetabolite Extraction and Quantification. The whole metabolite extraction and quantification pipeline followed the guidelines as described in Giavalisco et al. (2011) and Salem et al. (2020). Briefly, 10-25 mg of fresh plant tissue was harvested and immediately frozen in N2, and ground using zirconia beads with the help of Tissue Lyser Mixer-Mill (Qiagen) 3 min at 25 Hz. After samples were extracted in 100% cold methanol, they were centrifuged for 10 min at 14000 rpm (Room temperature) and 3:1 chloroform was added. After vortexing thoroughly, 1:1 volume of water was added and the samples were subsequently vortexed and centrifuged. The semi-polar phase was used for analysis of semi-polar secondary and primary metabolites. For secondary semi-polar metabolites, the dried polar aliquots were resuspended in water:methanol (1:1 v/v).3 Analysis of semi-polar metabolites was performed using a Thermo Q Exactive Focus coupled to a reverse-phase C18 column. The column was maintained at 40°C with a flow rate of 400 μl/min, and the eluent system consisted of water (eluent A) and acetonitrile (eluent B), both containing 0.1% formic acid. Mass spectra were acquired in full scan mode over a range of 100-1500 m/z using data-independent acquisition (DIA) with high-energy collisional dissociation (HCD) energy set at 30 eV in positive mode.9 For primary metabolite metabolites, the dried polar was derivatized as described in Lisec et al. (2006). Derivatization was carried out at 37°C for 120 min using 40 μl of 20 mg/ml methoxyamine hydrochloride in pyridine, followed by a 30-min treatment at 37°C with 70 μl of trimethylsilyl-N-methyl trifluoroacetamide (MSTFA). The derivatized samples (1 μl) were injected in splitless mode into a gas chromatograph coupled to a time-of-flight mass spectrometer (Pegasus HT TOF-MS). Gas chromatography was performed on a 30-m DB-35 column using helium as the carrier gas. The initial temperature of the oven was 85°C, and it was ramped up at a rate of 15°C/min to a final temperature of 360°C. Mass spectra were recorded in the range of 70-600 m/z at a rate of 20 scans/s. Data Processing and Compound Annotation. LC-MS full scan data were processed using MS Refiner (Expressionist 14.0). Processing of chromatograms, peak detection, and integration were performed using RefinerMS (version 5.3; GeneData). Metabolite identification and annotation were performed using in-house reference compound library, tandem MS (MS/MS) 22 fragmentation, and metabolomics databases (Alseekh et al., 2021). For the annotation of metabolites measured by GC-MS the Golm Metabolome Database was used (Kopka et al., 2005).





#heatmap of fold changes 




ts <-read.csv("all_log2fc_heat_all.csv", sep=";", fileEncoding='latin1',check.names=F, header=TRUE) 




ts1 <- ts 




ts1$class <- NULL  




 




row.names(ts1) <- ts1$compound 




ts1$compound <- NULL 




m <- as.matrix(ts1) 




 




ann <- ts[1:2] 




row.names(ann) <- ann$compound 




ann$compound <- NULL 




 




install.packages("pheatmap") 




 




library("pheatmap") 




 




m1 <- m[rownames(ann), ] 




 




pheatmap(m1, annotation_row = ann, cluster_rows = F,cluster_cols = F, cellheight = 10,  




         cellwidth = 10, gaps_row = cumsum(c(3,105,30,11,21,4,32,5,17)), gaps_col = cumsum(c(2,2,2)), scale = 'none') 




 




#boxplots 




install.packages("ggplot2") 




install.packages("readr") 




 




library(ggplot2) 




library(readr) 




 




install.packages("tidyverse") 




library(tidyverse) 




grid <- read.csv("sec_exp1_logfc_20.csv", sep=";", header=TRUE) 




 




grid_g <- grid%>% gather("compound", "value", 6:25) 




 




d=ggplot(data = grid_g, aes(x=compound, y=value, fill=factor(group)))+ 




  geom_boxplot(outlier.shape = NA)+ 




  geom_point(position = position_jitterdodge(0.1)) 




 




d+theme(text = element_text(size = 15))+ 




  scale_fill_manual(values = c("#ca5826","#e4ab92", "#008080", "#99cccc"))+ 




  labs(y="log2fc(metabolite content)",fill="gtype")+ 




  theme(axis.text.x = element_text(angle = 60, hjust = 1, size = 5)) +  




  theme_classic() + 




  coord_flip() + 




  facet_grid(condition ~ .) 




 




ggsave("logfcsum_exp1_15_bri1.png", width = 10, height = 10) 




 




#boxplots all data 




library(ggplot2) 




library(readr) 




library(viridis) 




library(tidyverse) 




library(dplyr) 




 




sPCA <-read.csv("GCMS_polar.csv", sep=",", fileEncoding='latin1', check.names = F, header=TRUE) 




 




row.names(sPCA) <- sPCA$Sample 




sPCA_D <- sPCA[6:155] 




sPCA_Dlog <- log(sPCA_D) 




sPCA_Dlog10 <- log10(sPCA_D) 




 




sPCA_Dlog <- cbind(sPCA_Dlog, group = sPCA$Sample_group) 




sPCA_Dlog <- sPCA_Dlog%>% select(group, everything()) 




 




sPCA_Dlog <- cbind(sPCA_Dlog, sample = sPCA$Sample) 




sPCA_Dlog <- sPCA_Dlog%>% select(sample, everything()) 




 




write.csv(sPCA_Dlog10, "GCMS_polar_lg.csv") 




 




sPCA_Dlog_g <- sPCA_Dlog%>% gather("compound", "value", 3:152) 




 




d <- ggplot(sPCA_Dlog_g, aes(x=sample, y=value, fill=factor(group)))+ 




  geom_boxplot(outlier.shape = NA)+ 




  geom_point(position = position_jitterdodge(0.1)) 




 




d + theme(text = element_text(size = 15))+ 




  scale_fill_manual(values = c("#CC6677","#882255","#44AA99", "#117733"))+ 




  labs(y="lg(normalized metabolite content)", x= "sample" , fill="group")+ 




  theme(axis.text.x = element_text(angle = 60, hjust = 1)) +  




  theme_classic() + 




  geom_hline(yintercept=0, linetype="dashed", color = "black") 




#PCA 




install.packages("plotly") 




install.packages("ggfortify") 




library(plotly) 




library(ggfortify) 




 




sPCA <-read.csv("prim.csv", sep=";", header=TRUE) 




 




sPCA <- subset(sPCA, experiment!="2") 




 




sPCAtd <- all_d[7:240] 




sPCAtdn <- sPCAtd[-c(24), ] 




sPCAn <- sPCA[-c(24), ] 




 




#normal 




 




sec.pcat <- prcomp(sPCAtd, center = TRUE,scale. = TRUE) 




 




summary(sec.pcat) 




 




p <- autoplot(sec.pcat, data = all_d, colour = 'condition', shape = 'Genotype') +  




  geom_text(aes(label = Replicate), nudge_y = 0.02) + 




  theme_classic() + 




  scale_color_manual(values=c("#56B4E9", "#E69F00")) 




 




ggplotly(p) 




#experiment wise fold changes 




write.csv(sec_fc_mean, "sec_foldchange_mean.csv") 




 




sec_fc_exp1 <- sect[1] 




 




sec_fc_exp1$bri1.drought <- foldchange(sect$X72.bri1.drought, sect$median.WT.c1) 




sec_fc_exp1$bri1.drought1 <- foldchange(sect$X72.bri1.drought.1, sect$median.WT.c1) 




sec_fc_exp1$bri1.drought2 <- foldchange(sect$X72.bri1.drought.2, sect$median.WT.c1) 




 




sec_fc_exp1$bri1.control <- foldchange(sect$X72.bri1.control, sect$median.WT.c1) 




sec_fc_exp1$bri1.control1 <- foldchange(sect$X72.bri1.control.1, sect$median.WT.c1) 




sec_fc_exp1$bri1.control2 <- foldchange(sect$X72.bri1.control.2, sect$median.WT.c1) 




 




sec_fc_exp1$WT.drought <- foldchange(sect$X72.WT..drought, sect$median.WT.c1) 




sec_fc_exp1$WT.drought1 <- foldchange(sect$X72.WT..drought.1, sect$median.WT.c1) 




sec_fc_exp1$WT.drought2 <- foldchange(sect$X72.WT..drought.2, sect$median.WT.c1) 




 




sec_fc_exp1$WT.control <- foldchange(sect$X72.WT..control, sect$median.WT.c1) 




sec_fc_exp1$WT.control1 <- foldchange(sect$X72.WT..control.1, sect$median.WT.c1) 




sec_fc_exp1$WT.control2 <- foldchange(sect$X72.WT..control.2, sect$median.WT.c1) 




 




 




write.csv(sec_fc_exp1, "sec_fc_exp1.csv") 




 




#all compounds for RNAsq comarision 




 




all_R <-read.csv("all_RNAsq.csv", sep=";", fileEncoding='latin1',check.names=F, header=T) 




 




all_fc_exp2 <- all_R[1] 




 




all_fc_exp2$drought <- foldchange(all_R$bri1_drought, all_R$WT_drought) 




 




all_fc_exp2$control <- foldchange(all_R$bri1_control, all_R$WT_control) 




 




write.csv(all_fc_exp2, "all_foldchange_exp2.csv") 




 




#students t test 




 




secfc_2_t <-read.csv("sec_exp1_logfc.csv", sep=";", fileEncoding='latin1',check.names=F, header=T) 




 




secfc_2_t <- secfc_2_t[-2] 




secfc_2_t <- secfc_2_t[-(14:25)] 




 




st2<- secfc_2_t %>% gather("compound", "value", 6:171) 




stat.test1 <- st2 %>% 




  group_by(compound) %>% 




  t_test(value ~ group) 




add_significance() 




stat.test1