54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
# by Artyom Bologov
|
|
H
|
|
,j
|
|
# Repeat the line 5 times
|
|
t0
|
|
t0
|
|
t0
|
|
t0
|
|
# Split the line in chunks of 50
|
|
1s/[ACGT]\{0,50\}/&\
|
|
/g
|
|
# Count every base by leaving X letters on each row
|
|
$-3s/[^A]//g
|
|
$-2s/[^C]//g
|
|
$-1s/[^G]//g
|
|
$s/[^T]//g
|
|
# Turn all letters into i's
|
|
$-3s/A/i/g
|
|
$-2s/C/i/g
|
|
$-1s/G/i/g
|
|
$s/T/i/g
|
|
# unary -> decimal (up to 10^10)
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
g/i/s/^\(i*\)\1\1\1\1\1\1\1\1\1\(i\{0,9\}\)/\1 \2/
|
|
,p
|
|
g/i/s/[ ]$/ 0 /g
|
|
g/i/s/[ ][ ]/ 0 /g
|
|
g/i/s/[ ][ ]/ 0 /g
|
|
g/i/s/[ ]iiiiiiiii\>/ 9 /g
|
|
g/i/s/[ ]iiiiiiii\>/ 8 /g
|
|
g/i/s/[ ]iiiiiii\>/ 7 /g
|
|
g/i/s/[ ]iiiiii\>/ 6 /g
|
|
g/i/s/[ ]iiiii\>/ 5 /g
|
|
g/i/s/[ ]iiii\>/ 4 /g
|
|
g/i/s/[ ]iii\>/ 3 /g
|
|
g/i/s/[ ]ii\>/ 2 /g
|
|
g/i/s/[ ]i\>/ 1 /g
|
|
g/[ ]/s///g
|
|
g/^0\{1,\}\([0-9]\)/s//\1/
|
|
$-3s/.*/A &/g
|
|
$-2s/.*/C &/g
|
|
$-1s/.*/G &/g
|
|
$s/.*/T &/g
|
|
,p
|
|
Q
|