免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bioinfor
打印 上一主题 下一主题

两道题,问了N多人,没结果,再问一下看看  关闭 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2004-12-11 09:14 |只看该作者

两道题,问了N多人,没结果,再问一下看看

这种应该重在算法。。。。。汗,做不出来

论坛徽章:
0
12 [报告]
发表于 2004-12-11 18:48 |只看该作者

两道题,问了N多人,没结果,再问一下看看

既然是试着玩..我也出出我的笨办法??

恩...
1.原文件不动,复制一个文件
2.将复制的文件按空格分割排列成列,并格式化为顶格
3.sort排序....
4.依次读这个文本的每行进变量,并和下一行匹配,如果和下一行相同,则变量值不变,并将该值记录到另一个文本里;如果此行和下一行不同,则变量变为新的一行的值
5.将得到的新文本的每行读入,取得在原文本中的位置(原文本根本是没动过的)和出现次数


btw:我怎么觉得这生物题有点象大学里有次建模考的一个题????

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2004-12-11 19:04 |只看该作者

两道题,问了N多人,没结果,再问一下看看

原帖由 "skylove" 发表:
既然是试着玩..我也出出我的笨办法??

恩...
1.原文件不动,复制一个文件
2.将复制的文件按空格分割排列成列,并格式化为顶格
3.sort排序....
4.依次读这个文本的每行进变量,并和下一行匹配,如果和下一行相同,则..........


4.依次读这个文本的每行进变量,并和下一行匹配,如果和下一行相同,则变量值不变,并将该值记录到另一个文本里;如果此行和下一行不同,则变量变为新的一行的值

这样不行吧,两行只是其中一部份字符重复,
TAAAAACTCGGGGT AAAAACTCGGGGAAAA
算重复吗?得一个一个字符来比较吧

论坛徽章:
0
14 [报告]
发表于 2004-12-11 19:48 |只看该作者

两道题,问了N多人,没结果,再问一下看看

给个比较类似的算法,大家看一下,只是介绍。
对于一个已知的基因序列片段如何在数据库中找出与之相近的记录,并标识出该片段在记录中的位置,是Blast中最关键的部分。由于Blast数据库中含有成千上万条基因序列记录,而每一条序列记录又含有成千上万个碱基,这些碱基以一定的编码方式存储在数据库文件之中,所以这种检索操作也是Blast中最为耗时的操作。

在Blast进行检索时,首先需要将数据库名称、需检索的基因序列数据以及以何种方式进行检索通知Blast,在获得这些参数之后,Blast将需检索的序列数据读人一个Bioseq的结构中,将数据库中所有的记录采用MAP方式映象到内存中,然后从数据库的第一条记录开始到最后一条记录逐条进行比较。在这种比较的过程中,Blast采用了一种窗口算法来进行这种匹配。这种算法描述如下:
      第一步,对匹配基因序列数据进行计算。我们假定匹配序列如下(采用核酸基因序列):
    >test
    AATAATAAAATAGGGCGTGC
则对应的核酸基因序列编码(Encode)如下:
    00 00 11 00 00 11 00 00 00 00 11 00 10 10 10 01 10 11 10 01
定义一个16比特大小的窗口(Window),16比特大小表示从窗口来看一个二进制串,只能看到该串的一个连续的16bits子串。窗口可以在二进制串上左右移动,每次移动步长为1byte,窗口的值为二进制子串的值,窗口的位置为窗口最后一位在二进制串上的位置。对于一个确定的二进制串和窗口来说,窗口的每一个位置都对应一个16bits的二进制整数值。下表计算出Encode上Window的所有窗口位置和相应的窗口值:
       Position of Window     Value of Window  Binary String of Window
       8                                 3120                    0000110000110000
       9                                 12480                  0011000011000000
       10                               49920                  1100001100000000
       11                               3075                    0000110000000011
       12                               12300                  0011000000001100
       13                               49202                  1100000000110010
       14                               202                      0000000011001010
       15                               810                      0000001100101010
       16                               3241                    0000110010101001
       17                               12966                  0011001010100110
       18                               51867                  1100101010011011
       19                               10862                  0010101001101110
       20                               43449                  1010100110111001

第二步,对数据库中的每一个记录序列数据定义同样的窗口,在匹配时顺序计算其窗口值,如果数据库序列数据的某一窗口值与匹配序列的窗口值列表中的某一项相等,则比较序列数据的前后部分,如果前后都相等,则找出了一个符合条件的子串,否则窗口在数据库序列数据中后移16bits,再顺序计算其窗口值。假定数据库的一个记录序列数据(核酸序列数据)如下:
    >Database Sequence
    ACTTTCAATAATAAAATAGGGCGTGCAACT
则对应的核酸基因序列编码(Encodebase)如下:
    00 01 11 11 11 01 00 00 11 00 00 11 00 00 00 00
    11 00 10 10 10 01 10 11 10 01 00 00 01 00 00 01
       定义如同匹配串的窗口(windowbase),开始计算窗口在位置8时的窗口值为2036,没有一个匹配串的窗口值与之相等;windowbase窗口下移16bits,再计算位置为16的窗口值为12480,他和匹配串窗口位置9的窗口值相等,这时比较前后剩下的序列数据发现该数据库序列数据包含一个与待匹配序列完全相同的序列片段。如此类推直到找出所有满足条件的记录。

论坛徽章:
0
15 [报告]
发表于 2004-12-12 12:11 |只看该作者

两道题,问了N多人,没结果,再问一下看看

T AAAAACTCGGGG T AAAAACTCGGGG AAAA

为什么重复的是AAAAACTCGGGG
而不是TAAAAACTCGGGG

T怎么没算进去?
这是什么算法?

论坛徽章:
0
16 [报告]
发表于 2004-12-12 12:26 |只看该作者

两道题,问了N多人,没结果,再问一下看看

注意: 下面的例子中的 STR_MAX 及 STR_MIN 可根据需要设定。



  1. #!/bin/awk -f
  2. #
  3. # A script can be used to check any repeat pieces of nucleotide sequences.
  4. #
  5. # Design: lighspeed
  6. # Date: Dec. 12, 2004
  7. #
  8. # Usage::  $0 datafile
  9. #
  10. # Variables:
  11. #
  12. # left - a repeat string to be matched
  13. # right - the right side string used to match any left in it
  14. # rev_left - reverse string of left
  15. # rev_right - the right side string used to match any rev_left in it
  16. # flag[position] - an array element which will be set if the string in the position is matched
  17. #

  18. {
  19.   L=length($0)
  20.   STR_MIN=10
  21. #  STR_MAX=int(L / 2)
  22.   STR_MAX=20
  23.   print "------------------- Line# "NR" --------------------\n"

  24.   for ( Str_Len=STR_MIN; Str_Len <= STR_MAX; Str_Len ++ ) {

  25.     for ( i in flag )
  26.       delete flag[i]

  27.     for ( Position=1; Position <= L - 2 * Str_Len + 1; Position ++ ) {

  28.       if ( Position in flag )
  29.         continue

  30.       count=0
  31.       pos=Position
  32.       offset=Position
  33.       rev_offset=offset
  34.       rev_count=0
  35.       rev_pos=""
  36.       rev_left=""
  37.       left=substr($0,Position,Str_Len)
  38.       if (index(left,"A")==0 || index(left,"C")==0 || index(left,"G")==0 || index(left,"T")==0 )
  39.         continue

  40.       right=substr($0, Position + 1)

  41.       for ( i=length(left); i>=1; i-- ) {
  42.         rev_left=rev_left""substr(left,i,1)
  43.       }

  44.       rev_right=right

  45.       while ( Str_Len <= length(right) ) {
  46.         i=index(right,left)
  47.         if ( i > 0 ) {
  48.           count ++
  49.           j=offset + i
  50.           pos=pos";"j
  51.           flag[j]=1
  52.           right=substr(right, i + 1)
  53.           offset+=i
  54.         }
  55.         else
  56.           break
  57.       }

  58.       while ( Str_Len <= length(rev_right) ) {
  59.         i=index(rev_right,rev_left)
  60.         if ( i > 0 ) {
  61.           rev_count ++
  62.           j=rev_offset + i
  63.           if ( rev_pos == "" ) {
  64.             rev_pos=j
  65.           }
  66.           else
  67.             rev_pos=rev_pos";"j
  68.           flag[j]=1
  69.           rev_right=substr(rev_right, i + 1)
  70.           rev_offset+=i
  71.         }
  72.         else
  73.           break
  74.       }

  75.       if (count > 0 )
  76.         match_number[Str_Len] ++

  77.       if (rev_count > 0 )
  78.         rev_number[Str_Len] ++

  79.       if (count > 0 || rev_count > 0) {
  80.         print  left, "Length="Str_Len, "Position="pos, (rev_count >0) ? "Rev_Position="rev_pos : ""
  81.       }
  82.       
  83.     }
  84.   }
  85.   print ""
  86.   print "Summary of Line# "NR
  87.   print "------------------"
  88.    for ( i in match_number ) {
  89.     print "String length :: " i "  Matched Strings :: " match_number[i]
  90.     delete match_number[i]
  91.   }
  92.   print ""
  93.   for ( i in rev_number ) {
  94.     print "String length :: " i "  Matched Reverse Strings :: " rev_number[i]
  95.     delete rev_number[i]
  96.   }                        

  97. }
  98.        
复制代码



数据文件来自 DNA  NCBI35 的片段。 处理成 10000 个字符的单行文件。


  1. # cat datafile

  2. TAAAATGTGTAATCAACTAATACAAAGCAAGTTTTGTACTTTTTGTTGAATTTATTACTAAGTAT
  3. TCTTTTTGATGCAATTGTAAGTAGAAATATTTATTTATTAAGAGATAGGGTCTTACTGTGTGGCC
  4. CAGTATGGCCTTGAACTCCTGGGCTTAAGACATCCTCCTGCTGCAGCCTCCTGAGTAACTGAGAT
  5. TACAGGTGTGCACCACCTCGCCTGGCTCAGAATGGTTTTCTTAACTTCATTTTTAGATTGTTCAC
  6. TGTGAATATATCGAATTACAATAGTTTAGGCTGGGCATGGTGGCTCACGCCTGTAATCCTAGCAC
  7. TTGGGGAGGCTGAGGTGGGTGGATAACTTGAGGCCAGGAGTTTCAGATCAGCCTGGCCATCACAG
  8. AGAAACCTTGTCTTTACCAAAATCACAACAAATTAATTAGCTGGTTGTGGTGGTGCATGCTTGCA
  9. ATCCCAGCTACTGGGGAGGCTGAGGTACGAGAATTACCTGAACCCAGGAGGTGGAGGTTGCAGTG
  10. AACCGAGATAGTTCCACTGCACTCCAGCCTGGGCGACAGAACGGTTTTTGTATGCTTCAACCTTA
  11. CTGAACTCATTTATTCATTCTGATATTTACTTTAGTGGATTCTGTATGATTTTCTATATGCAAGA
  12. TGCTGTCATTTGCAAATAGAGATAGTTTTTCTTTTTTTGTTTCCAATCTGAATGTGTTTTATTTC
  13. ATTTTCTTGCCTAATGCTCCTCATTAGTTTTCAATGTTGCATAGTATTTTATTGCATGGACGCAC
  14. CATAATTACTTTTACCAATCTCTTATTGATGGACATGAAGGTTATTTCCAAACTCTTGTGGTTAT
  15. AACAATGCTGTAATAGATAACCTATTACAAAGAACAGTTCTCAACTCTTTTGGTCTTGGGACTAC
  16. TTTACCTATTTATGTATAAGTTTCAAGTTTGGGCTTAGAAAGAATTTAATAATCATGCTAATTTT
  17. GTTTTGTTTTCTTTTTTTTTACTCCTGGACCCAAGCGGTCTTCCCACCTCAACCTCCCAAGTAGC
  18. TGAGACTACAAGGGTGAACCATCACCCTGGGTAATTTTTAAATTGTTGGCTGGGCACAGTGGCTC
  19. ACGCCTGTAATCCTAGCACTTTGGGAGGCTGAGACAGGCGGATTACCTGAGGTTGGGAGTTCAAG
  20. ACCAGCCTGGCCAACATGGTGAAACCCTGTCTCTACTAAAAACACAAAAAATGAGCCAGGTGCAG
  21. TGGTGCGTGCCTGTAATCCCAGCTACTCAGGAGGCTGAGGCAGGAGAATTGCTTGAATTCAGGAG
  22. GTGGATGTTGCGGTGAGCTGAGATCGTGCCACTGAACTCCAGCCTGGGCGACAGAGCAAGATTTC
  23. ATTTCAAAAAACAAAAAGAAAAAAATTTTTAAAAATTGTTTTGAAGAGATACGGTTTCCCTATGT
  24. TGCCTAGGCTGGTCTCATGCGATTCTCCTGCCTTGGCCTCCCAAAGTGTTGGGATTATAGACATG
  25. AGACACCACAAATTTAAACAAGGACTTTTTTTATTTTTTAAAGAGATTACTTTTTCTGAGTAAAC
  26. AAGGACTTTTAAAACAAGGTACTAAAAATCTGGCTGGGCGTGGTGGCTCGCTCCTGTAATCCCAG
  27. CACTTTGGGAGGCTGAGGTGGGCGGATCACGAGGTCAAGAGATCAAGACCATTCTGGCCAACATA
  28. GTGAAACCCCGTCTCTGCTAAAAATACAAAAATTAGCTAGGTGTGGTGGTGCACGCCTGTAGTCC
  29. CAGCTGCTCAGGAGGCTAAGGCAGGAGAATCACTTGAACCCGGGAGGCAGAGGTTGTAGTGAGCC
  30. GAGATCTCACCACTGCACTCCAGCCTGGCAACAGAGTGAGATTCCGTCTCAAAAAAAAAATTTTT
  31. TTTAATAAATAAATAAATAAAAATCTTGAAATTTTTATTAGGTCCTGGTGTTTCTAATTTTAATA
  32. TGATTTAGTTCTCAAGTGCTAGTTAATACTTCATTAATCAGCCAGATGGAAGTGGGGATACTATG
  33. GAAACAGCATAGGCAAAGCTTAAAGATAAATGAGACCATGGTTTGAAAATATAGGGTGGCATGCG
  34. CTTTGGTTCAAGGCAATTTGATCATCACAACAATTTGGCTTAAACAGCACTTTGGTTGAAAATGA
  35. ATATCCCCTAGTTATGTGTTTTTCAAGTATTGGTCATTTTGGTATATCATGAGTTGTTTTGCAAA
  36. CTTTTGTGCCAAAGTTTTCAGGAAAACTTTCTAATATTTGCTTTTGTGTTTCTAACTGATTTTCA
  37. GAGAAGTTGTAATTTTGATGTTTTTTCCTTTTAGTGAGCATGCTTTAACAAAAAACAATAACAGA
  38. AACTGTGTCAAAGAAAAGGACCTGTAATCTTCAGGGTTTGTAGTCTTTTTCCTCTTAAAAAACCC
  39. TTTTCCTAATTAATGGCAGTTACATCTGCATGGCTGGTTTGGGTAAGTCTTCATTTTGTTGTATT
  40. GCTGAGTAACAGTCAACAAAGGTTTATCAACTCTTGGTTAAGGGTTCCTTTCATGTTGTGAGTAA
  41. ACATGAACAATATAGGATCTTATCCTTTTAAGCTATCATGCAAGAAACATGTGAGGTCTCTTAAA
  42. AATTCACTGTGCTGGCCGGGCATGGTGGCTCACGCTTGTAATCCTAGCACTTTGGGAGGCTGAGG
  43. TGGGTGGATCACTTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT
  44. ACAAAAATACAAAAATCAGCCGGGCATGATGGCGGGCAGGTGCTTGTAATCCCAGCTACTTGGGA
  45. GGCTGAGACAGGAGACTCGCTTGAACCCGGGAGGCGGAGGTTGTAGTGAGCCGAGATTGTGCCAC
  46. TGCACTCCAGCCTGGATGACAGAGCAAGACTCCATCTCAAAAAAGAAAAAAAAAAAAAATTGTGC
  47. TGGCTGGGCTCAGTGGCTCACACCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGTGGATCAC
  48. CTGAGGTCAGGAGTTCAAGACCAGCCTGGCCAACATGGTGAAACCCCATCTCTACAAAAATACAA
  49. AAATTAGCCAGGCATAATGGCGAGTGCCTGTAATCCAAGCTACTTGGGAGGCTGAGGCAGGAGAA
  50. TCGCTTGAACCCGGGAGTGAGCCGAGATGGCGCCACTGCACTCTAGCTTGGGTGACAACAGCAAG
  51. ATTCTGTCTCAGAAAAAAAAAAAAAATTAACTGTGCTTATAAATGGGAGCTAAATTAGGAAAAAA
  52. ATAAAAAGTAAAAAGAAAATGAAAATAAAAATTTAAAAAATATATTAACAAATTACCTGTCCTAA
  53. GGTAAAATTCTTTTTTTTTTTCTTGAGACGGAGTCTCGCTCTGTCGCCCACTCGGAAAGGAGTGC
  54. CAATCTCGGCGTGAAAATGTGTCTGATGCGTATGCACCTGAGCTAGAAAGCCCAAAGACTGCTAA
  55. GAAGCATGTGAGGGCTCAGAAACAAACATGTTTGGGCTTCGAAAGCCTGTTTTTGGAACCACTTT
  56. CCCTTGTCTGCAAGGCAGAGGGAGGGAGGTACTCTGTTATTTCTAAGTCTCTCTTGAGCTCTTAC
  57. ACTGTGCAAGCCCATGAACGTATTTAATCGTGCATTAGACAATTGTTTTTAATCTATGCCCTGCC
  58. TCTCCCAAGATCAACCTTTCCCTGAGATCGGGGCCCCCTCTGGGTGCACAGGGATATTTTTATTT
  59. TTTGAGTTGGAGTTTTGCTCTTGTCACCCAGGCTGGAGTGCAATGGCATGATCTTGACTCACTGA
  60. AACCTCTTCCTCCCGGCTTCCAGTGATTCTTCTGCCTCAGCCTCCCAAGCAGCTGAGATTACAGG
  61. CATGCACCACCACACTTCGGTTAATTTTTGTATTTTTAGGAGAGATGGAGATTCACCATGTTGGC
  62. CAGGCTGGTCTTGAACTCCTGACCTCAGGTGATCCTCCCGCCTTGGCCTCCCAAAATGCTGGGAT
  63. TATAGGCGTGAGGCACCGTGCCCAGCCCATAGGGATATTTTTATATACTTTCCTGCCCCATGGGT
  64. CAACTGTTCTTGAACCAAAGAAACAAGAGGCGGGGAAGTTATAGGAAGCTTTTAAAATATGCTTC
  65. TGTGCAGCACTGCTCGCAGCGTGTCACAGATGTGCGGTATTGGAAGACGAAGGTGAAACTGCATG
  66. GAGATGATTGTGTGGGGGATGAGGAGGTGGTGGGTAGGGGACTTGGCTTTCTTCACACAAAGACA
  67. TCCAGGCAAATGGTAAGTCCAAAAGCCCTGTGACAGATAATGGCCATTGTTCCTGCAGGGTGACT
  68. CTTTTCTCTTCTTTTTTTTCTTTTTGAGGCGGAGTCTCACTCTGTCATCTATGCTGGAGTGCAAT
  69. GGTGCGATCTTGGCTCACTGCAACTTCCGCTTCCCGGGTTCAAAGTGATTTTTCTGCCTCAGCCC
  70. TCCCGAGTAGCTGGGACTACAGGTGCGCGCCACCATGGCCAGCTAATTTTTATATTTTTAGTAGA
  71. GACGGGGTTTCTCCATGTTAGCCAGGATGGTCTCGATCTCTTGATCTCGTGATCCACCCGCCTCA
  72. GCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGGCGCCCGGCCCTATACACATGATTTTG
  73. AACATACTGACAGATGGAGAAAACCACTTTGGAAAAGATACTTCACATGTTCTAGAGACGATTTA
  74. AACCATTAAGCATTCTATGAAGCTTCTGAAGGTCTGTCAGATTTTAAATGACAACAGTGAAATTT
  75. TAAAACAAGAACAGAAGTCAGCACCAAAGCTAGTTTAACATTAATAATAAGTGAGCCAATAAATA
  76. GGTCTATGTTTGCCCAGGCAGGTTTTGCTTATTATGTCAGTTGGAAAGCCAGAAGGAAACTGGTT
  77. TTAACTCTTAATATAACCTGTATCATGACACCATCACTTTACCAGAAATGTAGCTGATGTCAGCA
  78. TAAGACTGAGACAGTTTACATTTAAAACTGTTGTTTCCTTTCCAACTATTTTCATAATTCATTCA
  79. TGGTATAGGATTGAGACTATTTCCTTAAACAGAAAAAAATGGGTAATTAACATTGAGAACTTTCC
  80. ATGTGCCAGATACTGTATGAACTGTCTTAATTTTCATAGCCACCCTGCAAGATATTATCCTCATC
  81. TTTTTAGAGGAAGAAACAAGTTTCAAGAAATGAAGTAGGTTTTCTAAGGCCACAGCTATAGTAAA
  82. GAGGTGGAGCTGACATTCAAGCTTGGATATGAATTATTATAATTTCCACAGCACTACACAGCTGT
  83. CATTTTCTCTACCTGCAAAACTAAATAAATACTGTTAAAAATAAAAGATGATCTCCAAGATCTCT
  84. AAACATTAAAATTTTACAATAAACTGGTTGAGGTGACACATGCCTATATTTTCAGCTACTCAGGA
  85. GTTTGAGACTGGCCTGGACAACATAGCAAGACCCTGTCTCTAAATTTAAAAAACAAATTACAATG
  86. AGATAATCTTAGACCAGAGAAAGGAAAGTGAAATAGCTATTTGGATTATAAACTGTTTTAGTAAC
  87. TCAAATGTAATGTGTGGTGGTGACAATATCTTTGATTCCTGGGAAGGTCATTGTGAAAGGGAATA
  88. GAAAATGCCTTGAAGTCAAAATATAAGGCTCTCAAATAGAAAAATAAATATAACATTTAAGTATT
  89. ATCAACAGAGAACCAAGTTAGAAAAAACTAGTTATAGTCTGAAACAATGCTGTTTAAAAGACTGC
  90. AGTCACCAGTGTAAACTGACTCAGGCAACACTTCCCAGGGTCCATGCCGTGGACAACTGACTAAT
  91. CTCTCTATAAACAATTCTTGACACTAGATAGGCCTTTACTAAGAGCAACCAGAGACAGAAATTAG
  92. TATCGACAGTGGAGTTTTAAAATCACACTTAAAAAAATATTATTGGCTGGGCACAGTGGCTCACG
  93. CCTGTAATCCCAGCACTTTGGGAGGCTGAGGCAGGCAGATCATGAGGTCAGGAGATCAAGGCTAT
  94. CCTGGCCAACATGGTGAAACCCCGTCTCTATTAAAAATACAAAAATTAGCCGGGCGTGGCGGTGA
  95. GTGCCTGTAGCCCCAGCTACTTGGGAGGGTGAGGCAGGAGAATTGCTTGAACCTGGGAGGCGGAG
  96. GCTACAGTAAGCCGAGTTCGTGCCACTGCACTCCAGCCTCGGCGACGGAGCGAGACTCCCTCTCA
  97. AAAAAAGAAAAAAAAAATGTAGATTATATTCTGTGAATATTACATCACAGAATAAAACTCTGGAT
  98. ATAATACATGGGAGAGTTAATATCCAGAAAGACATTGTGCATTTTTGGTCTAAGTTTCATGAGAC
  99. AAAATATTATTTTCTTTTCTGAGACTCAATTCTTTCCCAAAGGGATCAGTTCTCTTAAGTGGACC
  100. TTTTTACAGCCTTTCAGCTGGCTCAAAAGATGAGTTTTGGCGAACAAGATTATCGATACTCACTG
  101. AGCAAGTGGTAGTTAGAATCCCTTTCATATTTGAAGGTCAAACGGCCATAGCTGACATGATTTAG
  102. ATTCTTCAGCCACTCAAAGTAAGATACTGTCACTCCTCCAGCATTCAAGTAGAGATCCTATGCAC
  103. AAAAATAAGACAAAGAAATTAGAAGATGATGGTTTTCGTAAAAGCTGAAAATGAACCTAAGACCT
  104. TAATTTCAATACCAAGGTAGACTGGACTTCAAATATCGCAAATATATTTTAGCCAGTATCAGGAA
  105. TTTCACACTTAATTAACACTCCTTCCCATCCCACCCAATTCCATCTAAGGCTTTTTCTATTTAGG
  106. AAAAAAAAAAATCATTTTTTGGCTTATTAATCAAGGAAAGTTAATAATCTTTGGTTAGAGCCTCT
  107. TCTCTACCAGAAGTTAGTTCTCAGACTAAATGGCTTGCCCACCAACCAGTTGGACTGGACTGTCC
  108. ACAGGGCCTCTCAGAAGACAGGATTCTTTCTCCTATTACCTAAGGGTAGCCCATTTCAGTTACAT
  109. TAAATGTCTTAAGTGCTTTCAGCAAAGGGGGTTCTTTAAAATATATTCCAAGCCCACATTAATTT
  110. CTAGTAACTTTTTGGTGTAGACTCATTTTTACTTGCTAAAAAACCTGAGCACGTGTTCCTCATAT
  111. TAGTTTTCTGAGTAAAGCTGGAAAGGGCACTTGAAATGCATAAGGTTAGGAATCATATAGAAAAT
  112. CTTAAGAGCTTTAGTTAGAATAGTGTTTCTAACACAGTACACATTTATATAACCAGACTCTTAGA
  113. AGGCTAAAGACATTCAGTAAAGAGCCTGAAATTGGAATAAATGTTTCGATCAAAGTGAAAATTAA
  114. CAGGCTTAGAATTAACCATGCTTCTACTATATTTTCTCAAAAGTGAAAAAGATGAATTCACTAGA
  115. GCTTGGAGACTAATAATTCCTCTCTTCCTCCAAATTCCTTGCAAAAGACTATTATGATTCTAAGT
  116. ACATATAAAGCCTAATAAATATAGATGACTTACTGGAATAACCATAATGTTTCTCTCCAGGAAGA
  117. TCTTGTCAGCTTCTGGAGTTGTTGGCCCATTGGCACCTTCAGCAATGATCTGCAAGAGAGTCAGG
  118. AACATAGAGAAATGCGAACACCACCGTCAAATCCCCTCCACTGAGGGCAAGAGATGTGCATATAT
  119. GAACAAGGGGCTGTGGGGAGAAGCACAGTTTCAGTTAAAGTTAAATAGAGGTTATTTTTCTCTGC
  120. CAAGTGTATAAAACTACCTTTCACTTTTCTATTTATCTAGGTTTTTTTTTTGTTTGCTTGTTTTT
  121. TTTTTTTACAGGAGTGTCAGGCAGATGCGTTTGTTTTGGTAATGGTTGCACAACTCTGTGCCGGT
  122. AGCTAAAAGCCATTAAATTATGTACCTTAAATGGGGGAACTGTATGGTATGTGCAGTATGTGCCA
  123. ATAAAGCTGCTAAAAAGAAAGAGAAAACTCAATCAGACTCTTCTATGACCCCCCTAACGTCATTC
  124. ACATTGATAATGTTGGTTCTGGTTTCTATAATGTTGTCACCTTGGCTTTGACTCTGGGTGCGTTG
  125. GATTTGGTCAACTGCTTCTCACTGGCAGCTGGGATCAGTATGTCACAGTCGGCCTCCAAGATGCT
  126. TCCTTCATAGGGCTTTGCCTTGGGGAAGCCCAGAATGGACCCATGTTGCTGCCATTGATTGAAAA
  127. TCACAATTAATAGCTGCACCAGAGTTTTAAATATTTATATTTAGTGTCTATGCTATAAAAATGTA
  128. TTAATACCAATTTGAAGTCTTCCAGTTCCTTTGGGTCAATACCATCTGGATTCCATATACTCCCA
  129. TCAGACTCACCAACAGCAATACATTTAGCACCAAAACGATGTAAATATCTCATAGAGTGCAGGCC
  130. CACATTACCAAATCCCTGTGAAGAACAATTACCCATAACACAAAAATTAAAGTCCTGGTATAGAC
  131. AGCAAGAGTCATATTTTGACCAATGTAAATCCATACTCTGTTTATTTAGAAGCAATTCTCAAAAT
  132. TCTTTTGCCAAAAGAAACAATGTACTAACTGGTTTCTCTTCAACAATAAAATTCTCTGTTTAAGA
  133. ATGTGATGAGCGGGCATGGTGGCTCACGCTTGTAATTCCAGCACTTTGGGAGGCTGAGGCAGGTG
  134. GATCACTTGAGGTCAGGAGTTCGAGATCAGCCATGGCCAACATGGTGAAACCCCGTCTCTACTAA
  135. AAATACAAAAATTAGGCATGGGGTCCGTGCCTGTAATCCCAGCTACTTGGGAGAATGAGGTAGGA
  136. GAATCACTTGAACCTGGGAGGTGGAGGTTGCAGTGAGCCGAGACTGCACTCCAGCCTGGGCAATA
  137. GGGTGAGACTCCATCTCAATCAATCAATAAATGGCAGTGGTGTTAAGTACACCACCACTTTTTGC
  138. TTTTTTTTTTTTTTTTTTTTTGATGGAGTTTTGCTCTTGTTGCCCAGGCTGGAGTGCAATAGCGG
  139. AATCTCGGCTCACCACAATCTCTGCCTCCCAGGTTCAAGCAATTCTCCTGCCTCAGCCTCCTAAG
  140. TAGCTGGGATTACAGGCATGCGCCACCTCGCCTGGCTAATTTTGTATTTTTAGTAGAGACAGGGT
  141. TTCTCCATGTTGGTCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCACTTCAGTCTGCT
  142. AAAGTGCTGGGATTACAGCTGTGAGCCACAGTGCCCGGACTTTCTTTTTTTTTTTTTTTTGCCAA
  143. TTTGTATTTTATTTTTGCTAATTTAAAAAATAGTTAATAGAATATCAGAAATACTGAACATTATC
  144. ATTTCCATAAATGCAAGAGTGTATACATTTTCCACACACTGAGTACTAGCTAGATTTTCTATGAT
  145. AAACTCTGACCACTTCTTCAGGCAATTCATGTACTTACTTCAGCATTATCATTAATGATGAAGGT
  146. TCTAGAACCATCATGAACAAGGGTCCCATCTTCACACAAGTTACTTAACTGCTGGGAGGCTCTAT
  147. TTCATCTTATGTAAACTACAGATAATACCTACTCACCTCAAGGGTATATCAAGAGTTTATGTAAG
  148. CTAAGTTTGTAGAAAGTAGTTAGCACAGTGCCAGGAAGGGTCCAAGAAGAAATGGTACTTACTAT
  149. GAAATATTTGTACGTATATATGTATGCATGTTAATGAGCTCTTATTAGCTGTGTTCATTAAAGGT
  150. TTTCTCTATCCTGTGATTTGCTTTTAGATTTTGGAATACATTTCATTGTGCACATTCCATTTGTA
  151. TTATTAATATAACAATATTTATTACTATTATTATTATCATCATCAATTCAATCACATCTACTGTA
  152. TCCCTGATGATGACCATGATTCCTTTAATAATCATAAAACTCTCTTCCCTTCATCACGGGGTAAA
  153. TAACCTATCACAATGCTGTAAGTCTCCATCAGCACCCCAGGCTGCCCCTGCTGACTTACCAGATC
  154. TGCTACTTCAGCCAGATCAATCATCATGTTAATGTCACACCCACATTCAATAATGGTGAGTCGGA
  155. GCTTTTTACCTGTAAGTGAAAAAGATAAAAATTTTACTTTAAAAAGACCCTGAAA

复制代码




运行:

# time ./1 datafile > report

real    1m14.81s
user    0m50.65s
sys     0m0.13s

# wc -l report

    3355 report


下面是 report 文件中的部分内容:



  1. # cat report

  2. ------------------- Line# 1 --------------------

  3. TAATCAACTA Length=10 Position=10 Rev_Position=12
  4. TTTATTACTA Length=10 Position=51;9703
  5. GGAGGCTGAG Length=10 Position=330;470;1129;1265;1633;2655;2793;3102;5936;8564
  6. AAAAAAAAAA Length=10 Position=1871;2906;2907;2908;2909;2910;3198;3199;3200;3201;3202;6183;6761;6762 Rev_Position=2906;2907;2908;2909;2910;3198;3199;3200;3201;3202;6183;6761;6762
  7. GTAGTGAGCCGA Length=12 Position=1811;2838
  8. AATAAATAAATA Length=12 Position=1889;1893 Rev_Position=1890;1894
  9. CCACTGCACTCCA Length=13 Position=534;1830;2857;6133
  10. GTTTTTCTTTTTT Length=13 Position=675 Rev_Position=4304
  11. GTAATCCCAGCTAC Length=14 Position=1248;2776;8678
  12. CCTGTAATCCTAGCA Length=15 Position=310;1109
  13. GGATCACTTGAGGTCA Length=16 Position=2671;8580
  14. CGGGCATGGTGGCTCAC Length=17 Position=2617;8526
  15. CACTTGAGGTCAGGAGTT Length=18 Position=2675;8584
  16. CCAGCCTGGCCAACATGGT Length=19 Position=1172;2698;3011
  17. CTTTGGGAGGCTGAGGCAGG Length=20 Position=5931;8559
  18. TTTTTTTTTTTTTTTTTTTT Length=20 Position=8841;8842 Rev_Position=8842

  19. Summary of Line# 1
  20. ------------------
  21. String length :: 10  Matched Strings :: 541
  22. String length :: 11  Matched Strings :: 438
  23. String length :: 12  Matched Strings :: 372
  24. String length :: 13  Matched Strings :: 329
  25. String length :: 14  Matched Strings :: 293
  26. String length :: 15  Matched Strings :: 258
  27. String length :: 16  Matched Strings :: 226
  28. String length :: 17  Matched Strings :: 200
  29. String length :: 18  Matched Strings :: 171
  30. String length :: 19  Matched Strings :: 146
  31. String length :: 20  Matched Strings :: 124

  32. String length :: 10  Matched Reverse Strings :: 142
  33. String length :: 11  Matched Reverse Strings :: 69
  34. String length :: 12  Matched Reverse Strings :: 40
  35. String length :: 13  Matched Reverse Strings :: 25
  36. String length :: 14  Matched Reverse Strings :: 15
  37. String length :: 15  Matched Reverse Strings :: 7
  38. String length :: 16  Matched Reverse Strings :: 5
  39. String length :: 17  Matched Reverse Strings :: 2
  40. String length :: 18  Matched Reverse Strings :: 1
  41. String length :: 19  Matched Reverse Strings :: 1
  42. String length :: 20  Matched Reverse Strings :: 1
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
17 [报告]
发表于 2004-12-12 21:35 |只看该作者

两道题,问了N多人,没结果,再问一下看看

决定敬仰一下版主,这个得一年后俺再来读

    

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
18 [报告]
发表于 2004-12-12 21:54 |只看该作者

两道题,问了N多人,没结果,再问一下看看

原帖由 "wingger" 发表:
决定敬仰一下版主,这个得一年后俺再来读

    

我已经晕蔡啦      

论坛徽章:
0
19 [报告]
发表于 2004-12-13 10:46 |只看该作者

两道题,问了N多人,没结果,再问一下看看

景仰的不是一点点...
汗颜的不是一点点...

实在是佩服得无加反复....

而且如winger说的,我连题目都没审好,惭ing

论坛徽章:
0
20 [报告]
发表于 2004-12-13 22:32 |只看该作者

两道题,问了N多人,没结果,再问一下看看

主任的水平确实让人敬佩,但我觉得主任可能没有考虑延伸的问题:如AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA

这个序列没有>10的重复,如果有的话也只能是本身,如果不延伸的话,它会有很多个重复,从10开始以1个步长移动。呵呵,一家之言,也可能题目给的不清楚。

这是结果:
AAAAAAAAAA Length=10 Position=1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;
21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;
41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;
61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;
81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;
100;101;102;103;104;105;106;107;108;109;110;111;112;113;
114;115;116 Rev_Position=2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;
21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;
41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;
61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;
81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;
100;101;102;103;104;105;106;107;108;109;110;111;112;113;
114;115;116
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP