|
|
regexdnaroutine main( input : string ) { #input = ''; seq = stdio.read( input ); ilen = seq.size(); t1 = stdlib.time(); seq.change( '(>[^\n]*[\n]|[\n])', '' ); clen = seq.size(); stdio.println( ilen, clen ); #stdio.println( seq[:300] ); t2 = stdlib.time(); variants = { 'agggtaaa|tttaccct', '[cgt]gggtaaa|tttaccc[acg]', 'a[act]ggtaaa|tttacc[agt]t', 'ag[act]gtaaa|tttac[agt]ct', 'agg[act]taaa|ttta[agt]cct', 'aggg[acg]aaa|ttt[cgt]ccct', 'agggt[cgt]aa|tt[acg]accct', 'agggta[cgt]a|t[acg]taccct', 'agggtaa[cgt]|[acg]ttaccct' }; for( f in variants ) stdio.println( f, seq.pfind( '<I>' + f ).size() ); t3 = stdlib.time(); subst = { 'B' => '(c|g|t)', 'D' => '(a|g|t)', 'H' => '(a|c|t)', 'K' => '(g|t)', 'M' => '(a|c)', 'N' => '(a|c|g|t)', 'R' => '(a|g)', 'S' => '(c|g)', 'V' => '(a|c|g)', 'W' => '(a|t)', 'Y' => '(c|t)' }; #for( f in subst.key(); r in subst.value() ) seq.change( f, r ); for( it in subst ) seq.change( it[0], it[1] ); t4 = stdlib.time(); stdio.println( t2 - t1, t3 - t2, t4 - t3 ); stdio.println(); stdio.println( ilen ); stdio.println( clen ); stdio.println( seq.size() ); }
view count 543 times
created at 2009-02-20, 16:32 GMT |
fu: Many thanks (Jul.04,04:29) klabim: fixed Hi, great, now my test works now :- ). (Jun.30,17:51) Nightwalker: Few suggestions (Jul.03,14:37) |