Neurons with granulovacuolar degeneration bodies are resilient to tau-induced protein synthesis impairment.
The 3 matches
- [1] § MATERIALS AND METHODS › Proteomics analysis of primary neurons › Data analysis ↔ R/quickstart.R, lines 2–107 · score 0.69 · MSqRob, quality control, MS DAP, batch, abundance, DIA
- [2] § MATERIALS AND METHODS › Proteomics analysis of primary neurons › Data analysis ↔ R/parse_longformat_generic.R, lines 562–605 · score 0.56 · spectral library, UniMod, fragment, modification, precursor, charge
- [3] § MATERIALS AND METHODS › Proteomics analysis of primary neurons › Data analysis ↔ README.Rmd, lines 63–124 · score 0.50 · DIA NN, MS DAP, batch, MSqRob, abundance, quantified
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R · 293 lines · 22 KB · GPL-3.0 · 1 match
- #' Quickstart for analyses in this pipeline
- #'
- #' all-in-one function that covers the vast majority of use-cases of analyzing a dataset imported into MS-DAP.
- #' (assuming you already loaded peptide data, sample metadata and fasta files using MS-DAP import functions).
- #'
- #' @section Filtering:
- #'
- #' Peptide filter criteria applied to replicate samples within a sample group.
- #' params; filter_min_detect, filter_fraction_detect, filter_min_quant, filter_fraction_quant.
- #' You only have to provide active filters (but specify at least 1), filters/settings you do not specify don't do anything by default.
- #'
- #' Settings:
- #' for DDA: at least 1~2 detect (MS/MS ID) and quantified in at least ~75% of replicates.
- #' for DIA: detect (confidence score < threshold) in at least ~75% of replicates (because for DIA, you typically have an abundance value in each sample regardless of the identifier confidence score).
- #' If there are only 3 replicates, we recommend filtering such that there are at least 3 datapoints to work with in differential expression analysis.
- #'
- #' Taken together, recommended settings for a DDA dataset with 3~8 replicates in each sample group look like this;
- #'
- #' \code{
- #' filter_min_detect = 1 (or zero to fully rely on MBR), filter_fraction_detect = 0.25 (or zero to fully rely on MBR), filter_min_quant = 3, filter_fraction_quant = 0.75
- #' }
- #'
- #' Analogous for DIA;
- #'
- #' \code{
- #' filter_min_detect = 3, filter_fraction_detect = 0.75
- #' }
- #'
- #' @section Filter within contrast vs using all groups:
- #'
- #' Two distinct approaches to selecting peptides can be used for differential expression analysis: 1) 'within contrast' and 2) 'apply filter to all sample groups'.
- #'
- #' 1) Determine within each contrast (eg; group A vs group B) what peptides can be used by applying above peptide filter criteria and then apply normalization to this data subset.
- #' Advantaguous in datasets with many groups; this maximizes the number of peptides used in each contrast (eg; let peptide p be observed in groups A and B, not in C. we'd want to use it in A vs B, not in A vs C).
- #' As a disadvantage, this complicates interpretation since the exact data used is different in each contrast (slightly different peptides and normalization in each contrast).
- #'
- #' 2) Apply above filter criteria to each sample group (eg; a peptide must past these filter rules in every sample group) and then apply normalization
- #'
- #' This data matrix is then used for all downstream statistics
- #'
- #' Advantage; simple and robust
- #'
- #' Disadvantage; potentially miss out on (group-specific) peptides/data-points that may fail filter criteria in just 1 group, particularly in large datasets with 4+ groups
- #'
- #' Set \code{filter_within_contrast = FALSE} for this option
- #'
- #' Note; if there are just 2 sample groups (eg; WT vs KO), this point is moot as both approaches are the same
- #'
- #' @section Normalization:
- #' normalization algorithms are applied to the peptide-level data matrix.
- #' options: "" (empty string disables normalization), "vsn", "loess", "rlr", "msempire", "vwmb", "modebetween", "modebetween_protein" (this balances foldchanged between sample groups. Highly recommended, see MS-DAP manuscript)
- #' Refer to `normalization_algorithms()` function documentation for available options and a brief description of each.
- #'
- #' You can combine normalizations by providing an array of options to apply subsequential normalizations.
- #'
- #' For instance, \code{norm_algorithm = c("vsn", "modebetween_protein")} applies the vsn algorithm (quite strong normalization reducing variation) and then balances between-group protein-level foldchanges with modebetween normalization.
- #'
- #' Benchmarks have shown that c("vwmb", "modebetween_protein") and c("vsn", "modebetween_protein") are the optimal strategies, see MS-DAP manuscript.
- #'
- #' @section Differential Expression Analysis:
- #'
- #' Statistical models for differential expression analysis
- #'
- #' MSqRob is recommended for most cases; a peptide-level model that is highly sensitive and quite robust. Reference: https://github.com/statOmics/MSqRob
- #'
- #' MS-EmpiRe a peptide-level model that works especially well for DDA data. Reference: https://github.com/zimmerlab/MS-EmpiRe
- #'
- #' eBayes is robust but conservative, using the limma package to apply moderated t-tests on protein-level abundances. Reference: https://doi.org/doi:10.18129/B9.bioc.limma
- #'
- #' options: ebayes, deqms, msempire, msqrob, msqrobsum. Refer to `dea_algorithms()` function documentation for available options and a brief description of each.
- #'
- #' You can simply apply multiple DEA models in parallel by supplying an array of options. The output of each model will be visualized in the PDF report and data included in the output Excel report.
- #' e.g.; \code{dea_algorithm = c("ebayes", "deqms", "msempire", "msqrob")}
- #'
- #'
- #'
- #' @param dataset a valid dataset object generated upstream by an MS-DAP import function. For instance, import_dataset_skyline() or import_dataset_maxquant_evidencetxt()
- #' @param filter_min_detect in order for a peptide to 'pass' in a sample group, in how many replicates must it be detected?
- #' @param filter_fraction_detect in order for a peptide to 'pass' in a sample group, what fraction of replicates must it be detected?
- #' @param filter_min_quant in order for a peptide to 'pass' in a sample group, in how many replicates must it be quantified?
- #' @param filter_fraction_quant in order for a peptide to 'pass' in a sample group, what fraction of replicates must it be quantified?
- #' @param filter_min_peptide_per_prot in order for a peptide to 'pass' in a sample group, how many peptides should be available after detect filters? 1 is default, but 2 can be a good choice situationally (eg; to not rely on proteins with just 1 quantified peptide)
- #' @param filter_topn_peptides maximum number of peptides to maintain for each protein (from the subset that passes above filters, peptides are ranked by the number of samples where detected and their variation between replicates).
- #' @param filter_by_contrast should the above filters be applied to all sample groups, or only those tested within each contrast? Enabling this optimizes available data in each contrast, but increases the complexity somewhat as different subsets of peptides are used in each contrast and normalization is applied separately.
- #' @param norm_algorithm normalization algorithm(s), or provide an empty string to skip normalization. Refer to `normalization_algorithms()` function documentation for available options and a brief description of each. Provide an array of options to run each algorithm consecutively, for instance; c("vsn", "modebetween_protein") to first apply vsn normalization and then correct between-group ratios such that the protein-level log2-foldchange mode is zero
- #' @param rollup_algorithm rollup_algorithm strategy for combining peptides to proteins as used in DEA algorithms that first combine peptides to proteins and then apply statistics, like eBayes and DEqMS. Options: maxlfq, tukey_median, sum. See further documentation for function `rollup_pep2prot()`
- #' @param dea_algorithm algorithm for differential expression analysis (provide an array of strings to run multiple, in parallel). Refer to `dea_algorithms()` function documentation for available options and a brief description of each. To use a custom DEA function, provide the respective R function name as a string (see GitHub documentation on custom DEA functions for more details)
- #' @param dea_qvalue_threshold threshold for significance of adjusted p-values in figures and output tables. Output tables will also include all q-values as-is
- #' @param dea_log2foldchange_threshold threshold for significance of log2 foldchanges. Set to zero to disregard or a positive value to apply a cutoff to absolute log2 foldchanges. MS-DAP can also perform a bootstrap analyses to infer a reasonable threshold by setting this parameter to NA
- #' @param diffdetect_min_peptides_observed for differential detection only; minimum number of peptides that a protein must be detected with in either group (within at least `diffdetect_min_samples_observed`) in order to be included in the differential detection z-score results. Set to NA to disable differential detection
- #' @param diffdetect_min_samples_observed for differential detection only; minimum number of samples where a protein should be observed at least once by any of its peptides (in either group) when comparing a contrast of group A vs B. Set to NA to disable differential detection
- #' @param diffdetect_min_fraction_observed for differential detection only; analogous to `diffdetect_min_samples_observed`, but here you can specify the fraction of samples where a protein needs to be detected in either group (within the respective contrast). default; 0.5 (50% of samples)
- #' @param pca_sample_labels whether to use sample names or a numeric ID as labels in the PCA plot. options: "auto" (let code decide, default), "shortname" (use sample shortnames), "index" (auto-generated numeric ID), "index_asis" (same as index option and specifically disable label overlap reduction)
- #' @param var_explained_sample_metadata optionally, enable variance-explained analysis. This is slow, even for small datasets, and even moreso as the number of experiment metadata grows (so to save time in routine analyses, this is disabled by default). Set to NULL to disable (default), NA to automatically infer column names from `dataset@samples` to be used, or provide an array of column names from `dataset@samples` to be used (e.g. `c("group","batch","sex")`)
- #' @param multiprocessing_maxcores optionally, integer parameter to set the maximum number of cores to use when running MSqRob/MSqRobSum DEA algorithms. If other DEA methods are used, this setting doesn't do anything. Set to NA (default) to automatically select all available CPU cores minus 1. For systems with many CPU cores that run into errors related to "socketConnection" or "PSOCK", try limiting this to a lower number (e.g. 8)
- #' @param output_dir output directory where all output files should be stored. If the provided file path is not an existing directory, it will be created. Optionally, disable the creation of any output files (QC report, DEA table, etc.) by setting this parameter to NA (also overrides the 'dump_all_data' parameter)
- #' @param output_within_timestamped_subdirectory optionally, automatically create a subdirectory (within output_dir) that has the current date&time as name and store results there. options: FALSE, TRUE
- #' @param output_abundance_tables whether to write peptide- and protein-level data matrices to file. options: FALSE, TRUE
- #' @param output_qc_report whether to create the Quality Control report. options: FALSE, TRUE . Highly recommended to set to TRUE (default). Set to FALSE to skip the report PDF (eg; to only do differential expression analysis and skip the time-consuming report creation)
- #' @param dump_all_data if you're interested in performing custom bioinformatic analyses and want to use any of the data generated by this tool, you can dump all intermediate files to disk. Has performance impact so don't enable by default. options: FALSE, TRUE
- #' @seealso `dea_algorithms()` and `normalization_algorithms()` for available algorithms and documentation.
- #' @importFrom parallel stopCluster
- #' @importFrom openxlsx write.xlsx
- #' @importFrom data.table fwrite
- #' @export
- analysis_quickstart = function(
- dataset,
- # peptide filter criteria applied within each sample group
- filter_min_detect = 0, filter_fraction_detect = 0, filter_min_quant = 0, filter_fraction_quant = 0,
- # respective criteria on protein level
- filter_min_peptide_per_prot = 1, filter_topn_peptides = 0,
- # apply filter to each sample group, or only apply filter within relevant sample groups being compared in a contrast?
- filter_by_contrast = FALSE,
- # normalization algorithms for peptide-level data. Available options at msdap::normalization_algorithms() and are detailed in this function's documentation. Provide an array of options to run multiple sequentially
- norm_algorithm = c("vsn", "modebetween_protein"),
- rollup_algorithm = "maxlfq",
- # DEA algorithms. Available options at msdap::dea_algorithms() and are detailed in this function's documentation. Provide an array of options to run multiple DEA algorithms in parallel / independently
- dea_algorithm = c("deqms", "msqrob", "msempire"),
- # define thresholds for significant proteins
- dea_qvalue_threshold = 0.01,
- dea_log2foldchange_threshold = 0, # if NA, infer from bootstrap
- # differential detection
- diffdetect_min_peptides_observed = 2,
- diffdetect_min_samples_observed = 3,
- diffdetect_min_fraction_observed = 0.5,
- # plot options
- pca_sample_labels = "auto",
- var_explained_sample_metadata = NULL,
- # multithreading control
- multiprocessing_maxcores = NA,
- # output data
- output_abundance_tables = TRUE,
- output_qc_report = TRUE,
- output_dir, # no default, required to be explicitly set
- output_within_timestamped_subdirectory = TRUE,
- dump_all_data = FALSE
- ) {
- # check if the user is trying to apply filtering/dea on a dataset object that is incompatible with MS-DAP version 1.2 or later
- error_legacy_contrast_definitions(dataset)
- output_disabled = length(output_dir) == 0 || (length(output_dir) == 1 && all(is.na(output_dir)))
- if(output_disabled) {
- append_log("no output files will be generated, output_dir was set to NA", type = "info")
- }
- if(!output_disabled && (length(output_dir) != 1 || !is.character(output_dir) || output_dir == "")) {
- append_log("parameter 'output_dir' should be a character string describing a valid output path", type = "error")
- }
- if(!output_disabled) {
- # convert to absolute paths. example; user used setwd() and now sets "output" as the output_dir
- # only forward slashes and remove redundant. normalizePath() also cleans slashes etc. like our path_clean_slashes (which does more)
- output_dir = normalizePath(paste0(output_dir, "/"), winslash = "/", mustWork = FALSE)
- # create output directory if it does not exist
- if(!dir.exists(output_dir)) {
- append_log(paste("output directory does not exist yet, creating;", output_dir), type = "info")
- dir.create(output_dir, recursive = T)
- if(!dir.exists(output_dir)) {
- append_log(paste("failed to create output directory;", output_dir), type = "error")
- }
- }
- if(file.access(output_dir, mode = 2) != 0) {
- append_log(paste("no write access to the output directory;", output_dir), type = "error")
- }
- # output to timestamped subdir
- if(output_within_timestamped_subdirectory) {
- # If there is an environment variable that hardcodes the timezone (an integer offset from UTC), use it to adjust the timezone
- # We use it to control timezone differences between the Docker host and the Docker container
- # (windows host systems uses different timezone abbreviations than unix. This solution is straight forward to implement and does introduce additional dependencies)
- # Windows PowerShell: [System.TimeZone]::CurrentTimeZone.GetUtcOffset([datetime]::Now).TotalHours (yields integer)
- # Unix: date +%z = +hhmm numeric time zone (e.g., -0400)
- UTC_N_hours_offset = as.integer(substr(Sys.getenv("HOST_TIMEZONE_UTC_OFFSET"), 1, 3))
- if(!is.na(UTC_N_hours_offset)) {
- timestamp_prettyprint = format(Sys.time() + UTC_N_hours_offset * 3600, format = "%Y-%m-%d_%H-%M-%S", tz = "UTC")
- } else {
- timestamp_prettyprint = format(Sys.time(), format = "%Y-%m-%d_%H-%M-%S")
- }
- output_dir = path_clean_slashes(paste0(output_dir, "/", timestamp_prettyprint, "/"))
- }
- if(!dir.exists(output_dir)) {
- dir.create(output_dir, recursive = T)
- }
- if(!dir.exists(output_dir)) {
- append_log(paste("failed to create directory;", output_dir), type = "error")
- }
- # check if all output files we want to write to are accessible, before running any time-consuming code
- fname_samples = path_append_and_check(output_dir, "samples.xlsx")
- remove_file_if_exists(fname_samples)
- fname_stats = path_append_and_check(output_dir, "differential_abundance_analysis.xlsx")
- remove_file_if_exists(fname_stats)
- fname_dataset = path_append_and_check(output_dir, "dataset.RData")
- remove_file_if_exists(fname_dataset)
- if(output_qc_report) {
- remove_file_if_exists(path_append_and_check(output_dir, "report.pdf"))
- }
- if(output_abundance_tables) {
- fname_abundances = path_append_and_check(output_dir, "peptide_and_protein_abundances.xlsx")
- remove_file_if_exists(fname_abundances)
- }
- # add output dir to the dataset object
- dataset$output_dir = output_dir
- }
- if(filter_min_detect == 0 && filter_fraction_detect == 0 && filter_min_quant == 0 && filter_fraction_quant == 0) {
- append_log("must specify at least one parameter for filtering peptides. Any of; filter_min_detect, filter_fraction_detect, filter_min_quant, filter_fraction_quant", type = "error")
- }
- ##### prior to any analyses, check if the data is fractionated. If so, merge all sample fractions prior to downstream analyses
- if("fraction" %in% colnames(dataset$samples)) {
- append_log("sample metadata contains samples with multiple fractions, 'sample_id' with the same 'shortname' are now merged by summation of their respective peptide intensities", type = "info")
- dataset = merge_fractionated_samples(dataset)
- }
- ##### after dealing with fractions, dataset object integrity check
- check_dataset_integrity(dataset)
- # extra check; don't include any decoys in downstream data analysis
- if(any(dataset$peptides$isdecoy)) {
- append_log("peptides tibble must contain no decoy entries at this point (all values in 'isdecoy' column must be FALSE). For typical workflows, make sure to set return_decoys=FALSE when importing data.", type = "error")
- }
- # facilitate multiprocessing, this is only used for our custom implementation of msqrob at the moment
- if(any(grepl("msqrob", dea_algorithm, ignore.case = T))) {
- # speed up your analysis by using multiple processor cores (default; all cores but one)
- cl <<- initialize_multiprocessing(multiprocessing_maxcores)
- # finally, shut down multithreading clusters. use on.exit to execute regardless of downstream errors
- on.exit({ suppressWarnings(parallel::stopCluster(cl)); rm(cl, envir = .GlobalEnv) })
- }
- ##### all filters; global, local, by_group (for CoV plots). adds additional columns to peptide table with filtered and normalized peptide intensities
- dataset = filter_dataset(dataset,
- filter_min_detect = filter_min_detect, filter_fraction_detect = filter_fraction_detect, filter_min_quant = filter_min_quant, filter_fraction_quant = filter_fraction_quant,
- filter_min_peptide_per_prot = filter_min_peptide_per_prot, filter_topn_peptides = filter_topn_peptides,
- norm_algorithm = norm_algorithm, rollup_algorithm = rollup_algorithm,
- by_group = (output_abundance_tables || output_qc_report), all_group = (!filter_by_contrast || output_abundance_tables || output_qc_report || length(var_explained_sample_metadata) > 0), by_contrast = filter_by_contrast)
- ##### DE analysis
- # quantitative analysis; eBayes/MSqRob/MS-EmpiRe/MSqRobSum
- dataset = dea(dataset, qval_signif = dea_qvalue_threshold, fc_signif = dea_log2foldchange_threshold, dea_algorithm = dea_algorithm, rollup_algorithm = rollup_algorithm, output_dir_for_eset = ifelse(dump_all_data, output_dir, ""))
- # debug; print(dataset$de_proteins %>% filter(signif) %>% left_join(dataset$proteins))
- # qualitative analysis
- dataset = differential_detect(dataset, min_peptides_observed = diffdetect_min_peptides_observed, min_samples_observed = diffdetect_min_samples_observed, min_fraction_observed = diffdetect_min_fraction_observed, count_mode = "auto", rescale_counts_per_sample = TRUE, return_wide_format = FALSE)
- ##### export data tables to file
- if(!output_disabled) {
- openxlsx::write.xlsx(dataset$samples %>% select(!!grep("^key_", colnames(dataset$samples), ignore.case = T, value = T, invert = T)), fname_samples)
- export_statistical_results(dataset, output_dir)
- if(output_abundance_tables) {
- export_protein_abundance_matrix(dataset, rollup_algorithm = rollup_algorithm, output_dir = output_dir)
- export_peptide_abundance_matrix(dataset, output_dir = output_dir)
- }
- # since version 1.6 we always store the dataset RData object in the output folder
- save(dataset, file = path_append_and_check(output_dir, "dataset.RData"), compress = T)
- # write all data tables to compressed .tsv files
- if(dump_all_data) {
- data.table::fwrite(dataset$peptides, path_append_and_check(output_dir, "peptides.tsv.gz"), sep="\t", col.names = T, row.names = F, quote = F, na = "")
- data.table::fwrite(dataset$proteins, path_append_and_check(output_dir, "proteins.tsv.gz"), sep="\t", col.names = T, row.names = F, quote = F, na = "")
- data.table::fwrite(dataset$samples, path_append_and_check(output_dir, "samples.tsv.gz"), sep="\t", col.names = T, row.names = F, quote = F, na = "")
- if(is_tibble(dataset$de_proteins) && nrow(dataset$de_proteins) > 0) {
- data.table::fwrite(dataset$de_proteins, path_append_and_check(output_dir, "de_proteins.tsv.gz"), sep="\t", col.names = T, row.names = F, quote = F, na = "")
- }
- if(is_tibble(dataset$dd_proteins) && nrow(dataset$dd_proteins) > 0) {
- data.table::fwrite(dataset$dd_proteins, path_append_and_check(output_dir, "dd_proteins.tsv.gz"), sep="\t", col.names = T, row.names = F, quote = F, na = "")
- }
- }
- # QC report
- if(output_qc_report) {
- generate_pdf_report(dataset, output_dir = output_dir, norm_algorithm = norm_algorithm, rollup_algorithm = rollup_algorithm, pca_sample_labels = pca_sample_labels, var_explained_sample_metadata = var_explained_sample_metadata)
- }
- append_log(paste("output directory;", output_dir), type = "info")
- }
- return(dataset)
- }
quickstart.R at commit 8af3905, under GPL-3.0 · at the source
Overview
- Dept. of Human Genetics, Amsterdam UMC - Vrije Universiteit Amsterdam, Amsterdam, The Netherlands
- Dept. of Functional Genomics, Vrije Universiteit Amsterdam, Amsterdam, The Netherlands
- Dept. of Molecular and Cellular Neuroscience, Center for Neurogenomics and Cognitive Research, Amsterdam Neuroscience, Vrije Universiteit Amsterdam, Amsterdam, The Netherlands
Abstract
In Alzheimer’s disease, many surviving neurons with tau pathology contain granulovacuolar degeneration bodies (GVBs), neuron-specific lysosomal structures induced by pathological tau assemblies. This could indicate a neuroprotective role for GVBs; however, the mechanism of GVB formation and its functional implications are elusive. Here, we demonstrate that casein kinase 1δ (CK1δ) activity is required for GVB formation. CK1δ is sequestered in the GVB during this process in an autophagy-dependent manner. We show that neurons with GVBs (GVB+) are resilient to tau-induced impairment of global protein synthesis and are protected against tau-mediated neurodegeneration. GVB+ neurons do not exhibit differential activation of transient translational stress responses but have increased ribosomal content. Unlike neurons without GVBs, GVB+ neurons fully retain the capacity to induce long-term potentiation–induced protein synthesis in the presence of tau pathology. Our results have identified CK1δ as a key regulator of GVB formation that confers a protective neuron-specific stress response to tau pathology. These findings provide opportunities for targeting neuronal resilience in tauopathies.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.
ftwkoopmans/msdap
8af39053b3b0df82601ee63d75eda275b7cedf6a, 9 May 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
78 files
- R/
dataset.R , R, 462 lines - R/
dea.R , R, 532 lines - R/
export_data_tables.R , R, 160 lines - R/
export_stats_genesummary , R, 401 lines.R - R/
filter_peptides.R , R, 863 lines - R/
gene_idmapping.R , R, 377 lines - R/
merge_replicate_samples. , R, 228 linesR - R/
msdap-package.R , R, 16 lines - R/
msqrobsum__bugfix.R , R, 311 lines - R/
normalize_vwmb.R , R, 336 lines - R/
parse_encyclopedia.R , R, 177 lines - R/
parse_expressionset.R , R, 84 lines - R/
parse_fragpipe.R , R, 600 lines - R/
parse_fragpipe_legacy.R , R, 290 lines - R/
parse_longformat_generic , R, 705 lines, 1 match.R - R/
parse_maxquant.R , R, 323 lines - R/
parse_metamorpheus.R , R, 153 lines - R/
parse_openms.R , R, 250 lines - R/
parse_peaks.R , R, 96 lines - R/
parse_proteomediscoverer , R, 270 lines_txt.R - R/
plot_benchmark.R , R, 222 lines - R/
plot_differential_detect , R, 45 lines.R - R/
plot_missing_values.R , R, 171 lines - R/
plot_normalization.R , R, 507 lines - R/
plot_peptide_data.R , R, 796 lines - R/
plot_protein_stats.R , R, 184 lines - R/
plot_retention_time.R , R, 532 lines - R/
plot_sample_metadata.R , R, 428 lines - R/
plot_sample_pca.R , R, 237 lines - R/
plot_score_distributions , R, 121 lines.R - R/
plot_variance_explained. , R, 163 linesR - R/
plot_volcano.R , R, 356 lines - R/
process_peptide_data.R , R, 655 lines - R/
quickstart.R , R, 293 lines, 1 match - R/
report_as_rmarkdown.R , R, 195 lines - R/
rollup.R , R, 227 lines - R/
sample_metadata.R , R, 980 lines - R/
stats_differential_abund , R, 715 linesance.R - R/
stats_differential_detec , R, 512 linest.R - R/
stats_summary.R , R, 297 lines - R/
util_expressionset.R , R, 79 lines - R/
util_fasta.R , R, 178 lines - R/
util_files.R , R, 478 lines - R/
util_generic.R , R, 718 lines - R/
util_infer_metadata_from , R, 294 lines_file.R - R/
util_log.R , R, 122 lines - R/
util_normalization.R , R, 320 lines - R/
util_rmarkdown.R , R, 92 lines - README.Rmd, R, 231 lines, 1 match
- doc/
custom_limma.Rmd , R, 273 lines - doc/
custom_norm_dea.Rmd , R, 209 lines - doc/
differential_detection.R , R, 175 linesmd - doc/
differential_expression_ , R, 104 linesanalysis.Rmd - doc/
docker.Rmd , R, 230 lines - doc/
intro.Rmd , R, 322 lines - doc/
misc/ , Rust, not shown hereMS-DAP Format.rs - doc/
rpackage.Rmd , R, 165 lines - doc/
userguide.Rmd , R, 478 lines - docker/
msdap_launcher_unix.sh , Shell, 83 lines - examples/
example_Klaassen2018_pmi , R, 51 linesd26931375.R - examples/
example_OConnel2018_pmid , R, 49 lines29635916.R - inst/
rmd/ , R, 723 linesreport.Rmd - tests/
exploration/ , R, 99 linesmsempire_debug_false_neg ative_results.R - tests/
exploration/ , R, 34 linesmsempire_feedback.R - tests/
exploration/ , R, 84 linesmsempire_reproducibility _needs_set-seed.R - tests/
exploration/ , R, 47 linesmsqrob_pvalue_histogram. R - tests/
prepare_test_datasets.R , R, 72 lines - tests/
testthat.R , R, 20 lines - tests/
testthat/ , R, 4 lineshelper.R - tests/
testthat/ , R, 34 linestest_dea_reproducibility .R - tests/
testthat/ , R, 52 linestest_filtering.R - tests/
testthat/ , R, 164 linestest_fragpipe_parser.R - tests/
testthat/ , R, 45 linestest_normalization.R - tests/
testthat/ , R, 29 linestest_normalization_repro ducibility.R - tests/
testthat/ , R, 91 linestest_pipeline-vs-msempir e.R - tests/
testthat/ , R, 234 linestest_pipeline-vs-msqrob. R - LICENSE, License, 674 lines
- README.md, Text, 277 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 76 scripts, each with its path and the digest of its content;
- 3 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data, code, and materials availability
All data and code needed to evaluate and reproduce the results in the paper are present in the paper and/
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 8 authors, 11 MeSH terms, 3 funders, 98 references.
Cite
This paper
Smits, J. F. M., Ligthart, T. W., Jorge-Oliva, M., Middelhoff, S., Schipper, F., Pita-Illobre, D., Li, K. W., & Scheper, W. (2026). Neurons with granulovacuolar degeneration bodies are resilient to tau-induced protein synthesis impairment. Science advances, 12(10), eaea8940. https://
BibTeX
@article{smits2026neuron
author = {Smits, Jasper F. M. and Ligthart, Thijmen W. and Jorge-Oliva, Marta and Middelhoff, Skip and Schipper, Fleur and Pita-Illobre, Débora and Li, Ka Wan and Scheper, Wiep},
title = {{Neurons with granulovacuolar degeneration bodies are resilient to tau-induced protein synthesis impairment}},
journal = {Science advances},
year = {2026},
month = mar,
volume = {12},
number = {10},
pages = {eaea8940},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/
url = {https://
pmid = {41790889},
pmcid = {PMC12965320}
}
RIS
TY - JOUR
AU - Smits, Jasper F. M.
AU - Ligthart, Thijmen W.
AU - Jorge-Oliva, Marta
AU - Middelhoff, Skip
AU - Schipper, Fleur
AU - Pita-Illobre, Débora
AU - Li, Ka Wan
AU - Scheper, Wiep
TI - Neurons with granulovacuolar degeneration bodies are resilient to tau-induced protein synthesis impairment
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/
VL - 12
IS - 10
SP - eaea8940
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1126/
"type": "article-journal",
"title": "Neurons with granulovacuolar degeneration bodies are resilient to tau-induced protein synthesis impairment",
"container-title": "Science advances",
"author": [
{
"family": "Smits",
"given": "Jasper F. M."
},
{
"family": "Ligthart",
"given": "Thijmen W."
},
{
"family": "Jorge-Oliva",
"given": "Marta"
},
{
"family": "Middelhoff",
"given": "Skip"
},
{
"family": "Schipper",
"given": "Fleur"
},
{
"family": "Pita-Illobre",
"given": "Débora"
},
{
"family": "Li",
"given": "Ka Wan"
},
{
"family": "Scheper",
"given": "Wiep"
}
],
"container-title-short":
"volume": "12",
"issue": "10",
"page": "eaea8940",
"DOI": "10.1126/
"PMID": "41790889",
"PMCID": "PMC12965320",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
6
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1016/j.xcrm.2026.102682 [code]
- TET CpG sequence-context-specifi
c DNA demethylation shapes progression of IDH-mutant gliomas. Journal: Cell reports. MedicineIn common: pROC, limma, lme4, 5 other tools, 2 references - [2] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: pROC, limma, lme4, 5 other tools, cellular / molecular
- [3] doi:10.1038/s41593-026-02367-0 [code]
- A reproducible three-dimensional model of human brain tissue to investigate physiological and disease-associated microglia phenotypes.Journal: Nature neuroscienceIn common: limma, ggpubr, data.table, 3 other tools, Alzheimer's / dementia, cellular / molecular, 2 references
- [4] doi:10.1093/bioinformatics/btag592 [code]
- Network-based stratification of allele-specific expression reveals patient subgroups in Huntington's disease.Journal: Bioinformatics (Oxford, England)In common: pROC, limma, lme4, 5 other tools
- [5] doi:10.3390/ijms27104466 [code]
- Uncovering the Key Circuit FOSL2/
FOS/ EGR3/ EGR1, Contributing to the Hyperexcitability of Excitatory Neurons in the Epileptic Temporal Cortex and Hippocampus. Journal: International journal of molecular sciencesIn common: pROC, limma, lme4, 5 other tools - [6] doi:10.7717/peerj.21426 [code]
- Integrated transcriptomic identification and validation reveal key autophagy-associated biomarkers in sleep deprivation.Journal: PeerJIn common: pROC, limma, ggpubr, 4 other tools, mouse, cellular / molecular
- [7] doi:10.1038/s41467-026-74968-z [code]
- Activity-dependent ribosome profiling reveals the landscape of canonical and non-canonical translation in brain tissue.Journal: Nature communicationsIn common: pROC, data.table, ggplot2, 1 other tool, mouse, cellular / molecular, 3 references
- [8] doi:10.1038/s41467-026-77170-3 [code]
- DNA methylation profiling identifies long-range epigenetic silencing of clustered protocadherins as a key determinant of meningioma progression.Journal: Nature communicationsIn common: pROC, limma, lme4, 4 other tools, cellular / molecular
- [9] doi:10.3390/ijms27156925 [code]
- XGBoost-SHAP Interpretable Modeling Identifies and Validates an Eight-Gene Biomarker for Hepatic Encephalopathy Risk Prediction in Cirrhosis.Journal: International journal of molecular sciencesIn common: pROC, limma, ggpubr, 4 other tools
- [10] doi:10.1016/j.isci.2026.115657 [code]
- Integration of machine learning to develop a disulfidptosis model for predicting glioma prognosis, immunotherapy response, and drug.Journal: iScienceIn common: pROC, limma, ggpubr, 4 other tools
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 76 scripts, and 3 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:92cb65ecb5a0057a…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
