summaryrefslogtreecommitdiffstats
path: root/benchmark/bm_so_reverse_complement.rb
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-28 13:42:36 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-28 13:42:36 +0000
commit95a7ec14b2735632977ca91fa88d7eda915eeaa0 (patch)
tree6e5ef2d8e4b3b913524839cc1f2c37bb3f3f0c30 /benchmark/bm_so_reverse_complement.rb
parentfd03b336e9213ba61638912d6f1548915999c0f9 (diff)
downloadruby-95a7ec14b2735632977ca91fa88d7eda915eeaa0.tar.gz
ruby-95a7ec14b2735632977ca91fa88d7eda915eeaa0.tar.xz
ruby-95a7ec14b2735632977ca91fa88d7eda915eeaa0.zip
* benchmark/bm_so_fasta.rb: added.
* benchmark/bm_so_k_nucleotide.rb: added. * benchmark/bm_so_reverse_complement.rb: added. * benchmark/make_fasta_output.rb: added. * benchmark/prepare_so_k_nucleotide.rb: added. * benchmark/prepare_so_reverse_complement.rb: added. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'benchmark/bm_so_reverse_complement.rb')
-rw-r--r--benchmark/bm_so_reverse_complement.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/benchmark/bm_so_reverse_complement.rb b/benchmark/bm_so_reverse_complement.rb
new file mode 100644
index 000000000..5cf1a86ad
--- /dev/null
+++ b/benchmark/bm_so_reverse_complement.rb
@@ -0,0 +1,30 @@
+#!/usr/bin/ruby
+# The Great Computer Language Shootout
+# http://shootout.alioth.debian.org/
+#
+# Contributed by Peter Bjarke Olsen
+# Modified by Doug King
+
+seq=Array.new
+
+def revcomp(seq)
+ seq.reverse!.tr!('wsatugcyrkmbdhvnATUGCYRKMBDHVN','WSTAACGRYMKVHDBNTAACGRYMKVHDBN')
+ stringlen=seq.length
+ 0.step(stringlen-1,60) {|x| print seq.slice(x,60) , "\n"}
+end
+
+input = open(File.join(File.dirname($0), 'fasta.output.2500000'), 'rb')
+
+while input.gets
+ if $_ =~ />/
+ if seq.length != 0
+ revcomp(seq.join)
+ seq=Array.new
+ end
+ puts $_
+ else
+ $_.sub(/\n/,'')
+ seq.push $_
+ end
+end
+revcomp(seq.join)