Skip to content

Instantly share code, notes, and snippets.

👨‍🔬
Researching 'em microbes...

Christian Diener cdiener

👨‍🔬
Researching 'em microbes...
Block or report user

Report or block cdiener

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@cdiener
cdiener / asciinator.py
Created Apr 13, 2014
asciinator.py now with documentation
View asciinator.py
# This line imports the modules we will need. The first is the sys module used
# to read the command line arguments. Second the Python Imaging Library to read
# the image and third numpy, a linear algebra/vector/matrix module.
import sys; from PIL import Image; import numpy as np
# This is a list of characters from low to high "blackness" in order to map the
# intensities of the image to ascii characters
chars = np.asarray(list(' .,:;irsXA253hMHGS#9B&@'))
# Check whether all necessary command line arguments were given, if not exit and show a
@cdiener
cdiener / overload.R
Last active Aug 23, 2019
R operator overloading
View overload.R
a = "bla"
b = "so on"
class(a) = append("my_class", class(a))
'+.my_class' = function(x,y) paste(x,y,sep=" and ")
print(a+b)
@cdiener
cdiener / asciinator.py
Last active Aug 14, 2019
Convert image to ascii art
View asciinator.py
import sys; from PIL import Image; import numpy as np
chars = np.asarray(list(' .,:;irsXA253hMHGS#9B&@'))
if len(sys.argv) != 4: print( 'Usage: ./asciinator.py image scale factor' ); sys.exit()
f, SC, GCF, WCF = sys.argv[1], float(sys.argv[2]), float(sys.argv[3]), 7/4
img = Image.open(f)
S = ( round(img.size[0]*SC*WCF), round(img.size[1]*SC) )
img = np.sum( np.asarray( img.resize(S) ), axis=2)
@cdiener
cdiener / install_python.md
Last active Jan 20, 2018
Como instalar Python y Jupyter
View install_python.md

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 Nov 9, 2017
Como instalar docker para la clase de Desafio LatAm.
View install.md

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 Sep 1, 2017
Source code for my blog post
View orlitsky.R
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 Jun 16, 2017
My vscode settings....
View settings.json
{
"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 Mar 6, 2017
Compare pytest benchmarks
View compare.py
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
Small GSEA implementation
View enrichment.R
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))
View bug245.py
#/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")
You can’t perform that action at this time.