]> git.donarmstrong.com Git - bin.git/commitdiff
add seq_to_grep
authorDon Armstrong <don@donarmstrong.com>
Sat, 28 Dec 2013 21:22:35 +0000 (13:22 -0800)
committerDon Armstrong <don@donarmstrong.com>
Sat, 28 Dec 2013 21:22:35 +0000 (13:22 -0800)
seq_to_grep [new file with mode: 0755]

diff --git a/seq_to_grep b/seq_to_grep
new file mode 100755 (executable)
index 0000000..b88fdec
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+
+# code description
+# A    Adenine
+# C    Cytosine
+# G    Guanine
+# T    Thymine
+# U    Uracil
+# R    Purine (A or G)
+# Y    Pyrimidine (C, T, or U)
+# M    C or A
+# K    T, U, or G
+# W    T, U, or A
+# S    C or G
+# B    C, T, U, or G (not A)
+# D    A, T, U, or G (not C)
+# H    A, T, U, or C (not G)
+# V    A, C, or G (not T, not U)
+# N    Any base (A, C, G, T, or U)
+
+my %code_table =
+    (A => 'A',
+     C => 'C',
+     G => 'G',
+     T => 'TU',
+     U => 'TU',
+     R => 'AGR',
+     Y => 'CTUY',
+     M => 'CAM',
+     K => 'TUGK',
+     W => 'TUAW',
+     S => 'CGS',
+     B => 'CTUGBYWK',
+     D => 'ATUGDRWK',
+     H => 'ATUCHYWM',
+     V => 'ACGVRMS',
+     N => 'ACGTUYMKWSBDHVN',
+    );
+for my $code (keys %code_table) {
+    $code_table{$code} =
+        '['.$code_table{$code} . lc($code_table{$code}) .']';
+}
+
+for my $sequence (@ARGV) {
+    print map {exists $code_table{$_}?$code_table{$_}:$_} split //,$sequence;
+    print "\n";
+}