- Expressivity: should be possible to express mathematical & programming concepts concisely & elegantly. This is important to reduce the mental overhead required for writing down and reading models and algorithms in the form of code.
- Speed: should be possible to convert code into software/program that gets the most out of modern computer hardware
- Functional Programming
- Parallel computing
- Extensibility: should have a powerful, unambiguous, easy to use package management system built right into the core of the language
- Visualisation: a large and very important part of scientific programming is generating side-effects: writing reports, generating plots, creating interactive documents
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
R package version: 0.0-39 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Summary type: median | |||||||||||||
Test type: wilcoxon | |||||||||||||
x-axis treatment: 20 | |||||||||||||
x-axis medium: SDM_rhlk_TGNH | |||||||||||||
x-axis screen ID: SGA0188 | |||||||||||||
x-axis screen name: CONTROL | |||||||||||||
x-axis libraries: SDLV4_1536 | |||||||||||||
x-axis client: MMA | |||||||||||||
x-axis user: AAB |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from PIL import Image | |
import numpy as np | |
# Generate a 100x100 array of random floats between 0.0 and 1.0 | |
random_floats = np.random.rand(100,100) | |
# Scale these up to lie in the range of 8-bit integers (between 0.0 and 255.0) | |
random_floats_8bit = random_floats * 255.0 | |
# Round these float values to the nearest integer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Sampling noise | |
simulateSample = function(mtDNAPerWell=1000, mutantFraction=0.95, fracVolumeSampled=1.0/3.0){ | |
# Create a synthetic population of mtDNA molecules | |
moleculeMutant = rbinom(n = round(mtDNAPerWell*fracVolumeSampled), size = 1, prob = mutantFraction) | |
# Calculate mutant fraction in sampled molecules | |
sum(moleculeMutant)/length(moleculeMutant) | |
} | |
simulateUncertainty = function(mtDNAPerWell=1000, mutantFraction=0.95, fracVolumeSampled=1.0/3.0, reps = 5000){ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
N = 10000 | |
Ncurve = 1000 | |
png("Walk.png",width=3000,height=1000,pointsize=12,type="cairo-png") | |
plot(NULL,ylim=c(-200,200),axes=FALSE,xlim=c(N/2,N),xlab="",ylab="") | |
for(i in 1:Ncurve) points(cumsum(rnorm(N,0,0.5)),type="l",col=rgb(0,0,0,0.1),lwd=2) | |
dev.off() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nA = 8 | |
meanA = 48 | |
sdA = 3 | |
nB = 10 | |
meanB = 53 | |
sdB = 4 | |
set.seed(42) | |
nBoot = 100000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(deldir) | |
library(png) | |
dat = read.delim("results.csv",sep=",",stringsAsFactors=FALSE) | |
im = readPNG("AVE_mitocyto.png") | |
h = dim(im)[1] | |
w = dim(im)[2] | |
td = data.frame( | |
xCoord = dat$Value[dat$Channel=="xCoord"], |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#https://github.com/hrbrmstr/speedtest | |
library(speedtest) | |
fname = "speedtest_results2.txt" | |
makeplots = FALSE | |
if(!makeplots){ | |
config = spd_config() | |
servers = spd_servers(config = config) | |
servers = spd_closest_servers(servers, config) | |
best = spd_best_servers(servers, config, max = 3) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Info about boxplot notches https://sites.google.com/site/davidsstatistics/home/notched-box-plots | |
# Article about why not to use barplots https://doi.org/10.1371/journal.pbio.1002128 | |
# Article about being wary of summary statistics and why raw data plots are better than boxplots https://www.autodeskresearch.com/publications/samestats | |
# Generate some fake data | |
concs = seq(0,10,1) | |
concobs = rep(concs,each=500) | |
mdel = function(x) -x^2+10*x+20 | |
vals = mdel(concobs) + rnorm(length(concobs),0,12) | |
dat = data.frame(conc=concobs,val=vals) |