---

editor_options: 
  markdown: 
    wrap: 72
---
# Olink Analyze 5.0.2

## Bug Fix
- Fixed spelling and URLs to be canonical form (@kathy-nevola, #769, #770)

# Olink Analyze 5.0.1

## Minor Changes

- New QC flags for assays and samples have been added to improve automated data handling (@klevdiamanti, #735)
- Cheat sheet link has been added to the overview vignette (@klevdiamanti, #747)
- Flowchart image has been added to the overview vignette to explain how check_npx() and clean_npx() fit into the data preprocessing workflow (@klevdiamanti, #748)
- General updates to overview vignette (@klevdiamanti, #750, #760)
- If covariate is specified when using model formula in olink_lmer() and olink_lmer_posthoc(), the covariates will not be considered when performing multiple testing correction adjustment (@dtopouza, #754)
- Version checks and warnings have been added when performing Kruskal test and posthoc to address bug in package dependency (@klevdiamanti, #763)
- Links to vignettes from Olink Analyze Vignettes package have been added to the overview vignette (@kathy-nevola, #764)
- Kristian Hoden's role has been changed from contributor to author (@kathy-nevola, #766)


## Bug Fixes

- Significance lines no longer overlap when generating boxplots (@kristianHoden #732)
- Turquoise spelling fixed in olink color palette (@kristianHoden #736)
- Error message when samples have more than one color assigned to them has been fixed (@kristianHoden #742)
- olink_dist_plot() will now check if color_g column is the QC column in the dataset (@KangD-dev #745)
- Error message related to imputed assays when generating PCA and UMAP plots has been rephrased (@dtopouza, #749)
- Concatenated Olink IDs are now recognized as Olink IDs (@klevdiamanti, #751)
- Error message updated in olink_bridgeability_plot()  (@klevdiamanti, #752)
- Project Column in example data is now fully populated (@klevdiamanti, #753)
- Annotation color handling has been improved in olink_heatmap (@dtopouza, #761)

# Olink Analyze 5.0.0

## Major Changes

### Complete rewrite of `read_npx()` (@klevdiamanti)

- `read_npx()` (and its alias `read_NPX()`) has been fully rewritten with improved architecture, splitting the monolithic reader into dedicated sub-readers for each file format: Excel, delimited (CSV/TSV), Parquet, ZIP archives, and wide-format qPCR exports
- New parameters have been added for greater control over data import: `out_df` (output format), `long_format`, `olink_platform`, `data_type`, `.ignore_files`, `quiet`, and `legacy`.
- Automatic detection of file format, Olink platform, and data type.

### New `check_npx()` function (@klevdiamanti, @MasoumehSheikhi & @KangD-dev)

- A new exported function `check_npx()` validates NPX data for correctness and completeness before downstream analysis.
- Checks include: column name standardization, OlinkID validity, assays with all-NA values, duplicate sample identifiers, column data types, assay QC warnings, UniProt mapping consistency, and DarID validity.
- Returns a structured list with detailed diagnostics that can be used as input to `clean_npx()`.
- The list check log output from `check_npx()` is now used in all the functions in downstream analysis to allow for alternative column names and provide consistent and informative warnings and errors when data issues are detected.

### New `clean_npx()` function (@klevdiamanti & @KangD-dev)

- A new exported function `clean_npx()` applies an automated quality-control cleaning pipeline to remove unsuitable data records.
- Cleaning steps include: removing assays with invalid OlinkIDs, removing assays with all-NA quantification values, removing duplicate samples, removing external control samples, removing QC-failing samples, removing internal control assays, removing assays with QC warnings, correcting column data types, and resolving non-unique UniProt mappings.
- Each cleaning step can be individually toggled on or off.

### Vignettes moved to OlinkAnalyzeVignettes (@klevdiamanti & @dtopouza)

- All vignettes except from the main guide-Vignette (LOD, outlier exclusion, bridging introduction, cross-product bridging, and plate randomizer) have been moved to the sibling package OlinkAnalyzeVignettes that will be online soon, to reduce package size and installation time.

### Function naming standardization (@klevdiamanti, @kathy-nevola, @KangD-dev, @dtopouza, @kristynchin-olink, @amrita-kar & @kristianHoden)

- Some functions, such as `read_NPX()`, have been renamed to their equivalent snake case `read_npx()` to be more intuitive and consistent with R naming conventions. Previous function names are retained as aliases for backward compatibility.

## Minor Changes (@klevdiamanti, @kathy-nevola, @KangD-dev, @dtopouza, @kristynchin-olink, @amrita-kar & @kristianHoden)

- `arrow`, `duckdb`, and `dbplyr` are now imported for enhanced Parquet file support and efficient data processing.
- `cli` is now used for most user-facing messages, warnings, and error reporting
- The `magrittr` pipe (`%>%`) has been replaced by the native R pipe (`|>`). throughout the package; `magrittr` is no longer a dependency.
- A new `olink_osi_dist_plot()` function has been added for visualizing Olink Sample Index (OSI) values distributions.
- The functions `olink_qc_plot()`, `olink_pca_plot()` and `olink_umap_plot()` now have full support for OSI values.
- Internal input validation has been improved with a suite of type-checking helper functions.
- Test infrastructure has been expanded with parallel test execution enabled via `testthat` edition 3, and test coverage extended to \>90%.
- Several dependencies have been moved from Imports to Suggests (`broom`, `car`, `emmeans`, `ggpubr`, `ggrepel`, `readxl`, `rstatix`, `FSA`) to reduce the package's installation footprint

# Olink Analyze 4.5.0

## Minor Changes

- Added section to LOD vignette about how to handle LOD in bridged data (#656, @KangD-dev)
- Support for NPX files from NPX Map 2.0 was added to read_NPX (#660, @kathy-nevola)
- Continuous color scale was added to PCA for graphing Olink Sample Index (OSI) continuous columns (#659, @amrita-kar)
- Function for formatting bridged data was updated to work with other types of normalization (#643, @dtopouza, #644, @klevdiamanti)

## Bug Fixes

- olink_ordinalRegression changed from type = 3 to type = "marginal" to work with newest version of ordinal package (#657, @kathy-nevola)
- Regex fixed for DarID detection in olink_lod and read_NPX (#658, @kathy-nevola)

# Olink Analyze 4.4.0

## Minor Changes

- Added support for bridging Olink Explore HT and Olink Reveal (#645, #636, #639, @boxizhang, @amrita-kar, @kathy-nevola, @dtopouza, @klev-diamanti)
- Add warning message for specific DarID-SW export combinations that require re-export (#635, @kathy-nevola)
- Added instructions for how to add LOD data to cross product bridging (#642, @KangD-dev)

## Bug Fixes

- Fix wording of bridgeable assays in cross-product bridging tutorial (#632, #630, @kathy-nevola)
- Fixed warning message in case of duplicate samples so that samples with control assays did not count as duplicated samples (#634, @amrita-kar)
- QS Normalization will now exclude bridge samples with NA with warning, preventing error (#640, @klev-diamanti)

# Olink Analyze 4.3.2

## Bug Fixes

- Tests for `olink_wilcox()` are now arranged by Assay name to handle ties (#616, @boxizhang)
- The `extrafont` package has been removed as a dependency as it is archived on CRAN (#619, @klevdiamanti)
- Regex in `olink_lmer()` has been improved to better capture the warning message (#618, @klevdiamanti)
- Handling for when `AssayQC` is not present in both data sets for normalization (#620, @klevdiamanti)

# Olink Analyze 4.3.1

## Bug Fixes

- `olink_lod()` call to `checkNPX()` now correctly uses data instead of df, allowing the function to run without error (#579, @klevdiamanti)
- broken link in bridging tutorial has been fixed (#597, @amrita-kar)
- minor edits have been made to the bridging tutorial and `olink_bridgeselector()` to clarify how to set `sampleMissingFreq` argument for different products and biological contexts (#597, @amrita-kar, #596, @kathy-nevola)
- minor edits have been made to the bridging tutorial to clarify that Ct and count data is not normalized during bridging and to define a batch (#597, @amrita-kar)

# Olink Analyze 4.3.0

## Minor Changes

- Recommended Olink Reveal bridge sample numbers have been added to the bridging tutorial (#523, @kathy-nevola)
- Missing meta-data in parquet files now result in a warning instead of an error (#540, @OlaCaster)
- Pathway enrichment updated to support msigdbr v10.0 (#542, @klevdiamanti)
- Support for PanelVersion and LODNPX was added (#551, #552, #559, @klevdiamanti, @MasoumehSheikhi)
- Support for new version of warning message when converting LME results to tidy format has been added (#565, @kathy-nevola)
- Improvements made to user interface for olink_bridgeability_plot() (#525, #522, @klevdiamanti)

## Bug Fixes

- Fixed bug causing missing significance stars in olink_boxplot (#536, @boxizhang)
- Files with multiple quantification files will now select the quantification method to use (#563, @kristynchin-olink, @amrita-kar)
- OlinkIDs with multiple UniProt IDs across different panel versions will now be harmonized to one UniProt ID to allow for assays to be analyzed together (#564, @kathy-nevola)

# Olink Analyze 4.2.0

## Minor Changes

- Cross-product bridging is now supported for bridging Olink Explore 3072 to Olink Reveal (#509, @kathy-nevola)
- Standard data exports from NPX Signature 2.0 are now supported (#511, @KangD-dev)
- Kang Dong and Stephen Pollo have been added as authors (#514, @kathy-nevola)
- MaxLOD will be recalculated after bridging to reflect the MaxLOD across all projects (#505, @klevdiamanti)

## Bug Fixes

- A warning message will be displayed when fewer than the recommended number of bridging samples are used in cross product bridging (#507, @klevdiamanti)
- If count data is not provided in cross-product bridging, an error message will occur (#510, @kristynchin-olink)
- For cross-product bridging, if the sample type and assay warning columns do not have the same column naming (ex: SampleType and Sample_Type), both columns will be included in the output. (#515, @spollo-olprot, @MasoumehSheikh)

# Olink Analyze 4.1.1

## Minor Changes

- Images were decreased in dimension to meet CRAN Size requirements (#500, @kathy-nevola)

## Bug Fixes

- Dataframe name was corrected in Olink Explore 3072 to Olink Explore HT bridging tutorial Downstream Analysis section. (#500, @kathy-nevola)

# Olink Analyze 4.1.0

## Minor Changes

- Functionality has been added to read_NPX, olink_lod, and olink_plate_randomizer to support additional data types (#487, @kathy-nevola)
- A new function has been added to visualize the criteria used to establish the recommended bridging method for an assay in cross-product bridging (#468, @amrita-kar)
- A new function has been added to simplify data wrangling on bridged data after cross-product bridging (#472, @dtopouza)
- The tutorial on Olink Explore 3072 to Explore HT bridging has been updated to reflect the new functions (#473, @kristynchin-olink)
- Documentation for plate randomization when keeping samples from the same studies together has been improved in function documentation and the Plate Randomization tutorial (#483, @kathy-nevola)
- Contact us and legal disclaimer information has been updated and added to all tutorials (#490, @kathy-nevola)
- A Research Use Only (RUO) message is now printed when reading parquet files (#487, @kathy-nevola)
- References to NPX Explore have been generalized to Olink Software in tutorials (#490, @kathy-nevola)
- The overview tutorial has been updated and streamlined (#473, @kristynchin-olink)

## Bug Fixes

- Assay CTRL is no longer characterized as a control assay (#484, @dtopouza)
- An error that had previously limited Explore HT to Explore HT bridging has been resolved (#491, @klevdiamanti)
- The minimum number of bridge samples for QS normalization has been corrected to 40 samples.
- The Block column is now transformed into a character value to ensure consistency across products.
- An error that had previously impacted paired Wilcoxon tests has been resolved. (#485, @boxizhang)

# Olink Analyze 4.0.2

## Bug Fixes

- Product is now identified by column name for cross-product normalization, rather than OlinkIDs. This allows for non-overlapping assays to be present in input files. (#469, @kathy-nevola)
- Added many-to-many mapping in joining Explore HT data to the mapping file to support correlation assays (#469, @kathy-nevola)
- Corrected spelling in error message. (#469, @kathy-nevola)
- Fixed typo in NotBridgeable category name in tutorial (#471, @dtopouza)

# Olink Analyze 4.0.1

## Minor Changes

- larger rds files used for unit tests have been excluded from build to abide by CRAN size limitations (#462, @kathy-nevola)

# Olink Analyze 4.0.0

## Major Changes

- olink_normalization can now be used for bridging Explore 3072 data to Explore HT data (#453, #452, #439, #449, #447,#446, #441, #440, #434, #422, #436, #435 @klevdiamanti, @kathy-nevola, @kristynchin-olink, @dtopouza, @amrita-kar, @MasoumehSheikh)
- olink_normalization has undergone major changes to improve speed, reproducibility, and extending functionality (#418, @klevdiamanti, @kristynchin-olink, @MasoumehSheikh)

## Minor Changes

- New tutorial has been added to explain and support Explore 3072 to Explore HT bridging (#448, #428, #427, #426, #425, #424, #423, @kristynchin-olink, @boxizhang, @dtopouza, @kathy-nevola, @MasoumehSheikh)
- Update FAQ links in tutorials with queries links (#451, @kathy-nevola)
- Decrease package size on Mac and Linux (#445, @kathy-nevola)
- Removed redundant information from overview vignette (#458, @kathy-nevola)

## Bug Fixes

- Add support back for files with quotes to read_NPX (#431 @kathy-nevola)

# Olink Analyze 3.9.1

## Bug Fix

- Extra set of parentheses removed from vignette (#430, @kathy-nevola)

# Olink Analyze 3.9.0

## Minor Changes

- Explore HT recommended bridging samples have been added to Introduction to Bridging tutorial (#409, @kathy-nevola)
- Support for CSVs with SampleQC column was added to read_NPX (#406, @kathy-nevola)
- Support for Olink Analyze Export parquets was added to read_NPX (#408, @kathy-nevola)
- Quantitative value csvs will now give a warning about limited support for Quant data (#406, @kathy-nevola)
- Instructions for importing multiple NPX files has been added to the overview tutorial (#403, @dtopouza)
- Additional background information was added to the LOD tutorial to clarify how LOD is calculated from counts (#404, @kathy-nevola)
- LOD can now be calculated using fixed LOD, negative controls, or both methods (#390, @kathy-nevola)
- An error message will now appear when running anova and control assays are present (#416, @dtopouza)
- Danai Topouza's role has been changed from contributor to author (#415, @kathy-nevola)

## Bug Fixes

- URLs in tutorials will now direct to updated olink.com locations (#402, @kathy-nevola)
- Instructions to export parquet files with LOD have been updated (#408, @kathy-nevola)
- removed scale_name argument when ggplot2 3.5+ is installed (#421, @kathy-nevola)

# Olink Analyze 3.8.2

## Bug Fixes

- update to URL hyperlink in LOD tutorial to include https
- data with Plate_LQL and PlateLQL columns in long format will now be supported (#392, @klevdiamanti)

# Olink Analyze 3.8.1

## Bug Fixes

- update to outdated URL in LOD tutorial

# Olink Analyze 3.8.1

## Minor Changes

- Function support for calculating LOD for Explore data (#355, @kathy-nevola, @klevdiamanti, @leiliuC)
- Tutorial and documentation for calculating LOD for Explore data (#364, @MasoumehSheikh, @kristynchin-olink, #388, @kathy-nevola, @amrita-kar)
- Addition of Danai Topouza as contributor and Kristyn Chin as author (previously contributor) (#365, @kathy-nevola)

## Bug Fixes

- Removed outdated reference to NPX Manager (#354, @dtopouza)
- Removed mention of Welch's t-test in Mann Whitney documentation (#354, @dtopouza)
- Assays that include apostrophes will now be read in correctly from long format csvs (#381, @kathy-nevola)

# Olink Analyze 3.7.0

## Minor Changes

- Support for Explore 3072 data in parquet form added (#327, @kathy-nevola, @klevdiamanti)
- Support for pathway enrichment when LOD is not present added (#329, @kathy-nevola)
- Clarification to remove controls when selecting bridging samples added in bridging tutorial (#330, @kathy-nevola)
- Addition of Kristyn Chin as contributor (#331, @kathy-nevola)
- Addition of URLs and Contact information in Description (#331, @kathy-nevola)

# Olink Analyze 3.6.2

## Bug Fixes

- Packages in Suggest field are now called conditionally in vignettes, tests, and examples. (#319, @kathy-nevola)
- read_NPX will now work with Target 96 data that does not contain "Target 96" in the panel name (#320, @kathy-nevola)
- olink_lmer will no longer require the presence of an Index column in the data (#321, @kathy-nevola)
- corrected examples for subset normalization (#312 @kathy-nevola)
- added additional information on example data to outlier vignette (#313 @kathy-nevola)
- clarified documentation for longitudinal randomization (#314 @kathy-nevola)
- corrected warning message for olink_ordinalRegression (#296 @boxizhang)

# Olink Analyze 3.6.1

## Minor Changes

- Install package Matrix from source in CI. (#299 @klevdiamanti, @AskPascal)

# Olink Analyze 3.6.0

## Minor Changes

- Plate LOD will be chosen over Max LOD when both are present (#288, @kathy-nevola)
- Data from NPX Signature 1.8+ is now supported by read_NPX when in long format csv (#293, @Orbmac, @kathy-nevola)
- olink_pca_plot will now be faster (#289, @MasoumehSheikh)

## Bug Fixes

- olink_normalization and related function will now compare normalization strategy by assay (#291, klevdiamanti)
- Excluded assays will not cause warnings in olink_normalization (#291, klevdiamanti)
- olink_pca_plot will now show the same label and text for point when SampleID is numeric (#289, @MasoumehSheikh)

# Olink Analyze 3.5.1

## Bug Fixes

- read_NPX will now support additional formats of parquet files

# Olink Analyze 3.5.0

## Minor Changes

- read_NPX will now detect and import Flex excel files in wide format (@kathy-nevola, #234)
- Add example of bridge samples selector and minor updates for clarity to Intro to bridging vignette (@Orbmac, @kathy-nevola, #260)
- Increase plate randomizer unit test coverage (@amrita-kar, #264)
- Add support for parquet files in read_NPX (@kathy-nevola, #265, @klevdiamanti, #270)
- Add support for alternative forms of LOD including Max and Plate LOD (@kathy-nevola, #267)
- Add support for SampleQC column (alternative to QC_Warning) (@kathy-nevola, #267, @MasoumehSheikhi, @268)
- Add support for plate randomization with variable control numbers (@kathy-nevola, @AskPascal, #269)
- Controls can now be randomized across the plate with olink_plate_randomizer (@kathy-nevola, @AskPascal, #269)
- Minor updates for clarity to Plate Randomization vignette (@kathy-nevola, @AskPascal, #269)
- Change formatting for long format Target CSVs to match excel (@kathy-nevola, #273)

## Bug Fixes

- Project name is now consistent and generic throughout bridging vignette (@kathy-nevola, #257)
- Estimate is now included in output when Paired Mann-Whitney U test is performed (@boxizhang, #259)

# Olink Analyze 3.4.1

## Bug Fixes

- Skip PCA snapshot tests in R version \> 4.2.3 (@AskPascal, #254)
- Bridge selector will now return all samples when requesting max number of samples based on missing frequency (@klevdiamanti, #252)
- Fixed unit tests to expect NA as logical instead of "NA" as character (@MasoumehSheikhi, #250)

# Olink Analyze 3.4.0

## Minor Changes

- User can now specify label for proteins in olink_heatmap_plot() (@simfor, #228)
- Updates to unit test and CI based on dependency changes (@AskPascal, #231, #236, #240)
- Addition of normalization functions to simplify bridge, subset, and multi-batch normalization (@klevdiamanti, #201)
- Introduction to bridging vignette added (@leiliuC, @kathy-nevola, #174)
- Plate Randomization vignette added (@boxizhang, #241)
- Outlier Exclusion vignette added (@kathy-nevola, #229)
- Added Lei Conze as author (@kathy-nevola, #246)
- Addition of citation (@kathy-nevola, #246)

## Bug Fixes

- Update to olink_wilcox documentation and UniProt description in documentation has been corrected (@boxizhang, #235)

# Olink Analyze 3.3.1

## Bug Fixes

- olink_pathway_enrichment now prints a message when there are non matching names when using method = "ORA" (@MasoumehSheikhi, #222)
- olink_pca_plot will now generate PCA when data is missing from the first OlinkID (@kathy-nevola, #221)
- read_NPX now supports csv files with Sample_Type column but not ExploreVersion column (@klevdiamanti, #220)
- extra columns in input file will no longer result in a warning message (@kathy-nevola, #223)

# Olink Analyze 3.3.0

## Minor Changes

- Support for additional versions of Olink data - Read_NPX now supports a wider range of Olink data types (@AskPascal, @kathy-nevola, #207, #208, #211, #216)
- Automatic support for normalizing 2 datasets with different column configurations - olink_normalization will now automatically add missing columns to datasets (filled NA) to allow data with different configurations to be more easily normalized together (@kathy-nevola, #212)
- Automatic checking that datasets used the same normalization method before bridging - Datasets that were normalized with different methods (different values in normalization column) will now warn before performing normalization (@klevdiamanti, #210)

## Bug Fixes

- Data with '\#' in SampleID column is now supported (@AskPascal, #208)
- PCA can now be generated when indices are not consistent across SampleIDs (@amrita-kar, #206)

# Olink Analyze 3.2.2

## Bug Fixes

- remove www. from links in vignette to prevent rerouting of URL (@kathy-nevola, #188)
- update set_plot_theme() to use linewidth instead of size per ggplot2 3.4

# Olink Analyze 3.2.1

## Bug Fixes

- Change in unit test to write to temporary directory (@AskPascal, #181)

# Olink Analyze 3.2.0

## Minor Changes

- Addition of functions to perform Uniform Manifold Approximation and Projection (UMAP) dimensional reduction and plots (@simfor, #139)
- Add additional install methods to Readme (@AskPascal, #153)
- ggrepel can now be disabled when outlier lines are present in the PCA plot (@klevdiamanti, #158)
- Long running unit tests are now skipped on CRAN (@AskPascal, #163)
- Internal functions were added to read_NPX to support future development (@klevdiamanti, #167)
- CI workflows were refactored to utilize external actions (@AskPascal, #169)
- Read_NPX will now warn the user when NAs are detected in the NPX column (@AskPascal, #170)
- Friedman test interface and documentation was updated to be more intuitive (@boxizhang, #171)

## Bug fixes

- Pathway enrichment p-values are now in the correct order when plotting (@klevdiamanti, #164)
- PCAs now behave the same with any locale (@AskPascal, #173)
- Read_NPX now accepts either Panel_Version or Panel_Lot_Nr in input files (@klevdiamanti, #156)
- Assays that only have NPX = NA will now be excluded from all analyses and figures (@simfor, @kathy-nevola, @AskPascal, #176)
- Refactor code to use tidyselect::all_of() in recommended way (@AskPascal, #177)
- vdiffr based unit tests were reactivated (@AskPascal, #172)

# Olink Analyze 3.1.0

## Minor Changes

- Non-parametric functions are now available (@boxizhang, #114, #142)
- Updated installation instructions to reflect CRAN acceptance (@kathy-nevola, #107)
- Zipped files from MyData can now be used as input for read_NPX (@klevdiamanti, #115)
- LME and ANOVA formulas can now be customized (@jrguess, #120)
- Pathway enrichment functions and visualizations are now available (@kathy-nevola, #125)
- Heatmaps can now be generated (@Orbmac, \$127)
- olink_boxplot function now has significance bars and stars (@boxizhang, #132)
- PCA preprocessing was moved to internal function (@simfor, #133)
- olink_plate_randomizer will now return a warning if there are duplicate SampleIDs or if SubjectColumn is missing (@kristianHoden, #146)
- olink_plate_randomizer can now keep studies together on plates (@kristianHoden, #146)
- Added Masoumeh Sheikhi and Boxi Zhang as authors
- Added Kristian Hodén as contributor

## Bug Fixes

- olink_pca_plot by Panel will now show correct colors when a variable is missing (@MasoumehSheikhi, Issue #117, Commit 0f2f157)
- olink_ttest will now return a warning message if an assay has less than 2 datapoints in a group. (@marisand, #110)
- LMER class is now checked using inherits (@MasoumehSheikhi, #134)
- License was corrected to AGPL-3 (@Orbmac, #138)
- Correct output type of olink_dist_plot in vignette to ggplot object (@kathy-nevola, Issue #112, #141)
- Previously called "intensity normalization" has been clarified as a special type of subset normalization and an example has been added to the documentation and vignette (@Orbmac, #144)

# Olink Analyze 3.0.0

## Major Changes

- displayPlateDistributions and displayPlateLayout names were updated to olink_displayPlateDistributions and olink_displayPlateLayout (@simfor, #98)

## Minor Changes

- Update CI to Ubuntu 20.04 (@AskPascal, #97)
- olink_bridgeselector will now give an error if less than n (number of) bridge samples can be selected based on set sampleMissingFreq (@marisand, #100)
- update return value documentation for all functions to specify columns and class of output (@kathy-nevola, #102)
- replaced or removed cat/print with message/stop so messages printed to the console can be suppressed (@jrguess, #103)

## Bugfixes

- fixed spelling mistakes in documentation (@kathy-nevola, #92)
- updated DESCRIPTION to fit CRAN specification (@kathy-nevola, #94)
- change T/F to TRUE/FALSE for stability (@AskPascal, #96)
- updated documentation to olink_plate_randomizer, olink_displayPlateDistributions and olink_displayPlateLayout to link related functions and clarify olink_plate_randomizer documentation (@simfor, #98)
- fixed keywords in documentation (@kathy-nevola, #99)

# Olink Analyze 2.0.1

## Bug Fixes

- Remove hexagon from Readme (@kathy-nevola, #86)
- Replace OlinkAnalyze with Olink® Analyze (@kathy-nevola, #86)
- Add Ola Caster to author list
- Update documentation to change olinkR to Olink Analyze (@jrguess, #89)

# Olink Analyze 2.0.0

## Major Changes

- Package is in the process of being submitted to CRAN
- Added ability to prevent OlinkAnalyze from loading fonts and setting to themes (@OlaCaster, #73)
- Decreased the size of npx_data1 and npx_data2 to 2 panels instead of 12 (@kathy-nevola, #76)
- Updates to the olink_qc_plot and olink_pca_plot functions (@simfor, #78)

## BugFixes

- Moved NEWS.md to correct level (@kathy-nevola, #74)
- Added cran-comments.md file to document Notes for CRAN submission (@kathy-nevola, #74)
- Update Vignette to reflect new functionality (@kathy-nevola, #78)

# Olink Analyze 1.3.0

## Major Changes

- DESCRIPTION file updated to include all authors and maintainers (@kathy-nevola, #66)
- Unit testing was added (@marisand, @simfor, #65, #55, #47)
- Continuous Integration (CI) was added (@AskPascal, #57, #53, #40, #31)
- `read_NPX` now converts Panel Names to Sentence case except Roman Numerals (@kathy-nevola, #44)
- Output order of `olink_bridgeselector()` is now randomized (@marisand, #60)
- PlateSize argument was added to `displayPlateLayout()` and `olink_plate_randomizer` for T48 and T96. Hardcoded sizes have been removed. (@marisand, #47)
- Changed `olink_pal()` to have gray instead of light blue (@marisand, #22)

## Bug Fixes

- `set_plot_theme()` will now load Swedish Gothic Thin if available on all OS (@marisand, @AskPascal, #70, #39)
- Help documentation was updated to correct typos and clarify notation for ANOVA and LME models (@kathy-nevola, @marisand,@AskPascal #67, #33, #37)
- Fix `olink_dist_plot()` from showing multiple bars when sample has QC warning in some assays (@marisand, @AskPascal, #64)
- Fix `olink_qc_plot()` from showing multiple points/labels when sample has QC warning in some assays (@marisand, @AskPascal, #63)
- Panel names in npx_data1 and npx_data2 were fixed to match new `read_NPX()` formatting (@kathy-nevola, #62)
- `olink_bridgeselector()` QC warning filtering changed to match `olink_qc_plot()` and `olink_dist_plot()` (@marisand, @AskPascal, #61)
- global variables are now specified (@kathy-nevola, #45)
- Function documentation updated to remove notes on R CMD check (@kathy-nevola, #39)
- Fix summary casting "tukey" to "sidak" adjustment warning in `olink_anova_posthoc()` and `olink_lmer_posthoc()` functions (@marisand, #38)
- Update functions to import selectively (@kathy-nevola, @Orbmac, @AskPascal, @marisand, #21, #20, #19, #18, #15, #29)
- Fix guides size argument in `olink_pca_plot()` (#17) (@AskPascal, #24)
