Skip to content

Instantly share code, notes, and snippets.

View maasha's full-sized avatar
💭
HackHackHack...

Martin Asser Hansen maasha

💭
HackHackHack...
View GitHub Profile
@maasha
maasha / benchmark.rb
Last active August 29, 2015 14:10
Benchmark of Set vs Ruby Hash vs Google Dense Hash vs Google Sparse Hash
#!/usr/bin/env ruby
require 'set'
require 'google_hash'
require 'benchmark'
set = Set.new
hash = Hash.new(0)
ghashd = GoogleHashDenseIntToInt.new
ghashs = GoogleHashSparseIntToInt.new
@maasha
maasha / bp.rb
Created August 26, 2014 12:55
Example of sequence cleaning using Biopieces 2.0
#!/usr/bin/env ruby
require 'biopieces'
p = BP.new.
read_fastq(input: "in1.fq", input2: "in2.fq").
clip_primer(primer: "GTGCCAGCMGCCGCGGTAA", direction: :forward, mismatch_percent: 20, search_distance: 50).
clip_primer(primer: "GGACTACHVGGGTWTCTAAT", direction: :forward, mismatch_percent: 20, search_distance: 100).
trim_primer(primer: "GTGCCAGCMGCCGCGGTAA", direction: :forward, mismatch_percent: 20, overlap_min: 1).
trim_primer(primer: "GGACTACHVGGGTWTCTAAT", direction: :forward, mismatch_percent: 20, overlap_min: 1).
# Function to assert no difference between
# two given files.
function assert_no_diff
{
local src=$1
local dst=$2
if [ ! -f $src ]; then
echo_red "FAIL"
log "FAIL"
#!/usr/bin/env ruby
require 'pp'
prodigal_file = ARGV[0]
hmmsearch_file = ARGV[1]
hash_id = {}
File.open(hmmsearch_file) do |ios|
ios.each_line do |line|
@maasha
maasha / sortfq
Last active December 24, 2015 08:19
Script for alphabetical sorting FASTQ files by their identifier. Example: `bzcat unsorted.fq.bz2 | sortfq | bzip2 > sorted.fq.bz2`
#!/usr/bin/env perl
# Martin A. Hansen (mail@maasha.dk), September 2011
use strict;
use warnings;
use IPC::Open2;
use File::Which;
@maasha
maasha / reconstruct_index.rb
Created September 19, 2013 07:18
Ruby script for the reconstruction of deteriorated index in paired end Illumina reads. maasha/seq and maasha/fastq are from www.biopieces.org
#!/usr/bin/env ruby
require 'pp'
require 'maasha/fastq'
require 'maasha/seq'
map_file = "/home/maasha/Data/KimMagnussen/20130904_hiseq2a_rescue/sample_table.txt"
barcode_hash = {}
barcode1_hash = {}
@maasha
maasha / hamming_dist.rb
Last active December 23, 2015 08:19
Hamming distance calculator taking into account IUPAC ambiguity codes for comparing two nucleotide sequenced the snappy way.
#!/usr/bin/env ruby
require 'narray'
# http://en.wikipedia.org/wiki/Nucleic_acid_notation
nuc_str = "ACGTUWSMKRYBDHVNacgtuwsmkrybdhvn"
bin_str = "\x08\x04\x02\x01\x01\x09\x06\x0c\x03\x0a\x05\x07\x0b\x0d\x0e\x0f\x08\x04\x02\x01\x01\x09\x06\x0c\x03\x0a\x05\x07\x0b\x0d\x0e\x0f"
str1 = "ATCGatcg"
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
use Data::Dumper;
# Lea Benedicte Skov Hansen, Apr May 2013
# Variables that should eventually be defined by user!!
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
use Data::Dumper;
# Lea Benedicte Skov Hansen, Apr May 2013
# Variables that should eventually be defined by user!!
@maasha
maasha / gist:5567347
Last active December 17, 2015 06:39 — forked from leabenedicte/gist:5566826
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
use Data::Dumper;
# Lea Benedicte Skov Hansen, Apr May 2013
# Variables that should eventually be defined by user!!