Skip to content

Instantly share code, notes, and snippets.

@fredyr
fredyr / tree.ex
Last active December 8, 2015 20:31
# center a string s on position c
# cent("0", 5) => " 0 "
# cent("000", 5) => " 000 "
# but we ignore right side spaces
cent = fn(s, c) ->
String.duplicate(" ", div(c - String.length(s), 2)) <> s
end
# piping through partials?
# SAAD PUPPY :'(
@fredyr
fredyr / biquad.ml
Created January 4, 2016 11:29
Tiny biquad filter
(*
Tiny Biquad filter implementation in OCaml.
Ported straight from http://www.musicdsp.org/files/biquad.c
*)
type biquad = {
a0 : float;
a1 : float;
a2 : float;
a3 : float;
(defmacro lwt (&rest args)
(destructuring-bind (b1 wh b2 &rest body) args
`(let* (,@b2 ,@b1) ,@body)))
(macroexpand-all
'(lwt ((w (* x y)))
:where
((x 2)
(y 3))
(+ 1 w)))
(defmacro lwt (&rest args)
(destructuring-bind (b1 wh b2 &rest body) args
`(let* (,@b2 ,@b1) ,@body)))
(macroexpand-all
'(lwt ((w (* x y)))
:where
((x 2)
(y 3))
(+ 1 w)))
@fredyr
fredyr / npm-debug.log
Created February 19, 2017 17:41
npm install fails on ReasonProject
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli '--verbose',
1 verbose cli 'install' ]
2 info using [email protected]
3 info using [email protected]
4 silly loadCurrentTree Starting
5 silly install loadCurrentTree
6 silly install readLocalPackageData
@fredyr
fredyr / binaryclock.re
Created March 19, 2017 19:52
Binary clock using Reason/React
type bitnum = (int, list bool);
let elem_of_list ls => ReactRe.arrayToElement (Array.of_list ls);
let text s => ReactRe.stringToElement s;
let cell_col bit => {
let color = if bit {"light"} else {"dark"};
<div className=("cell " ^ color) />
};
import inspect
from urllib.parse import urlparse
class ParameterSet:
pass
class Field:
def __init__(self, description, **kwargs):
"""Takes a CSV distance matrix and renders it as a MST."""
import sys
import matplotlib.pyplot as plt
import networkx as nx
import pandas
from scipy.sparse.csgraph import minimum_spanning_tree
import sys
from io import StringIO
import pandas
from Bio.Phylo.TreeConstruction import DistanceMatrix
def distance_matrix(snp_tab):
df = pandas.read_csv(snp_tab, sep='\t', header=0)
cols = list(df.columns)[1:]
#/usr/bin/env bash
set -e
ENV=snp_tree
source miniconda3/etc/profile.d/conda.sh
if !(conda info --envs | grep $ENV); then
echo "Installing dependencies..."
# conda config --add channels defaults
# conda config --add channels bioconda
# conda config --add channels conda-forge
conda create --name $ENV python=3.9 mafft snp-sites snp-dists quicktree -q -y