LNP Sample Characterization Service: You Provide LNP Samples, We Produce Particle Insights learn more>
LNP Axis

Free and open-source analysis tool for easy analysis for lipid nanoparticle (LNP) data across multiple datasets.
Instructions
Get Started
Designed for use with AutoLNP results files, it allows users to generate both standardized and custom plots with user-defined sample names, analyzing features like LNP counts, Cargo and Ligand positivity and abundance plots and more for each field of view (FOV).
Download Results from CODI
- LNP Axis uses data acquired with AutoLNP, analyzed in CODI using AI LNP Profiling analysis. To use it, data must be downloaded from CODI using the batch download feature (Figures 1-4).
- As a start, go to your collaboration of choice in CODI and click the “Analysis results” button on the left side. AI LNP Profiling analysis runs automatically during AutoLNP runs and should populate a list of analyses in the results section (Figure 1).
- Next, on the upper section click “batch download” (Figure 2):
- Scroll to datasets of choice and click the empty circles to fill them in (Figure 3).
- Change the name in the upper section (Figure 4, yellow box) then click “download X results” (2 here, Figure 4, pink box). A zip file will download automatically – do not navigate away. Open the zip file: There are four files. Save them anywhere – the file needed for LNP Axis ends in “results_batch.csv”.
Figure 1: Within a CODI collaboration, click this button to view analysis results
Figure 2: In the Analysis Results section of CODI, click the “Batch download” button at the top to enable checkboxes next to each analysis
Figure 3: Select each analysis/FOV for this experiment to download
Figure 4: Once all FOVs are selected, change the name in the yellow box to your experiment title, then click the download button (pink box) to download the results. Might take a few minutes- do not close the tab
Run GUI to Input and Re-Process Data
- Download the appropriate GUI zip file for your operating system
- Unzip the file and double click the application (Figure 5). The main window should appear (Figure 6). If you have an issue with the GUI opening automatically, troubleshooting steps are listed below under “Troubleshooting” and shown in Figures 30-34
Note
The code executable is under “LNP Axis/dist/LNP Axis/LNP Axis.exe” (Figure 5, pink arrow)
Figure 5: Appearance of executable file to double-click to run (pink arrow) EXE within dist folder
- First, click the blue “Browse” button (Figure 6, yellow arrow) on the main menu and navigate to the folder containing the results batch file from step 1D. Then, select the “Choose” button in Figure 7.
Figure 6: Main Window of the program. To browse through folders, click “Browse” (yellow arrow). Check/un-check Cargo and Ligand as per your experiment (pink arrow)
Figure 7: Browse through folders: Navigate to the folder with the results file and select “Choose” (pink arrow)
- Then, check or un-check Ligand and Cargo boxes as per your experimental setup (Figure 6, pink arrow). Then click the green “Go” button. At any time, click the red “Cancel” button or exit out of the app to cancel this run.
- The next window (“Experiment Details”) will appear (Figure 8) showing a row of each lane found in the results file chosen. This section is quite modifiable and user-defined (Figure 8, yellow arrows). The “Sample Name” will determine how the plots are generated: each Lane with the same Sample Name will be combined. Next, replace the “Chip #” (which stands for Chip number) of 1 with the Chip ID for each lane. This is optional but will be useful if you’d like to color any data by chip number.
Figure 8: Experiment Details window
Figure 9: The Sample Name column and Chip # column are just placeholders: please input your custom names and chip #s and click Go to run. This is an example of what the sheet looks like with Chip #s filled out
- If the titles listed under “Lane” are adequate, check the box “Keep Lane Names as Sample Names”, which will automatically copy the Lane names and you can leave this column blank (Figure 9, blue arrow).
- There is a checkbox under the table entitled “Show Graphs?” (Figure 9, pink arrow). You may uncheck this box if you don’t want the auto-generated plots to appear as pop-up windows.
Note
All plots will be always saved automatically in the same folder as the results file.
- When you are finished, click the green “Go” button (Figure 9).
Auto-Generated Plots
Cluster Count Swarm Plot (Figure 10):
- The first pop-up plot that is generated is a dot plot (swarm plot, similar to the plots in GraphPad Prism) where the X axis is separated by the Sample Names input in the Experiment Details window, and the dots are colored by Chip. The Y axis shows the total number of LNPs per FOV. This is generated for all experiment types.
Figure 10: Cluster Count Swarm Plot example separated by Sample Name and colored by Chip number
Diameter Histogram (with or without Cargo Positivity split) (Figures 11-12):
- The next pop-up plot that is generated is a histogram of LNP Diameter for each sample. If there is Cargo in the experiment, each sample will be split into Cargo-Positive (blue color) and Cargo-Negative (pink color). This is generated for all experiment types.
Figure 11: Diameter Histogram example in an experiment without Cargo
Figure 12: Diameter Histogram example in an experiment with Cargo
Scatter Plot showing Marker Abundance vs. Diameter (Figures 13-14):
- The next pop-up(s) generated depend on the experiment type. If Cargo is imaged: For each sample, one plot will be generated, showing each LNP as an individual data point on a Cargo Abundance (log) vs. Diameter (nm) axis, colored by Positivity. If Ligand is imaged, in each sample, one plot will be generated and saved locally as a png file, showing each LNP on a Ligand Abundance vs. Diameter (nm) axis, colored by Positivity as well. If both are imaged, both plots will save. The plot that appears will be for whichever is the last sample in the list. These plots will only be generated if Cargo and/or Ligand are selected in the first Window.
Figure 13: Scatter Plot showing Cargo Abundance vs. Diameter example
Figure 14: Scatter Plot showing Ligand Abundance vs. Diameter example
Cargo Positivity Swarm Plot (Figure 15):
- The next pop-up is a dot plot where the X axis is separated by the Sample Names and the dots are colored by chip. The Y axis shows the percentage of Cargo-Positive LNPs in your sample. This plot will only generate if Cargo is imaged.
Figure 15: Cargo Positivity Swarm Plot example
Ligand Positivity Swarm Plot (Figure 16):
- The next pop-up is a dot plot where the X axis is separated by the Sample Names and the dots are colored by chip. The Y axis shows the percentage of Ligand-Positive LNPs in your sample. This plot will only generate if Ligand is imaged.
Figure 16: Ligand Positivity Swarm Plot example
Cargo Abundance Swarm Plot (Figure 17):
- The next pop-up is a dot plot where the X axis is separated by the Sample Names and the dots are colored by chip. The Y axis shows the abundance (~intensity, log) of Cargo-Positive LNPs This plot will only generate if Cargo is imaged.
Figure 17: Cargo Abundance Swarm Plot example
Custom Plots: Joint Scatterplot with Side Histograms
- As the auto-generated plots pop up (or not, if you unchecked “Show Graphs?” earlier), another window appears, titled “Scatter Plot Generator” (Figure 18). This window generates X number of plots for X number of Samples as identified earlier (“Sample Name”). Every other aspect of the plots are customizable based on the menu items.
Figure 18: Scatter Plot Generator Window
- These plots are generated on a per-LNP basis and do not have means, standard deviations, etc.
- “X Axis Statistic” is the statistic that will be plotted on the X axis: in the example plot in Figure 19, it is “Number of localizations” (i.e., number of locs per LNP). See Table 2 for all of the X-Axis options.
- “Split Statistic” is the optional statistic that will color the points. For example, in Figure 19, the split_Stat is “Chip #”, coloring each LNP by Chip. Another example could be Overall Positivity, in which LNPs will be colored based on their combinatorial positivity group (Only an option if both Ligand and Cargo are checked: Four groups – PanLNP only, PanLNP + Cargo, PanLNP + Ligand, and PanLNP + Cargo + Ligand). See all options in Table 3.
Note
Split statistic: Please note you must select one option in order to generate a plot. If the choice is left blank, no plots will appear.
- Select “None” for split_Stat if you want all LNPs to be one color
- “yaxis_Stat” is the statistic that will be plotted on the Y axis: these options are the same as the X axis in Table 2
- If you do not already have an idea of what the data is going to look like, or just want to auto-scale the axes, you may check the “Auto-Scale” checkbox. Otherwise, you can set the axis minimums and maximums, as well as plot transparency, in the rest of the window. See Figure 19 for a filled out window, and Figure 20 for the example plot generated from these settings. These plots will save in the same folder as the results file, and you may use this window to make as many as you’d like.
- Once you are ready, click the “Plot” button at the bottom of the window. One of the generated plots will pop up: If you are unhappy with the plot, go back to the scatter plot window and change any of the settings.
Note
If you want to skip ahead to a different plot type, click the “Skip” button.
Figure 19: Example filled-out scatter plot window
Figure 20: Scatter plot generated from Figure 19
Custom Plot: Violin Plots
- After clicking either “Skip” in the Scatter Plot Generator window, a new window pops up titled “Violin Plot Generator” (Figure 21). This window generates one violin plot for the chosen statistic (Diameter (nm)) separated by Sample Name and optionally colored by the chosen Split Statistic.
Figure 21: Violin Plot Generator Window
- “Plotting Statistic” is the statistic that will be plotted along the X axis: in Figure 22, it is Diameter (nm). The options are the same as in Table 2.
- There is an option to color based on a split_Stat (options in Table 3).
- Alternatively, you can set the split_Stat to None (Figure 22) which will color the violin plots by sample name (Figure 23).
- You may also plot these data on a log scale – just check the “Log Scale?” checkbox below the “Split Statistic” dropdown menu.
- Once you are ready, click the “Plot” button at the bottom of the window. If you want to skip ahead to a different plot type, click the “Skip” button. One of the generated plots will pop up: If you are unhappy with the plot, go back to the violin plot window and change any of the settings.
Figure 22: Example filled-out violin plot window
Figure 23: Result from Figure 22
Custom Plot: Histograms
- After clicking either “Skip” in the Violin Plot Generator window, a new window pops up titled “Histogram Generator” (Figure 24). This window generates one histogram for the chosen statistic (Plotting Stat) separated by Sample Name and optionally colored by Split Statistic (Tables 2-3).
Figure 24: Histogram Generator Window
- “Plotting Statistic” is the statistic that will be plotted along the X axis: In Figure 25, the example is Circularity”. The options are the same as in Table 2.
- There is an option to plot histograms using Counts or Percentage Stat Type (Figure 25).
- There is an option to color based on a Split Statistic (options in Table 3). In Figure 27, the example is “Chip #”.
- If you do not already have an idea of what the data is going to look like, or just want to auto-scale the axes, you may check the “Auto-Scale” checkbox. Otherwise, you can set the axis minimums and maximums, as well as plot transparency, in the rest of the window. See Figures 25 and 27 for filled out windows, and Figures 26 and 28 for the example plot generated from these settings. These plots will save in the same folder as the results file, and you may use this window to make as many as you’d like
Figure 25: Example filled-out histogram window
Figure 26: Output from Figure 25
- You can also adjust the bin size (bin_size) – this value is not relevant for data plotted on log scaled axes. For example ranges and suggested starting bin sizes, see Table 4. (If you choose a bin size that is too large for the data, e.g. a bin size of 5 for circularity, the histogram will not generate).
- You can adjust the transparency of your plots: 0 is transparent, 1 is fully opaque.
Figure 27: Another example filled-out histogram window
Figure 28: Output from Figure 27
Table 1: Auto-Generated Plots
Plotting Statistic | PanLNP Only | +Cargo | +Ligand | +Cargo +Ligand |
---|---|---|---|---|
Cluster Counts by Sample | ✓ | ✓ | ✓ | ✓ |
Diameter Histogram | ✓ | ✓ | ✓ | ✓ |
Cargo abundance (log) vs. Diameter | ✓ | ✓ | ||
Ligand abundance vs. Diameter | ✓ | |||
Cargo positivity by FOV | ✓ | ✓ | ||
Ligand positivity by FOV | ✓ | |||
Cargo abundance (log) by FOV | ✓ | ✓ |
Table 2: Axis Statistics for Scatter Plot, Violin Plot, and Histogram Generators
Plotting Statistic | PanLNP Only | +Cargo | +Ligand | +Cargo +Ligand |
---|---|---|---|---|
Shape Descriptors (Skew, Circularity, Area, Discretized Area, Diameter, Length, Radius of Gyration) | ✓ | ✓ | ✓ | ✓ |
Number of Localizations | ✓ | ✓ | ✓ | ✓ |
PanLNP Abundance (Counts) | ✓ | ✓ | ✓ | ✓ |
Cargo Abundance (DL, photons) | ✓ | |||
Cargo Abundance - log | ✓ | ✓ | ||
Ligand Abundance (Counts) | ✓ | ✓ |
Table 3: Split Statistic options for Scatter Plot, Violin Plot, and Histogram Generators
Split Statistic | PanLNP Only | +Cargo | +Ligand | +Cargo +Ligand |
---|---|---|---|---|
None | ✓ | ✓ | ✓ | ✓ |
Chip # | ✓ | ✓ | ✓ | ✓ |
FOV | ✓ | ✓ | ✓ | ✓ |
Cargo Positivity | ✓ | |||
Ligand Positivity | ✓ | ✓ | ||
Overall Positivity | ✓ |
Table 4: Suggested Starting Ranges and Bin Sizes for Histograms
Plotting Statistic | Usual Range | Suggested Bin Size |
---|---|---|
Number of localizations | 0-4000 | 10-50 |
Skew / Circularity | 1-3 / 0-1 | 0.01-0.05 |
Density | 0-0.5 | 0.005-0.01 |
Cargo PositivityArea / Discretized Area | 0-1000000 | 1000+ |
Diameter / Length / Radius of Gyration | 0-1000 | 5-10 |
Counts in Channel X | 0-2000 | 1-10 |
Cargo abundance (log) | 0-5 | 0.1-0.5 |
An excel sheet is generated with summary statistics, with means, standard deviations, and medians. Tables 5 and 6 describe which statistics are generated.
Table 5: Summary Statistics Generated: Key Results Tab
Tab | PanLNP Only | +Cargo | +Ligand | +Cargo +Ligand |
---|---|---|---|---|
Particle Diameter +/- SD -Separated also by positivity if Cargo or Ligand selected | ✓ | ✓ | ✓ | ✓ |
PEG Locs/LNP +/- SD | ✓ | ✓ | ✓ | ✓ |
Clusters/FOV +/- SD | ✓ | ✓ | ✓ | ✓ |
Ligand Positivity (%) +/- SD | ✓ | ✓ | ||
Cargo Positivity (%) +/- SD | ✓ | ✓ | ||
Cargo + Ligand Double Positivity (%) +/- SD | ✓ | |||
Ligand Locs/LNP +/- SD | ✓ | ✓ |
Table 6: Remaining Tabs Generated in Summary Statistics File
Sheet | PanLNP Only | +Cargo | +Ligand | +Cargo +Ligand |
---|---|---|---|---|
Shape Stats by Sample (Mean, St Dev, Median) | ✓ | ✓ | ✓ | ✓ |
Positivity Stats by Sample (Mean, St Dev, Median) | ✓ | ✓ | ✓ | ✓ |
Shape Stats by Sample and Positivity (Mean, St Dev, Median) | ✓ | ✓ | ✓ |
Figure 29: Summary Stats Sheets
Troubleshooting
GUI Installation Troubleshooting
- Many companies have protections in place to prevent viruses from being downloaded and run on company computers.
- On a MacBook, the error message that pops up might appear like the one in Figure 30. In this case, navigate to the privacy & security settings in the MacBook and navigate to Developer Tools.
- Then, click the “+” button and navigate to the .exe file and add it to the list (Figure 31). Then attempt using the GUI again.
- One more error message could pop up that looks like the one before. If so, navigate back to the privacy & security settings and scroll down to the bottom where it says “EVP2 Axis was blocked to protect your Mac.”. Click “Open Anyway” next to it (Figure 32).
- On a Windows computer, an error message might pop up appearing like the one in Figure 33. Click “More information”, then “Run Anyway” (Figure 34).
Note
- For ease of use, you can add a shortcut to the .exe to your desktop. On a Mac, right click the .exe and click “Make Alias”, then copy the Alias to your Desktop. On a Windows computer , right click the .exe and click “Make Shortcut”, then copy to the Desktop.
Figure 30: Error message upon initially opening a GUI on a MacBook with virus protection
- In the custom plots pop-up: Select one option under the “Split” choice in order to generate a plot. If the choice is left blank, no plots will appear.
- The pop-up plots might be small, depending on the screen size of your computer: please refer to the plots saved locally.
Figure 31: Adding the LNP Axis exe to Developer Tools allows the GUI to run
Figure 32: One further step may be required under Privacy & Security Settings upon opening LNP Axis after adding to the Developer Tools: click Open Anyway
Figure 33: Example error message from a Windows machine. Click “More info”
Figure 34: After clicking “More info”, click “Run Anyway”