Skip to content

Instantly share code, notes, and snippets.

@lomereiter
lomereiter / readfile.d
Created May 4, 2012 14:15
D & ruby: std.stdio
import std.stdio;
import core.runtime;
extern(C) void lib_init() {
Runtime.initialize();
}
import std.conv;
import std.string;
import core.memory;
@lomereiter
lomereiter / log.txt
Created May 27, 2012 09:19
linking error, GDC
/tmp/ccqX2hrB.o: In function `_D19randomaccessmanager19RandomAccessManager13getAlignmentsMFmiiZS19randomaccessmanager19RandomAccessManager13getAlignmentsM87__T6filterS7319randomaccessmanager19RandomAccessManager13getAlignmentsM13__dgliteral14Z440__T6filterTS19randomaccessmanager19RandomAccessManager13getAlignmentsM360__T5UntilS7319randomaccessmanager19RandomAccessManager13getAlignmentsM13__dgliteral16TS19randomaccessmanager19RandomAccessManager188__T27disjointChunkAlignmentRangeTS3bai5utils4algo106__T20nonOverlappingChunksTS3std5range53__T11SortedRangeTAS3bai5chunk5ChunkVAyaa5_61203c2062Z11SortedRangeZ20nonOverlappingChunks6ResultZ27disjointChunkAlignmentRangeM6ResultTvZ5UntilZ6filterMFS19randomaccessmanager19RandomAccessManager13getAlignmentsM360__T5UntilS7319randomaccessmanager19RandomAccessManager13getAlignmentsM13__dgliteral16TS19randomaccessmanager19RandomAccessManager188__T27disjointChunkAlignmentRangeTS3bai5utils4algo106__T20nonOverlappingChunksTS3std5range53__T11SortedRangeTAS3bai5chunk5ChunkVAyaa5_61
struct Section {
this(QTabFile file, string tag) {
...
}
/// Allows to iterate over section lines with foreach.
int opApply(int delegate(string) call_line) {
...
}
@lomereiter
lomereiter / build_gdc47.sh
Created August 16, 2012 08:28
GDC 4.7.1 installation (DMD 2.059)
#!/usr/bin/env bash
mkdir -p gdc47/dev
git clone --branch gdc-4.7 https://github.com/D-Programming-GDC/GDC.git gdc47/dev
cd gdc47
mkdir downloads
cd downloads
wget ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-4.7.1/gcc-4.7.1.tar.bz2
wget ftp://ftp.nluug.nl/mirror/languages/gcc/infrastructure/mpc-0.8.1.tar.gz
@lomereiter
lomereiter / snpcaller.d
Created September 23, 2012 19:17
simple SNP caller
// How to build:
// rdmd -O -release -inline --build-only -Ipath/to/latest/sambamba/ snpcaller.d
//
// Usage: ./snpcaller input.bam > snps.dat
// (input.bam must contain MD tags)
import bamfile;
import reconstruct;
import splitter;
require 'benchmark'
require 'zlib'
require 'msgpack'
Genotype = Struct.new :location, :ref, :alleles, :prob
class Genotype
def to_msgpack(buf='')
[location, ref, alleles, prob].to_msgpack(buf)
end
@lomereiter
lomereiter / jb.R
Created November 20, 2012 14:34
JB statistic
jb.statistic <- function(x) {
x.mean <- mean(x)
deltas <- x - x.mean
len <- length(x)
cm2 <- sum(deltas ** 2) / len
cm3 <- sum(deltas ** 3) / len
cm4 <- sum(deltas ** 4) / len
skew <- cm3 / cm2 ** 1.5
@lomereiter
lomereiter / ldc-O3-release-inline.s
Created December 20, 2012 20:13
D: vector operation vs manual loop
...
movl $239, %edi
movq %r14, %rsi
movl $1, %edx
callq _arrayExpSliceAddass_k
...
LBB0_14:
xorl %eax, %eax
@lomereiter
lomereiter / fac_gmp.rs
Created January 14, 2013 01:22
Fibonacci and factorial functions in Rust using GMP bindings
extern mod gmp;
extern mod std;
use std::getopts::*;
use gmp::Mpz;
use num::Num::from_int;
use std::time::precise_time_s;
fn factorial(n: uint) -> Mpz
{
unittest {
import std.conv;
import bio.gff3.reader;
import bio.gtf.reader;
import bio.gff3.writer;
import bio.gff3.validator;
void main() {
// Keeps all comments and pragmas -- this is cheap.
// If user doesn't need them -- std.algorithm.filter to the rescue!