Skip to content

Instantly share code, notes, and snippets.

Avatar

Sam Nicholls SamStudio8

View GitHub Profile
@SamStudio8
SamStudio8 / awk
Last active Aug 29, 2015
Benchmarking reads over a pair of 42GB FASTQ files (~1.5 billion lines)
View awk
# awk 3.1.7
# 1hr 1m
awk '$1 ~ /@/ {++c} END {print c}' $1
# 1hr 1m
awk '/^@/ {c++} END {print c}' $1
# 55m
awk '{if (substr($0,0,1) == "@") { ++c }} END {print c}' $1
View keybase.md

Keybase proof

I hereby claim:

  • I am samstudio8 on github.
  • I am samstudio8 (https://keybase.io/samstudio8) on keybase.
  • I have a public key whose fingerprint is 1CA4 381B D09D 09D9 A250 0BFF 3DCD 66BB A142 ADA9

To claim this, I am signing this object:

@SamStudio8
SamStudio8 / backtrace.gdb
Last active Aug 29, 2015
Attempts to Extract Exceptions from `rapsearch` Core Dump
View backtrace.gdb
(gdb) bt
#0 0x000000318f632625 in raise () from /lib64/libc.so.6
#1 0x000000318f633e05 in abort () from /lib64/libc.so.6
#2 0x00000031926bea7d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib64/libstdc++.so.6
#3 0x00000031926bcbd6 in std::__exception_ptr::exception_ptr::operator=(std::__exception_ptr::exception_ptr const&) () from /usr/lib64/libstdc++.so.6
#4 0x0000000023b8dbf0 in ?? ()
#5 0x00007ffffffbb500 in ?? ()
#6 0x00000000004452e2 in boost::archive::basic_binary_iarchive<boost::archive::binary_iarchive>::init() ()
#7 0x000000000043d5d4 in CMergeUnit::Update(int, std::vector<CHitUnit, std::allocator<CHitUnit> >&) ()
#8 0x0000000000409a57 in CHashSearch::MergeRes(int, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
@SamStudio8
SamStudio8 / gdb
Created Feb 25, 2016
A silly I did once...
View gdb
Program received signal SIGSEGV, Segmentation fault.
_int_malloc (av=av@entry=0x7ffff7dd6b40 <main_arena>, bytes=bytes@entry=24) at malloc.c:3803
3803 set_head (remainder, remainder_size | PREV_INUSE);
(gdb) bt
#0 _int_malloc (av=av@entry=0x7ffff7dd6b40 <main_arena>, bytes=bytes@entry=24) at malloc.c:3803
#1 0x00007ffff7a9e950 in __GI___libc_malloc (bytes=24) at malloc.c:2914
#2 0x0000000000400812 in main ()
View amplyfy.py
"""
A scrappy esoteric glue program for Ben because he only really likes databases.
Given a tab delimited file where:
fields[0] ORF id
fields[1] 1-pos Start
fields[2] 1-pos End
fields[-1] Structural Prediction Code
Output a cast dataframe with a line per ORF, describing all structural predictions
for that ORF as a single string. Additionally enumerating each viable code's proportion
of that string as a percentage. You may alter CODES to add/remove prediction codes
View cascade.py
y3 = [86,90,90,68,86,79,79,78,61,62,45,60]
y2 = [81,81,79,79,77,73,55,55,86,84,83,81]
# 8 modules per band
BAND_SIZE = 8
BAND_DELTA = len(y3) - BAND_SIZE
# Extract BAND_SIZE best year 3 modules
y3_sorted = sorted(y3)
band_3 = y3_sorted[-BAND_SIZE:]
@SamStudio8
SamStudio8 / hearty.py
Created Jun 24, 2018
python-fitbit intraday heart
View hearty.py
import fitbit
import gather_keys_oauth2 as Oauth2
import datetime
CLIENT_ID = 'YOUR CLIENT'
CLIENT_SECRET = 'YOUR SECRET'
server = Oauth2.OAuth2Server(CLIENT_ID, CLIENT_SECRET)
server.browser_authorize()
ACCESS_TOKEN = str(server.fitbit.client.session.token['access_token'])
View krakkening.sh
PATH=$PATH:/home/ubuntu/ware/blast/ncbi-blast-2.7.1+/bin;
kraken2-build --download-taxonomy --threads 24 --db /working/databases/kraken2-test/
kraken2-build --download-library archaea --db /working/databases/kraken2-test/
kraken2-build --download-library bacteria --db /working/databases/kraken2-test/
kraken2-build --download-library fungi --db /working/databases/kraken2-test/
kraken2-build --download-library protozoa --db /working/databases/kraken2-test/
kraken2-build --download-library viral --db /working/databases/kraken2-test/
kraken2-build --download-library UniVec_Core --db /working/databases/kraken2-test/
kraken2-build --threads 24 --build --db /working/databases/kraken2-test/
View kraken-lonelykmers.py
import sys
THRESHOLD = 0.25 # reads must have 25% of their k-mers assigned
for line in sys.stdin:
fields = line.strip().split()
kmers_fields = fields[4:]
total_kmers = sum([int(x.split(":")[1]) for x in kmers_fields])
unassigned_kmers = sum([int(x.split(":")[1]) for x in kmers_fields if x[0] == "0"])
View get_pion_signal.sh
# A little bash script to download our juicy ONT PION data
# If this doesn't work for you, express your disappointment to @samstudio8.
# Use "EVEN" or "LOG" for $1, eg: `bash get_pion_signal.sh EVEN`
MODE=$1
echo "Fetching signal blocks. Don't be afraid to CRTL+C and resume if needed..."
for i in {00..25}
do
echo $i;
wget -c https://nanopore.s3.climb.ac.uk/Zymo-PromethION-$MODE-BB-SN_signal.tar.$i;
You can’t perform that action at this time.