Skip to content

Instantly share code, notes, and snippets.

View cdiener's full-sized avatar
👨‍🔬
Researching 'em microbes...

Christian Diener cdiener

👨‍🔬
Researching 'em microbes...
View GitHub Profile
@cdiener
cdiener / cache.R
Last active August 29, 2015 14:23
cache operator for R
# Caching operator executes command if there is no saved version of the data
# just delete the saved file and code will be run again
'%c%' = function(ex, file) if(file.exists(file), env=parent.frame(4)) load(file) else evalq(ex))
# Example
# first execution
{ x <- rnorm(1e6); save(x, file="cache.Rd") } %c% "cache.Rd" # executes the sampling
@cdiener
cdiener / points
Last active August 29, 2015 14:20
ggplot2 grouped points with horizontal means
library(scales)
library(Hmisc)
emsa_plot = ggplot(emsa, aes(x=Name, y=intensity, shape=charge_ratio, col=charge_ratio, width=0.8)) +
geom_point(size=3, position=position_dodge(width=0.8)) +
stat_summary(fun.data=mean_sdl, mult=0, color="black", geom="errorbar", size=1, position=position_dodge(width=0.8)) +
scale_color_grey(start=0, end=0.5,name="charge ratio") +
scale_shape(name="charge ratio") +
scale_y_continuous(limits=c(-0.05,1), breaks=seq(0,1,by=0.2), label=percent) +
@cdiener
cdiener / overload.R
Last active July 7, 2022 19:37
R operator overloading
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
Created April 13, 2014 03:11
asciinator.py now with documentation
# 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 / asciinator.py
Last active January 5, 2023 17:24
Convert image to ascii art
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)