Sunday, November 23, 2008

Thursday, November 13, 2008

Join lines of two lines

I want to join the lines of two files. So I have file1:

A
B
C
D
E
F


and file 2:

G
H
I
J
K
L


and get:

AG
BH
CI
DJ
EK
FL


Use awk like this (robbed and modified from various places on the internet):

awk '{str = $0 ; getline < "run1717_1731_1.end2.pf.fastq" ; print str $0 > "run1717_1731_1_joined.fastq"}' run1717_1731_1.end1.pf.fastq

Wednesday, November 12, 2008

Replace a string in every other line starting with the first line:

sed '1~2s/foo/bar/g' filename


In my case, it was to reformat a Swift output file for use with MAQ:

sed '1~2s/:end1:/:end:/g' run1717_1731_1.end1.pf.fastq > run1717_1731_1.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_1.end2.pf.fastq > run1717_1731_1.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_2.end1.pf.fastq > run1717_1731_2.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_2.end2.pf.fastq > run1717_1731_2.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_3.end1.pf.fastq > run1717_1731_3.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_3.end2.pf.fastq > run1717_1731_3.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_4.end1.pf.fastq > run1717_1731_4.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_4.end2.pf.fastq > run1717_1731_4.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_5.end1.pf.fastq > run1717_1731_5.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_5.end2.pf.fastq > run1717_1731_5.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_6.end1.pf.fastq > run1717_1731_6.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_6.end2.pf.fastq > run1717_1731_6.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_7.end1.pf.fastq > run1717_1731_7.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_7.end2.pf.fastq > run1717_1731_7.end2.pf.fastq.c
sed '1~2s/:end1:/:end:/g' run1717_1731_8.end1.pf.fastq > run1717_1731_8.end1.pf.fastq.c
sed '1~2s/:end2:/:end:/g' run1717_1731_8.end2.pf.fastq > run1717_1731_8.end2.pf.fastq.c

maq fastq2bfq run1717_1731_1.end1.pf.fastq.c run1717_1731_1.end1.pf.bfq &> make_lane1_end1_bfq&
maq fastq2bfq run1717_1731_1.end2.pf.fastq.c run1717_1731_1.end2.pf.bfq &> make_lane1_end2_bfq&

maq fastq2bfq run1717_1731_2.end1.pf.fastq.c run1717_1731_2.end1.pf.bfq &> make_lane2_end1_bfq&
maq fastq2bfq run1717_1731_2.end2.pf.fastq.c run1717_1731_2.end2.pf.bfq &> make_lane2_end2_bfq&

maq fastq2bfq run1717_1731_3.end1.pf.fastq.c run1717_1731_3.end1.pf.bfq &> make_lane3_end1_bfq&
maq fastq2bfq run1717_1731_3.end2.pf.fastq.c run1717_1731_3.end2.pf.bfq &> make_lane3_end2_bfq&

maq fastq2bfq run1717_1731_4.end1.pf.fastq.c run1717_1731_4.end1.pf.bfq &> make_lane4_end1_bfq&
maq fastq2bfq run1717_1731_4.end2.pf.fastq.c run1717_1731_4.end2.pf.bfq &> make_lane4_end2_bfq&

maq fastq2bfq run1717_1731_5.end1.pf.fastq.c run1717_1731_5.end1.pf.bfq &> make_lane5_end1_bfq&
maq fastq2bfq run1717_1731_5.end2.pf.fastq.c run1717_1731_5.end2.pf.bfq &> make_lane5_end2_bfq&

maq fastq2bfq run1717_1731_6.end1.pf.fastq.c run1717_1731_6.end1.pf.bfq &> make_lane6_end1_bfq&
maq fastq2bfq run1717_1731_6.end2.pf.fastq.c run1717_1731_6.end2.pf.bfq &> make_lane6_end2_bfq&

maq fastq2bfq run1717_1731_7.end1.pf.fastq.c run1717_1731_7.end1.pf.bfq &> make_lane7_end1_bfq&
maq fastq2bfq run1717_1731_7.end2.pf.fastq.c run1717_1731_7.end2.pf.bfq &> make_lane7_end2_bfq&

maq fastq2bfq run1717_1731_8.end1.pf.fastq.c run1717_1731_8.end1.pf.bfq &> make_lane8_end1_bfq&
maq fastq2bfq run1717_1731_8.end2.pf.fastq.c run1717_1731_8.end2.pf.bfq &> make_lane8_end2_bfq&

Monday, November 10, 2008

xmodmap pipe key

I wanted that key in the top left corner on the mac keyboard (US using a UK layout) to be pipe. In X this command:

 xmodmap -e "keycode 49 = bar bar bar"


Which remaps that key to pipe under all modifiers.

irssi and screen resize correctly

Do what Jimmy says:

[10:23] <@jtang> ctrl-a then shift f
[10:23] <@jtang> ctrl-a, shift-f
[10:23] <@jtang> that will do the trick

Friday, November 7, 2008

Reverse endianness in C++

Here you go kids:

///\brief reverses the endianness of a string
template <typename T> inline
void reverse_endian(T& t){
unsigned char* res = reinterpret_cast<unsigned char*>(&t);
unsigned char *temp = new unsigned char[sizeof(T)];
for(int n=0;n<sizeof(T);n++) {temp[sizeof(T)-1-n] = res[n]; }
for(int n=0;n<sizeof(T);n++) res[n] = temp[n];
delete[] temp;
}



Have fun yall!

Update: now with added working!