Advanced Search
Last updated date: Dec 12, 2019 Views: 1084 Forks: 0
Metabolite extraction and LC-MS Analysis of Metabolic Changes in Escherichia coli strains upon evolution
João V. Rodrigues and Eugene I. Shakhnovich*
Department of Chemistry and Chemical Biology, Harvard University, 12 Oxford Street, Cambridge, MA 02138, USA
Materials and Reagents
Equipment
Software
Procedure
Metabolite extraction
- Prepare overnight cultures by inoculating with one single colony, picked from an agar plate, 5 mL M9 minimal media supplemented with 2 g/L glucose, and 34 μg/mL Chloramphenicol and 50µg/mL kanamycin appropriated antibiotics, in a 50 mL falcon flask. Grow the cultures overnight (about 16 h) at 30 ˚C, or other appropriate temperature, with shaking in an orbital shaker (250 RPM).
- On the next day, transfer 1 mL of the overnight cultures to 250 mL Erlenmeyer flasks containing 30 mL of M9 minimal media supplemented with 2 g/L glucose, and appropriated antibiotics. Shake in an orbital shaker at 250 RMP at 30 ˚C.
- Every 30 min take 100 uL of each culture and transfer to the wells of a clear flat-bottom 96-well plate and measure the optical density at 600 nm in a plate reader. Note OD conversion
- When the OD of the cultures reaches a value of 0.2-0.25, transfer the cells to a 50 mL falcon tube using the following formula to determine the volume to be transferred: V (mL) = OD/5
- Incubate the 50 mL tubes with the cultures in ice for 5 min.
- Pellet the cells by centrifugation in a swing rotor centrifuge (3220 x g) at 4˚C for 10 min.
- Immediately decant the supernatant and while the 50 mL tube is inverted use a 200 μL pipette to remove the remaining liquid.
- Add 300 µl of 80:20 ratio of methanol:water that had been pre-chilled on dry ice to the cell pellet and mix with the help of a pipette. Hint: Cutting the extremity of the 1 mL tip to increase the diameter of the tip hole helps avoiding clogging of the tip by the cell pellet.
- Vortex the samples thoroughly, until the suspension becomes homogeneous, transfer to a labeled pre-cooled 1.5 mL Eppendorf tube and allow the samples to incubate in dry ice for 10 min.
- Centrifuge the samples at 4˚C for 10 min at maximum speed (14000 RMP)
- Collect the supernatant in a labeled 1.5 mL Eppendorf tube pre-cooled in dry ice and place the tube in dry ice. Note, pre-cool the 1.5 mL Eppendorf tube in dry ice with the cap opened to avoid creation of vacuum.
- Add once more 300 µl of pre-chilled methanol:water solution and resuspend the pellet with the help of a 1 mL pipette and vortexing thoroughly, and allow the samples to incubate in dry ice for 10 min.
- Centrifuge the samples at 4˚C for 10 min at maximum speed (14000 RMP)
- Collect the supernatant and transfer to the first 300 μL extract.
- Store the samples at -80˚C until analyzed by mass spectrometry
Preparation of authentic standards
Prepare stock solutions 1 mM to 10 mM of the authentic standards in water and dilute in 80:20 ratio of methanol:water to a final concentration of 10 μM. These solutions are stored at -80˚C until analyzed by mass spectrometry. Different authentic standards can be combined in one solution if the exact mass of their most common adducts (+H/-H) does not overlap.
LC-MS detection of metabolites
LC-MS analysis was done in positive and negative ion mode as described (Bhattacharyya et al., 2016). Briefly, electrospray source settings included a sheath gas flow rate was set of 35, auxiliary gas flow rate at 5 L/min, a capillary temperature of 250°C, and auxiliary gas temperature of 300°C. A calibration of the m/z range used was performed using the Thermo LC-MS Calibration mix immediately prior to the analysis. A scan range of 66.7–1000 m/z was used at a resolving power of 70,000 with alternating positive and negative ion mode scans. The chromatographic separation of metabolites was performed using hyrdophilic interaction liquid chromatography (HILIC) on a SeQuant ZIC-pHILIC column, 5 µm, polymer PEEK 150 mm x 2.1 mm column (EMD Millipore) at a flow rate of 0.1 mL/min. Mobile phase A was 20 mM ammonium bicarbonate with 0.1% ammonium hydroxide, and mobile phase B was acetonitrile. The mobile phase composition was started at 100% B, and subsequently decreased to 40% B over 20 min. The column was then washed at 0% B for five minutes before re-equilibration to 100% B over fifteen minutes. The extracted ion currents were plotted using a mass accuracy window of 5 ppm around the predicted monoisotopic m/z value of the molecular ion of each metabolite. The integrated area of each peak was used to determine the response for each metabolite at their specific retention time as determined by chemical standards.
Data analysis
Determination of authentic standards retention time
- The retention times are determined from the .raw file containing using the software Thermo Excalibur 2.2 QualBrowser (or other raw data visualization tool)
- Plot the retention times listed in IDEOM and published in the literature published in other studies (Pluskal, Nakamura, Villar-Briones, & Yanagida, 2010) against the retention times experimentally determined by you for the matching compounds. Previous experience with the analysis of 32 compounds yielded a linear correlation with R2 between 0.61 and 0.73, depending on the datasets. Using the obtained correlation, it is possible to determine the predicted retention time for the remaining compounds in those datasets.
Data pre-processing (R commands):
Convert .raw files to mzXML (negative polarity)
setwd("C:/ [directory with .raw files] ")
converter <- c("C:/ [proteowizard directory] /msconvert.exe")
FILES <- list.files(recursive=TRUE,full.names=TRUE,pattern="\\.raw")
for (i in 1:length(FILES)){system (paste(converter,FILES[i]," --mzXML --32 --filter \"peakPicking true 1\" --filter \"scanTime [1,1500]\" --filter \"polarity negative\" -o Negative -v"))}
Process with mzmatch
require (mzmatch.R)
mzmatch.init ()
library(mzmatch.R)
mzmatch.init(version.1=FALSE)
mzmatch.R.Setup () #note: a popup menu appears to select the directory that contains the mzXML negative polarity files
xseto <- xcmsSet(sampleList$filenames, method='centWave', ppm=8,
peakwidth=c(10,60), snthresh=3, prefilter=c(0,0),
integrate=1, mzdiff=0.01, polarity="negative", verbose.columns=TRUE,
fitgauss=FALSE)
xset2<-retcor(xseto, method="obiwarp", profStep=0.01)
PeakML.xcms.write.SingleMeasurement(xset=xset2,
filename=sampleList$outputfilenames, ionisation="negative", ppm=2,
addscans=0, ApodisationFilter=TRUE)
setwd("C:/ [directory with .raw files] /Negative/peakml")
FILESf <- dir (full.names=TRUE,pattern="\\.peakml$")
mzmatch.ipeak.Combine(i=paste(FILESf,collapse=","),v=T,rtwindow=30,o="combined.peakml",combination="set",ppm=5, JHeapSize=16000)
mzmatch.ipeak.convert.ConvertToText (i=" combined.peakml",o=" combined.txt",v=T, JHeapSize=16000)
mzmatch.ipeak.filter.NoiseFilter (i="combined.peakml",o="combined_noisef.peakml",v=T,codadw=0.8, JHeapSize=16000)
mzmatch.ipeak.convert.ConvertToText (i="combined_noisef.peakml",o="combined_noisef.txt",v=T, JHeapSize=16000)
mzmatch.ipeak.filter.SimpleFilter(i="combined_noisef.peakml", o="combined_sfdet.peakml", mindetections=2, JHeapSize=16000)
mzmatch.ipeak.convert.ConvertToText (i="combined_sfdet.peakml",o="combined_sfdet.txt",v=T, JHeapSize=16000)
mzmatch.ipeak.filter.SimpleFilter(i="combined_sfdet.peakml", o="combined_highintensity.peakml", minintensity=50000, JHeapSize=16000)
mzmatch.ipeak.convert.ConvertToText (i="combined_highintensity.peakml",o="combined_highintensity.txt",v=T, JHeapSize=16000)
mzmatch.ipeak.sort.RelatedPeaks (i=" combined_highintensity.peakml",v=T,o="mzMatch_output.peakml",basepeaks="mzMatch_basepeaks.peakml",ppm=3,rtwindow=6, JHeapSize=16000)
annot <- paste("relation.id,relation.ship,codadw,charge")
mzmatch.ipeak.convert.ConvertToText (i="mzMatch_output.peakml",o="mzMATCHoutput.txt",v=T,annotations=annot, JHeapSize=16000)
Process with Ideom V19
The file mzMATCHoutput.txt contains empty intensity fields that correspond to the peaks that were not identified by mzmatch. These need to be replaced by a number before being imported by Ideom. A convenient way to do this is to open the file in Excel and use the find/replace function to replace all empty spaces by a number corresponding to the detection limit (e.g. 10000).
- Open Ideom excel file and enable macros
- In the worksheet “RTCalculator” fill in the authentic standards name and experimentally-determined retention times.
- Select the following parameters Column: “pHILIC Scotmet”, Dead Volume RT: “0.5 mL”, MW Range: “70-400”, pH: “6.5”. Note: Optimization might be required.
- Select the macro “Re-calculate charges at new pH”
- Select the macro “Update DB with Retention Times”
- In the worksheet “settings” select “1. Import MZmatch data and enter grouping info”. Select the file mzMATCHoutput.txt without empty intensity fields. Classify the columns by control, treatments and its replicates.
- Select the macro “Run Identification Macro”
- In the worksheet “Targeted” fill in the column “name” with the list of compounds that are not in the authentic standard list and for which the retention times were predicted by the linear correlation between measured retention times and published datasets (see section “Determination of authentic standards retention time”).
- Select macro “Update info from DB”
- Select macro “Search in txt file”
- For each compound compare the “RT found” with the RT predicted by the linear correlation. If these values match (we have defined 0.5 min difference criteria), including the compound and respective RT value in the “RTcalculator” worksheet may help increasing the number of correctly identified compounds.
- If additional authentic standards are included in the “RTcalculator” worksheet, then repeat macros ““Re-calculate charges at new pH”, “Update DB with Retention Times” and “Run Identification Macro”, in this order
- Run again the identification macro
- Manually inspect the “identification” tab and “rejected” and
- Repeat all the steps above from “Process with mzmatch” but in the positive polarity mode
- Combine the positive and negative files using selecting the macro “Combine pos and neg modes”
Do you have any questions about this protocol?
Post your question to gather feedback from the community. We will also invite the authors of this article to respond.
Tips for asking effective questions
+ Description
Write a detailed description. Include all information that will help others answer your question including experimental processes, conditions, and relevant images.
Share
Bluesky
X
Copy link