diff --git a/R/plotting.R b/R/plotting.R
index 56f6284ae4f6582bc63f0beb63ef431b1e656406..c6e6d45fad886368c905e0ab264b1b8a584a69ff 100644
--- a/R/plotting.R
+++ b/R/plotting.R
@@ -525,7 +525,7 @@ narrow_summ <- function(summ,kvals,labs,...) {
 
 ### PLOTTING: TOP-LEVEL PLOT CREATION
 
-make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NULL, asp=1) {
+make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NULL,i_range=NULL, asp=1) {
     ## Get metadata.
     summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula")
     ## Get the table with ms1 data.
@@ -533,7 +533,12 @@ make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NU
 
     key <- names(kvals)
     ## Deal with retention time range.
-    rt_lim <- if (is.null(rt_range)) NULL else ggplot2::coord_cartesian(xlim=rt_range)#ggplot2::xlim(rt_range[[1]],rt_range[[2]])
+    coord <- if (is.null(rt_range) && is.null(i_range)) {
+                 NULL
+             } else {
+                 ggplot2::coord_cartesian(xlim=rt_range,
+                                          ylim=i_range)
+             }
     xrng <- range(pdata$rt) #if (!is.null(rt_range)) rt_range else range(pdata$rt)
     dx <- abs(xrng[[2]]-xrng[[1]])
     yrng <- range(pdata$intensity)
@@ -552,7 +557,7 @@ make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NU
         ggplot2::xlab("retention time")+
         cust_geom_line()+
         scale_y(axis=axis,labels=sci10)+
-        rt_lim
+        coord
     ## annt_dx <- 5*dx/100.
     ## annt <- summ_rows[,.(x=..annt_dx+ms1_rt,y=ms1_int,txt=signif(ms1_rt,5))]
     ## ## Annotate.
diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R
index d7a2b4a85726a7cf043bdf46f55a7c1050242b1e..a10305ff12ad8952ca2865cab1b10df4e7554850 100644
--- a/R/shiny-ui-base.R
+++ b/R/shiny-ui-base.R
@@ -795,6 +795,16 @@ mk_shinyscreen_server <- function(projects,init) {
             if (is.na(x2)) x2 <- NA_real_
             c(x1,x2)
         })
+
+        rf_get_irange <- reactive({
+            y1 <- input$plot_i_min
+            y2 <- input$plot_i_max
+
+            if (is.na(y1)) y1 <- NA_real_
+            if (is.na(y2)) y2 <- NA_real_
+            c(y1,y2)
+
+        })
         rf_plot_eic_ms1 <- reactive({
             isolate({
                 ms1 <- rvs$m$extr$ms1
@@ -806,7 +816,18 @@ mk_shinyscreen_server <- function(projects,init) {
             make_eic_ms1_plot(ms1,summ,kvals=req(rf_get_cindex_kval()),
                               labs=req(rf_get_cindex_labs()),
                               asp=PLOT_EIC_ASPECT,
-                              rt_range=rf_get_rtrange())
+                              rt_range=rf_get_rtrange(),
+                              i_range=rf_get_irange())
+        })
+
+        rf_get_ms2_eic_rtrange <- reactive({
+            pms1 <- rf_plot_eic_ms1()
+            drng <- range(pms1$data$rt)
+            urng <- rf_get_rtrange()
+            if (is.na(urng[[1]])) urng[[1]] <- drng[[1]]
+            if (is.na(urng[[2]])) urng[[2]] <- drng[[2]]
+            print(urng)
+            urng
         })
 
         rf_plot_eic_ms2 <- reactive({
@@ -821,7 +842,7 @@ mk_shinyscreen_server <- function(projects,init) {
             make_eic_ms2_plot(summ,
                               kvals=rf_get_cindex_kval(),
                               labs=rf_get_cindex_labs(),
-                              rt_range = rf_get_rtrange(),
+                              rt_range = rf_get_ms2_eic_rtrange(),
                               asp=PLOT_EIC_ASPECT)
             
             
@@ -1365,12 +1386,22 @@ mk_shinyscreen_server <- function(projects,init) {
         observeEvent(input$plot_brush,{
             xmin <- input$plot_brush[["xmin"]]
             xmax <- input$plot_brush[["xmax"]]
+            ymin <- input$plot_brush[["ymin"]]
+            ymax <- input$plot_brush[["ymax"]]
+
             if (!is.null(xmin)) updateNumericInput(session=session,
                                                    inputId="plot_rt_min",
                                                    value=xmin)
             if (!is.null(xmax)) updateNumericInput(session=session,
                                                    inputId="plot_rt_max",
                                                    value=xmax)
+
+            if (!is.null(ymin)) updateNumericInput(session=session,
+                                                   inputId="plot_i_min",
+                                                   value=ymin)
+            if (!is.null(ymax)) updateNumericInput(session=session,
+                                                   inputId="plot_i_max",
+                                                   value=ymax)
             session$resetBrush("plot_brush")
             
         },label = "get_rt_from_selection")
@@ -1384,6 +1415,12 @@ mk_shinyscreen_server <- function(projects,init) {
             updateNumericInput(session=session,
                                inputId="plot_rt_max",
                                value=NA_real_)
+            updateNumericInput(session=session,
+                               inputId="plot_i_min",
+                               value=NA_real_)
+            updateNumericInput(session=session,
+                               inputId="plot_i_max",
+                               value=NA_real_)
         }, label = "reset_rt_range")
 
 
diff --git a/inst/rmd/app.Rmd b/inst/rmd/app.Rmd
index eb1508505d9e4459fefad9bcde24d471d9888d9b..a69f48945f4cb550e99ae772122231cb52da5914 100644
--- a/inst/rmd/app.Rmd
+++ b/inst/rmd/app.Rmd
@@ -692,6 +692,26 @@ numericInput(inputId = "plot_rt_max",
 
 ```
 </div> <!-- RT div -->
+
+#### Intensity Range (MS1)
+
+<div style="display:flex; flex-direction: row;"> <!-- Intensity div -->
+```{r, echo=F}
+numericInput(inputId = "plot_i_min",
+             label="Start",
+             value=NA_real_,
+             width="15%")
+```
+```{r, echo=F}
+numericInput(inputId = "plot_i_max",
+             label="End",
+             value=NA_real_,
+             width="15%")
+
+
+```
+</div> <!-- Intensity div -->
+
 </div>
 <div>
 ```{r, echo=F}