Skip to content

Instantly share code, notes, and snippets.

View cdiener's full-sized avatar
👶
on paternity leave

Christian Diener cdiener

👶
on paternity leave
View GitHub Profile
@cdiener
cdiener / per_sample.ipynb
Created June 10, 2021 18:18
MICOM per sample diets
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@cdiener
cdiener / setup_qiime2.py
Last active August 10, 2023 13:57
Set up Qiime 2 on Google colab
#!/usr/bin/env python3
"""Set up Qiime 2 on Google colab.
Do not use this on o local machine, especially not as an admin!
"""
import os
import sys
import shutil
@cdiener
cdiener / install_python.md
Last active January 20, 2018 15:14
Como instalar Python y Jupyter

Como instalar Python y Jupyter

Para las siguientes clases vamos a usar Python como nuestro lenguaje de programación preferido. En particular, vamos a usar la versión 3 de Python y las libretas de Jupyter. Para ya tener una instalación funcional en la clase, aquí hay unas pistas para la instalación. Para la instalación en Windows y Mac vamos a usar la versión de Anaconda mientras que para Linux usamos la versión nativa de Python.

Para Windows

@cdiener
cdiener / install.md
Last active November 9, 2017 04:25
Como instalar docker para la clase de Desafio LatAm.

Instalación de Docker

Lo primero que tienes que saber sobre la instalación de docker es que para Mac y windows hay dos versiones de docker:

  1. una versión legacy que usa maquinas virtuales (VM) para correr docker adentro de una maquina virtual.
  2. una versión nativa que usa una capa de compatibilidad (HyperKit + Hypervisor en Mac y Hyper-V en Windows) para correr docker directamente con el kernel nativo

La versión nativa (opción 2) tiene menos overhead y corre más rapido pero pone mas restricciones a su OS. Por el momento yo recomiendo que usan esta versión en Mac y Linux y la version legacy (opcion 1) en Windows.

@cdiener
cdiener / orlitsky.R
Created September 1, 2017 21:40
Source code for my blog post
library(data.table)
library(ggplot2)
library(magrittr)
library(pbapply)
large <- fread("ERR260132_genes.csv")
#' Sample a rarefied version of a count vector.
#'
#' @param x A named vector of counts.
@cdiener
cdiener / settings.json
Created June 16, 2017 20:46
My vscode settings....
{
"workbench.colorTheme": "Sublime Material Theme - Dark",
"workbench.iconTheme": "material-icon-theme",
"editor.fontFamily": "'Fira Mono', monospace",
"editor.fontSize": 17,
"editor.rulers": [80],
"window.zoomLevel": 0,
"window.menuBarVisibility": "toggle",
// Settings for Python
@cdiener
cdiener / compare.py
Last active March 6, 2017 18:55
Compare pytest benchmarks
import json
import pandas as pd
from sys import argv, exit
def benchmark_to_df(json_file):
with open(json_file) as jf:
content = json.load(jf)
df = pd.DataFrame(columns=("test", "time [ms]"))
for b in content["benchmarks"]:
@cdiener
cdiener / enrichment.R
Created May 4, 2016 19:47
Small GSEA implementation
ES <- function(p, w, pws, both=FALSE) {
n <- length(pws)
nr <- sum(abs(w[pws == p]))
nh <- sum(pws == p)
scores <- vector(length=n)
scores[pws == p] <- abs(w[pws == p])/nr
scores[pws != p] <- -1/(n - nh)
r <- range(cumsum(scores))
i <- which.max(abs(r))
#/usr/bin/env python
from cobra.test import create_test_model
from cobra.flux_analysis import single_gene_deletion
cobra_model = create_test_model("textbook")
dels = {"b0008": 0.87, "b0114": 0.71, "b0116": 0.56, "b2276": 0.11, "b1779": 0.00}
rates, statuses = single_gene_deletion(cobra_model, gene_list=dels.keys(),
method="moma", solver="mosek")
@cdiener
cdiener / eset_reduce.R
Last active February 3, 2016 22:03
ExpressionSet reducer - allows you to reduce the features of an expression set from an nxn grouping, for instance probesets to genes/transcripts etc.
Rcpp::sourceCpp("matrix_reduce.cpp")
#' Reduces an ExpressionSet by an n-to-n map of features to groups. All entries
#' in \code{features} must exist in \code{eset}. \code{features} and
#' \code{groups} must have the same length.
#'
#' @param eset An ExpressionSet object.
#' @param features A character vector of features to be grouped.
#' @param groups A factor or character vector mapping the entries in
#' \code{features} to groups.