Skip to content

Instantly share code, notes, and snippets.

View lgatto's full-sized avatar

Laurent Gatto lgatto

View GitHub Profile
@lgatto
lgatto / gird.R
Last active February 18, 2024 10:43
Reproducing The Grid exhibition poster
## See https://lgatto.github.io/the-grid-in-r/
plotSquare <- function(x, y, width) {
x1 <- x - (width / 2)
y1 <- y - (width / 2)
x2 <- x1 + width
y2 <- y1 + width
rect(x1, y1, x2, y2)
}
@lgatto
lgatto / yank-bibtex-from-doi.el
Created January 27, 2024 16:22
Create and yank bibtex entry from a DOI
(defun yank-bibtex-from-doi ()
"Create and yank bibtex entry from a DOI."
(interactive)
;; read the doi from minibuffer
(setq doi (read-from-minibuffer "doi: "))
;; define the curl shell command
(setq cmd
(concat
"curl -LH \"Accept: application/x-bibtex\" "
"https://doi.org/"
@lgatto
lgatto / R4MS_install.R
Last active March 13, 2024 07:23
RforMassSpectrometry book installation script
## Installation instructions for the R for Mass Spectrometry tutorial
## https://rformassspectrometry.github.io/book/
## Install packages
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("tidyverse", ask = FALSE)
BiocManager::install("factoextra", ask = FALSE)
@lgatto
lgatto / pull_many.el
Last active January 11, 2023 18:39
Pulls and pushes a few github repos in bash and elisp
;; Pulls and pushes a few github repos from emacs
;; Laurent Gatto (https://github.com/lgatto)
;; Thanks to Stephen J. Eglen for his help in redirecting to a
;; dedicated buffer (https://github.com/sje30)
(setq git-dirs '(
"~/wd"
"~/bin"
"~/Documents/org"
"~/Documents/roam"
library(tidyverse)
library(scp)
## Read the data table
x <- read.delim("data/02ng/Task2-SearchTask/AllQuantifiedPeptides.tsv") |>
select(-18) |> ## column 18 is all NAs
janitor::clean_names() |>
rename_with(~ gsub("intensity_ex_auto_", "int_", .x, fixed = TRUE)) |>
rename_with(~ gsub("detection_type_ex_auto_", "det_", .x, fixed = TRUE))
@lgatto
lgatto / app.R
Created March 6, 2022 13:57
DEP::run_app("LFQ")
library(dplyr)
library(tibble)
library(SummarizedExperiment)
library(DEP)
library(shiny)
library(shinydashboard)
ui <- shinyUI(
dashboardPage(
dashboardHeader(title = "DEP - LFQ"),
@lgatto
lgatto / ggPlotMzDelta.R
Created September 2, 2021 20:23
ggPlotMzDelta
ggPlotMzDelta <- function(delta, aaLabels = TRUE) {
stopifnot(require("ggplot2"))
## from PSM::getAminoAcids()
amino_acids <-
structure(list(AA = c("peg", "A", "R", "N", "D", "C", "E", "Q",
"G", "H", "I", "L", "K", "M", "F", "P", "S",
"T", "W", "Y", "V"),
ResidueMass = c(44, 71.03711, 156.10111, 114.04293,
115.02694, 103.00919, 129.04259,
128.05858, 57.02146, 137.05891,
@lgatto
lgatto / mzdeltas.R
Last active September 2, 2021 15:19
M/Z deltas quality control
##' @title Compute the MZ deltas
##'
##' @description
##'
##' The M/Z delta plot illustrates the suitability of MS2 spectra for
##' identification by plotting the M/Z differences of the most intense
##' peaks. The resulting histogram should optimally shown outstanding
##' bars at amino acid residu masses. The plots have been described in
##' Foster et al. 2011.
##'
library(magrittr)
library(ggplot2)
library(rpx)
rpx:::apply_fix_issue_5(FALSE)
## https://www.ebi.ac.uk/pride/archive/projects/PXD022816
## RawBeans: A Simple, Vendor-Independent, Raw-Data Quality-Control
## Tool (10.1021/acs.jproteome.0c00956)
set.seed(123)
max_corrs <- function(d, n = 60, n_iter = 1000)
replicate(n_iter, {
m <- matrix(rnorm(n * d), ncol = d)
max(cor(m)[-1, 1])
})
r1 <- data.frame(d = 800, r = max_corrs(800))
r2 <- data.frame(d = 6400, r = max_corrs(6400))
r <- rbind(r1, r2)