Skip to content

Instantly share code, notes, and snippets.

View konrad's full-sized avatar

Konrad Förstner konrad

View GitHub Profile
@konrad
konrad / get_bosc_tweets.py
Last active May 6, 2016 19:50
An example how to get all tweets containing a hashtag (here #BOSC2015) and storing each tweets as JSON string.
from TwitterSearch import *
import json
try:
tso = TwitterSearchOrder()
tso.set_keywords(['#BOSC2015'])
# Please replace with your credentials
ts = TwitterSearch(
consumer_key='REPLACE_ME',
consumer_secret='REPLACE_ME',
# Problem: You have a NCBI GEO accession and would like to get the URL of the SRA file that contains the sequencing data.
# The sed command that removes the last characer of the string is essential as there is a invisible character that messes up the
# downstream steps otherwise.
GEO_ACCESSION="GSM1655353" # set you GEO accession here
SRA_FTP_URL=$(curl "http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=${GEO_ACCESSION}&targ=self&form=text&view=brief" 2>/dev/null | grep ftp-trace.ncbi.nlm.nih.gov | cut -c 32-| sed 's/.$//')
FTP_SUB_FOLDER=$(ncftpls ${SRA_FTP_URL}/)
SRA_FILE=$(ncftpls ${SRA_FTP_URL}/${FTP_SUB_FOLDER}/)
echo $GEO_ACCESSION ${SRA_FTP_URL}/${FTP_SUB_FOLDER}/${SRA_FILE}
@konrad
konrad / convert_video_to_spedup_mp3.sh
Created July 16, 2012 11:18
Script to convert videos to mp3 with higher speed
SPEED=1.5
for FILE in $@
do
WAV_FILE=$(basename $FILE .mp4).wav
WAV_FILE_SPED_UP=$(basename $FILE .mp4)_spedup.wav
MP3_FILE=$(basename $FILE .mp4)_spedup.mp3
ffmpeg -i $FILE -vn $WAV_FILE
sox $WAV_FILE $WAV_FILE_SPED_UP tempo $SPEED
lame $WAV_FILE_SPED_UP $MP3_FILE
@konrad
konrad / pubmed_search_bookmarkelt.js
Created March 22, 2012 12:04
Pubmed search bookmarklet - search marked text in Pubmed
/*
Use this as a bookmarklet by saving it as a web browser bookmark. Then mark a piece of text in a page and click the bookmark. The marked text will be searched in Pubmed.
*/
javascript:(function(){
var selected_text = '';
if (window.getSelection){
selected_text = window.getSelection();
}
else if (document.getSelection){
@konrad
konrad / generate_sam_test.py
Created September 28, 2011 18:03
A short test to generate a test SAM file with a long read
import sys
base_seq = "ACGT"
seq = base_seq * int(int(sys.argv[1])/len(base_seq))
spacer_length = 10000
header = "@HD VN:1.0\n@SQ SN:Mock LN:%s" % (len(seq) + spacer_length)
cigar_string = "%sM" % (len(seq))
genome_line = "62DJLAAXX_8:1:17056:1190 0 Mock 1 255 %s * 0 0 %s * NM:i:0 MD:Z:30 NH:i:1" % (
cigar_string, seq)
@konrad
konrad / Genbank genome downloader
Created April 2, 2011 17:14
A one-liner to get all the genome files form GenBank
# I always forget how easy it is to download all genome files from
# Genbank. Sure you can get any other file type (e.g. all protein
# file = *faa) instead.
wget -c -r -A "*fna" ftp://ftp.ncbi.nih.gov/genomes/Bacteria/
@konrad
konrad / send_msg_to_osw.py
Created June 5, 2010 15:17
A little example how to send messages to a OneSociaWeb server in Python.
#!/usr/bin/python
"""
FUNCTION: A little example how to send messages to a OneSociaWeb server
(http://onesocialweb.org). Heavily inspired by Tyler
Gillies' ruby script with the same purpose.
Copyright (c) 2010, Konrad Foerstner <konrad@foerstner.org>
Permission to use, copy, modify, and/or distribute this software for
@konrad
konrad / development.rb
Created June 3, 2010 16:10
Set CouchDB numbers of revision to a certain value
# Set CouchDB numbers of revision to a certain value
require "httpclient"
COUCH_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/couchdb.yml")
environment = "development"
server = COUCH_CONFIG[environment]["host"]
port = COUCH_CONFIG[environment]["port"]
db_root_string = "my_couch"
db_name = db_root_string + COUCH_CONFIG[environment]["database_suffix"]
client = HTTPClient.new
no_of_revisions = 10
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
@konrad
konrad / log_parser.rb
Created January 8, 2010 11:49
This "solves" a problem with the git log parser of CruiseControl.rb and ISO-8859-1 encoding.
module SourceControl
class Git
class LogParser
def parse(log)
@log = log
revisions = []
revision = nil
log.each do |line|
next if line.blank?