read_byonic_byologic() and read_byonic_pglycoquant() now have a new logic to handle glycopeptides with multiple glycosites. A multisite parameter is added to control this. If multisite = "expand" (default), glycopeptides with multiple glycosites will be expanded into multiple rows, each with one glycosite. If multisite = "drop", multisite glycopeptides will be dropped (#11).read_byonic_byologic() and read_byonic_pglycoquant() could not handle glycopeptides with multiple glycosites correctly (#11).preset parameter to read_glyhunter(). This adds the support for reading glycomics data with sialic acid linkage specific methylamidation used in the unpublished Nature Protocols paper by Fu et al. (2026) (#8).read_glyhunter() (#9).read_glycan_finder() to import glycoproteomics results from Peaks GlycanFinder (#6).read_xxx() functions are now standardized using meaningful names (e.g., P13674-N259-Hex(4)HexNAc(4)dHex(3)NeuAc(1)) instead of generic IDs (e.g., GP1).read_pglyco3() now correctly converts "J" to "N" in the peptide column for pGlyco3 output.glycan_type parameter now supports "O-GalNAc", "O-GlcNAc", "O-Man", "O-Fuc", and "O-Glc". "O" is not a valid value anymore. This is to be in consistent with the update introduced in glyexp 0.10.2.read_strucgp() now has a 0/1 expression matrix, indicating whether each glycopeptide was identified in each sample.read_strucgp() now performs protein inference automatically to resolve protein ambiguity.read_strucgp() has been redesigned with a new API. It now returns an [glyexp::experiment()] object instead of a tibble, to be consistent with other read_xxx() functions. As StrucGP doesn't support quantification, the expression matrix is filled with NA values.read_strucgp() that glycan compositions with "NeuGc" could not be parsed.read_strucgp() that glycan structures with additional modifications (e.g. "+Ammonium(+17)") could not be parsed.read_strucgp() that sample information was not included in result tibble.glyexp 0.10.0.read_strucgp() to read results from StrucGP.read_glyco_decipher() to read results from Glyco-Decipher.read_byonic_byologic() and read_byonic_pglycoquant() do not drop glycopeptides with uncertain sites anymore.
Instead, they fill the "protein_site" column with NA for these glycopeptides.parse_structure parameter to read_pglyco3() and read_pglyco3_pglycoquant(). If FALSE (default), glycan structure strings are not parsed, and "glycan_structure" column will not be in the variable information tibble. This improves performance when structure-based analysis is not needed, and avoids implicitly implying that the structures given by pGlyco3 is accurate. Well, they are not.read_pglyco3() and read_pglyco3_pglycoquant() now correctly parse "pH" and "aH" monosaccharides in glycan compositions and glycan structures.This is a big update! In addition to several new workflows supported,
we redesign the API to make read_xxx() functions behave more consistently.
Now the read_xxx() functions will try to return experiments with similar variable information format.
To ensure this, some functions perform protein inference automatically to resolve protein ambiguity,
and some functions add a "gene" column by mapping protein accessions to gene symbols.
Besides, all read_xxx() functions now aggregate quantification from PSM to the glycopeptide level.
Detailed list:
read_pglyco3() to read results from pGlyco3 (with built-in quantification).read_byonic_byologic() to read results from Byonic with Byologic quantification.read_msfragger() to support multiple PSM files. No awkward manul post-processing is needed anymore.protein_inference_method parameter from read_pglyco3_pglycoquant().
The function now performs the "parsimony" protein inference algorithm.AnnotationDbi::mapIds() to convert protein IDs to gene symbols.clusterProfiler from Suggests.read_byonic_pglycoquant() now only perform gene symbol conversion if both clusterProfiler
and the specified OrgDb package (e.g., org.Hs.eg.db) are installed.
If not, the gene column is omitted and a message is shown.
This improves robustness in minimal or CI environments.clusterProfiler and org.Hs.eg.db are now listed under Suggests, not Imports.read_byonic_pglycoquant() for reading results from Byonic identification and pGlycoQuant quantification.read_msfragger() for reading results from MSFragger-Glyco.read_pglyco3_pglycoquant() now performs protein inference automatically to resolve protein ambiguity.
This means, the variable information tibble now contains "protein", "gene", and "protein_site" columns.
The previous ambiguous "proteins", "genes", and "protein_sites" columns are removed.read_pglyco3_pglycoquant() now contains protein uniprot accessions, e.g. "P08185".
When multiple proteins exist, separated with semicolon, e.g. "P08185;P04196".