QuAPPro

- Quantification and Alignment of Polysome Profiles -

Import and Export

Take a Tour

File Import

Export Analysis

Export your entire analysis as .RData. You can re-import it via File Import.
Export Analysis

Process and Quantify Profiles

UV Profile

Fluorescence

Quantification

Visualize Alignments

UV Profile

Fluorescence

Colors/Lines

Deconvolution

Take a Tour

UV Profile

Peak Detection

Deconvolution

Quantification

Model Parameters

Table of all aligned (and normalized) profiles

Download .csv file

Table of quantified areas

Download .csv file

Bar Plot Summary

Take a Tour

Select Values

Condition Assignment

Download Table

Colors

Table of contents

  1. Introduction
  2. First Steps
  3. Tab I: Alignment/Areas
  4. Tab II: Deconvolution
  5. Tab III: Alignment Table
  6. Tab IV: Quantification Summary
  7. Tab V: Bar Plots

1. Introduction

In order to facilitate and standardize the analysis of polysome profiles, we created a tool that allows interactive quantification and alignment of polysome profiles using the R Shiny Web App format. QuAPPro also allows visualization and quantification of associated fluorescence signals.

For optimal display of the app on some screens, you might have to reduce the zoom factor of your browser until you can see the two logos in the corners of our layout simultaneously!

2. First Steps

In the upper left corner of the “Alignment/Areas”, “Deconvolution” and “Bar Plot” tabs are buttons to load example data and to start a guided tour through the features of the respective tab. After clicking the “Guided Tour” button, you will be walked through the most important steps of the analysis. After clicking through all explanations or clicking “Close” at any point of the tour, you can load example data to explore QuAPPro’s interactive features. Reload the browser to erase the exemplary profiles and to start analyzing your own data!

3. Tab I: Alignment/Areas

Import and Export

Import files

QuAPPro accepts different text file formats for import via the file browser. Multiple files of the same format can be imported at once. First make sure that you specify the correct file format, which includes the number of lines to be skipped from the top of the file (not counting one header line), the column delimiter, the decimal separator, the number of the column that contains your UV absorbance data, and if applicable the number of the column that contains the fluorescence signal.

For convenience, the dropdown menu “Profile type” allows five options with pre-defined settings: As a default, QuAPPro expects .pks files generated by the Teledyne ISCO PeakTrak software. In these files, columns are separated by a space, a comma is used as a decimal separator (German settings) and the UV absorbance is provided in the third column. “TRIAX (UV)” refers to .csv files generated with the BioComp FlowCell software, where the first 47 lines need to be skipped, columns are separated by a comma, a point is used as a decimal separator, and UV absorbance is provided in the fourth column. “TRIAX (+ Fl.)” refers to BioComp FlowCell files including a fluorescence signal, where the first 51 lines need to be skipped, UV absorbance is provided in the fifth and the fluorescence signal in the third column. “PrimeView” profiles contain a space as a column separator, a comma as a decimal separator, and the first 2 lines are skipped. With “CustomTSV”, the settings are adjusted to a tab-separated file with a decimal point and UV absorbance in the second column.

Note of caution: When you export data using the PeakTrak, FlowCell or PrimeView software, the settings of your file might be different from the settings suggested by QuAPPro for these file types. For example, the decimal separator (’,’ versus ‘.’) might depend on the language settings of your operating system. If file import fails, inspect your file with a text editor and adjust the file import settings accordingly. Examples for all file types can be downloaded from our GitHub repository.

Implementation in R: The file import settings are passed as arguments to the R function read.delim().

Display a profile

Select one of the imported profiles from the “Select a profile” dropdown menu to display it in the “Process and Quantify Profiles” area.

The line plots show UV absorbance values on the y-axis and the row number of the corresponding data point on the x-axis.

Export your analysis

You can use “Export Analysis” to download your current analysis as .RData file. This allows you to document your work or to resume an analysis later by re-importing the .RData file via “Browse”.

Implementation in R: A list of all settings, data imported by the user and results generated during the analysis is exported as .RData file with the R function save().

Process and Quantify Profiles

Show fluorescence

Fluorescence profiles will not be displayed by default. If you have imported a file that includes a fluorescence signal, you can display the fluorescence profile by selecting “Show” in the “Fluorescence” section.

Adjust axis limits

You can adjust axis limits with “Set x min” and “Set x max”, or “Set y min” and “Set y max” specifically for the UV absorbance or fluorescence values. To avoid large numbers at the axis tick marks, numbers with three digits or more are divided by a factor that is then indicated in the axis title.

Set a baseline

All further steps that you might want to perform (quantification, alignment, deconvolution) require that you select a baseline. First, click on the “Baseline” button in the “UV Profile” section, then click into the plot until you are satisfied with the selected line, which will correspond to the next profile data value vertical of your click. Only when you click into an area with x-values outside of your profile data, the baseline will be set to exactly the y-value of your click position. If you intend to align or quantify fluorescence profiles, you need to select a separate baseline by selecting the “Baseline” button in the “Fluorescence” section and clicking into the plot showing the fluorescence signal.

Smooth profiles

If you would like to smooth profiles, you can adjust the degree of smoothing separately for UV absorbance and fluorescence. As long as the value is set to zero (which is the default), no smoothing is performed.

Implementation in R: If a value > 0 is selected, an extension of polynomial regression (spline smoothing) is applied with the smooth.spline() function, where the value selected by the user is passed to the function as “spar” parameter.

Quantify areas

After selecting a baseline, you can quantify the area of profile subsections. Select the start and end position of the area to be quantified using the “Start” and “End” buttons in the “Quantification” section. When you now click into the plot, the closest local maximum or minimum of your profile is selected by default. Using this feature, you can precisely set the start or end position of your quantification into a valley between two peaks. The automatic recognition of minima/maxima can be inactivated by deselecting “Min/max detection”. In addition, it is also possible to detect the closest inflection point by selecting “Inflection detection”. This may be useful when two peaks overlap strongly and are not separated by a defined local minimum. When neither of these options is active, the data point closest to your click will be selected. Once you defined start and end of the area to be quantified (shown as dashed green lines in the plot), choose an appropriate name for the area. In the dropdown menu “Select a name”, we offer a few common choices. Further names can be entered into the text field and added to the selection. With the button “Quantify”, the sum of values between the selected start and end point is calculated after subtraction of the baseline, and the result is added to the table in the tab Quantification Summary. If a fluorescence profile is displayed, the respective area under the fluorescence signal is also quantified and added to the Quantification Summary as columns ending in _fluo_area.

Note of caution: When smoothing is performed, the values of the smoothed profile are used for quantification. When the baseline or smoothing parameter is changed, the results of previous quantifications in the “Quantification Summary” tab will not be updated. You have to activate the “Quantify” button again to overwrite previous results!

Implementation in R: The functions for the automatic detection of local minima, maxima or inflection points first smooth the profile with smooth.spline(). A local minimum is then defined as a point or plateau of equal values where at least five consecutive preceding values show a decrease and five consecutive following values show an increase, while a local maximum is located between an increase followed by a decrease according to the same criteria. Inflection points are identified as local minima or maxima of the first derivative (represented by the difference between the individual data values).

The area under the profile is approximated by the sum of all data points from the selected start to the selected end position after subtraction of the baseline.

Align profiles

For aligning profiles, you have to choose a so-called x-anchor, which corresponds to the position on the x-axis along which multiple profiles should be aligned. First click the “X-anchor” button, then click into the plot until you are satisfied with the selected x-anchor (shown as red dashed line). By default, the closest local maximum or minimum of your profile is selected. This is convenient when you would like to align your profiles along a specific peak (e.g. the monosomes) or a valley between two peaks. The automatic recognition of minima/maxima can be inactivated by deselecting “Min/max detection”. In addition, it is also possible to detect the closest inflection point by selecting “Inflection detection”. This may be useful when two peaks overlap strongly and are not separated by a defined local minimum. When neither of these options is active, the data point closest to your click will be selected.

As soon as both baseline and x-anchor are set for a profile, it will automatically appear in the alignment plot of the Visualize Alignments section. The x- and y-values of the alignment plot can be downloaded from the Alignment Table tab.

Visualize Alignments

Show fluorescence

Fluorescence profiles will not be displayed by default. If you would like to show fluorescence profiles in your alignment, you first need to set a separate baseline (see Set a baseline). Only then you can show the fluorescence signal by selecting “Show” in the “Fluorescence” section.

Normalize profiles

Sometimes, the overall amount of material on your gradients might differ, or the length of the profiles might vary due to changes in elution speed between experiments. When an area with the name “Total” was quantified for all profiles in the alignment (see section Quantify areas), it is possible to normalize for differences in profile area or length. You can select the respective normalization procedure with “Normalize area” or “Normalize length”. With these options, it is even possible to align profiles from devices with different temporal resolution or sensitivity to each other.

When fluorescence profiles are shown, they are automatically normalized by the same factor as the UV profiles.

Implementation in R: The largest or longest “Total” area is used as a reference to calculate a normalization factor by which the x- and y-values of the other profiles are divided. To avoid that length normalization alone distorts the overall surface of a profile, y-values are additionally multiplied with the normalization factor of the x-values.

Change the order of profiles

As soon as both baseline and x-anchor are set for a profile, it will automatically appear in the alignment plot, and the name of the profile can be selected from the “Select a profile” menu. If you would like to change the order of profiles (also in the legend), select a profile and use the buttons with the upwards or downwards arrows. When the “Display” option is un-ticked, the selected profile is hidden from the alignment plot.

Rename profiles

By default, QuAPPro uses the file names for the legend of the alignment plot after removing common file extensions (.csv, .txt, .pks, .tsv or .asc). If you want to change the name of the selected profile in the legend, enter the new name in the input field “Label” and press “Rename”.

Modify colors and lines

For setting colors in the alignment plot, QuAPPro offers three color palettes (“Dark”, “Rainbow”, “Color blind friendly”). In order to change the color of an individual profile, first select the name of the profile from the “Select a profile” menu, then modify the color in the “Color” field or set a color using hex code. In addition, the line type and line width of the selected profile can be adjusted.

Note of caution: When the color palette is changed, colors that were set individually for a selected profile will be overwritten!

Implementation in R: The palette “Dark” corresponds to the “Dark 3” palette generated with the R function qualitative_hcl() of the colorspace package. The “Rainbow” palette is generated with rainbow(), and the colors of the color-blind friendly palette were copied from the R package colorBlindness.

4. Tab II: Deconvolution

For quantifying individual peaks that partially overlap with neighboring peaks, a deconvolution of the region around the peak of interest can be performed to compensate for the overlap.

Choose a profile

As soon as a baseline was selected for a UV profile in the main tab, the profile is available for deconvolution. By default, the profile selected in the Process and Quantify Profiles section of the Alignment/Areas is shown here. You can select any other available profile from the “Select a profile” menu.

Peak detection

The selected profile is displayed together with its second derivative (upper panel). All negative local minima of the second derivative are marked with grey dashed lines as putative positions of peaks underlying the profile. The second derivative is modified by smoothing with a default value of 0.2. You can change the sensitivity of peak detection by increasing or decreasing this value.

In addition, the resolution for identifying the local minima of the second derivative can be adjusted with the field “Resolution”. By default, at least five consecutively decreasing followed by five consecutively increasing values are required to define a local minimum (which can be separated by a plateau of equal values). When you increase this value, peak detection will become less sensitive, because a longer stretch of increasing and then decreasing values is required to define a local minimum (and thereby the position of a putative peak).

Note of caution: As soon as one of the parameters for peak detection is changed, already existing deconvolution results will disappear!

Implementation in R: The second derivative of the profile is represented by the second-order difference between the individual data values after baseline subtraction and smoothing of the UV profile (using the smoothing parameter provided in the “Deconvolution” tab). For smoothing, an extension of polynomial regression (spline smoothing) is applied with the smooth.spline() function, where the value selected by the user is passed to the function as “spar” parameter.

Deconvolution

The region of the UV profile that should be used for modelling individual peaks is defined interactively. First, activate the “Start” or “End” button, then click into the UV abs. plot (lower panel). By default, the closest local minimum, maximum or inflection point is detected. In addition, you can select the closest putative peak position (shown as grey dashed lines) with “2nd. deriv. minima detection”, or simply the data point closest to your click when none of these options is selected. After selecting both start and end of the region, deconvolution is activated with the “Go” button. The estimated parameters are provided as a table under “Peak parameters” and can be downloaded as a .csv file. The MSE value (mean squared error) provides a measure for how well the model fits the data. The smaller the value, the better the fit.

Note of caution: The overlap between the peaks in a polysome profile is often very strong, especially in the polysomal part. In addition, small hidden peaks can distort the shape of larger peaks, so that they cannot be modeled well with a Gaussian distribution. This can be the case due to an additional small ribosomal subunit that is not resolved as a separate peak under most conditions (half-mers). At the beginning and the end of the profile, peaks are also not resolved in a symmetric way. For all these reasons, deconvolution of polysome profiles is often only possible in a restricted range of a profile, where peaks do not overlap too strongly and show a Gaussian shape. In our example data, we chose the region between the outer inflection points of the 40S and the 80S peak for deconvolution, to minimize the effect of neighboring peaks that are not part of the deconvolution. Further deconvolution into the polysomes is only possible when the peaks are not too asymmetric. If the model does not converge, the message “Deconvolution failed” will be displayed.

Implementation in R: Non-linear regression with the R function nls() is used to estimate the position, standard deviation and height of Gaussian distributions as a model for individual peaks. The positions are restricted to the location of the identified second derivative minima with a tolerance of 1% of the entire profile length to the left and to the right. The MSE value is calculated as the mean of the squared differences between the model and the original data in the region of the profile that was used for deconvolution.

Quantification

When deconvolution was successful, you can select individual peaks by clicking into the plot. The selected peak will turn green. The name of the peak to be quantified can be selected from the dropdown menu “Select a name”, where we offer a few common choices. Further names can be entered into the text field and added to the selection. When you click the “Quantify” button, the result of the quantification will be added to the table in the Quantification Summary tab.

5. Tab III: Alignment Table

All aligned profile values can be downloaded here in one .csv table. The displayed values correspond to the current analysis status (normalized/not normalized) in the “Alignment/Areas” tab. When “Normalize length” was ticked, NAs will have to be introduced.

6. Tab IV: Quantification Summary

All quantified areas or peaks from the “Alignment/Areas” or the “Deconvolution” tab can be downloaded here as .csv file.

7. Tab V: Bar Plots

Select Values

Please select the area or peak of interest from the “Area or peak” dropdown menu. If you would like to normalize the selected value to another feature, select the respective area or peak under “Normalization”. For example, the proportion of polysomes relative to the total area is often measured as a proxy for global translation efficiency. In this case, “Polysomes_area” should be chosen as values, and “Total_area” for normalization.

Condition Assignment

Assign conditions to the individual profiles in the columns Condition1 and Condition2 directly in the table, which you can also download here. Values with the same entry will be treated as a group, and the mean and standard deviation will be displayed as a bar plot. If there are entries in the column Condition2, a grouped bar plot will be generated.

Implementation in R: Bar plots are generated with the geom_bar() and geom_errorbar() functions of the ggplot2 package. Individual data points are displayed with geom_quasirandom().

Colors

The colors of the bars and data points can be modified separately. If there are entries in Condition2, the colors selected for Condition1 will be ignored.

This is QuAPPro version 0.4.0.

To run it locally, you can download the code from our GitHub repository, where you can also find a collection of older versions.

Updates

October 2025: QuAPPro version 0.4.0.

  • The package shinybusy is now used to show a spinning wheel when the server is busy.
  • The manual was rewritten.
  • The layout of the main tab was restructured.
  • The extension “_decon” is removed in the axis title of the bar plot.
  • Bug fixes:
    • The peak parameter file of the “Deconvolution” tab is now correctly named.
    • The table downloaded from the “Bar Plot” tab contains the names of the original files as row names as displayed by the app.
    • Peaks in the example data can now be selected.

December 2024: QuAPPro version 0.3.1.

  • A guided tour was added to the Alignment/Areas, Deconvolution and Bar Plot tab.

December 2024: QuAPPro version 0.3.0.

  • The “Bar Plot” tab was added to allow visualization of quantifications.
  • Files with thousands separators can be imported now.
  • Values that are not on the profile can now be set as a baseline.

August 2024: QuAPPro version 0.2.0.

  • The tab “Deconvolution” was added.
  • To accommodate long profile names in the legend of the alignment, the plot will re-size accordingly.
  • The package shinyalert was used to add a welcome message.
  • The behavior of axis limits and axis labels was further optimized.

About Us

This shiny app was developed by Chiara Schiller, Matthias Lemmer and Johanna Schott at the Medical Faculty Mannheim ( MI3 , Stoecklin lab ).

Acknowledgements

We would like to thank Dr. Andreas Bohne-Lang at the IT department of the Medical Faculty Mannheim and all members of the Stoecklin lab for support and input.

Impressum