Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. class dnaString (str):
  2. def __new__(self,s):
  3. return str.__new__(self,s.upper())
  4. def length (self):
  5. return (len(self))
  6. def getATCG (self,num_A,num_T,num_C,num_G):
  7. num_A = self.count("A")
  8. num_T = self.count("T")
  9. num_C = self.count ("C")
  10. num_G = self.count ("G")
  11. return ( (self.length(), num_A, num_T, num_G, num_C) )
  12.  
  13. def printnum_A (self):
  14. print ("Adenine base content: {0}".format(self.count("A")))
  15.  
  16. dna = input("Enter a dna sequence: ")
  17. x=dnaString(dna)
  18.  
  19. dna = input("Enter a dna sequence: ")
  20. x=dnaString(dna)
  21. x.printnum_A()
  22.  
  23. class dnaString (str):
  24. def __new__(self,s):
  25. return str.__new__(self,s.upper())
  26. def length (self):
  27. return (len(self))
  28. def getATCG (self,num_A,num_T,num_C,num_G):
  29. num_A = self.count("A")
  30. num_T = self.count("T")
  31. num_C = self.count ("C")
  32. num_G = self.count ("G")
  33. return ( (self.length(), num_A, num_T, num_G, num_C) )
  34.  
  35. def printnum_A (self):
  36. print ("Adenine base content: {0}".format(self.count("A")))
  37.  
  38. # here the method is declared
  39. def printnum_T (self):
  40. print ("Adenine base content: {0}".format(self.count("T")))
  41.  
  42. dna = input("Enter a dna sequence: ")
  43. x=dnaString(dna)
  44. x.printnum_A()
  45. # Here I call my method on `x`
  46. x.printnum_T()
  47.  
  48. class DnaString(str):
  49. def __new__(self, s):
  50. return str.__new__(self, s.strip().upper())
  51.  
  52. def __init__(self, _):
  53. self.num_A = self.count("A")
  54. self.num_C = self.count("C")
  55. self.num_G = self.count("G")
  56. self.num_T = self.count("T")
  57.  
  58. def stats(self):
  59. return len(self), self.num_A, self.num_C, self.num_G, self.num_T
  60.  
  61. dna = raw_input("Enter a dna sequence: ")
  62. d = DnaString(dna)
  63.  
  64. print(d)
  65. print(d.stats())
  66.  
  67. Enter a dna sequence: ACGTACGTA
  68. ACGTACGTA
  69. (9, 3, 2, 2, 2)
  70.  
  71. import itertools
  72. import sys
  73.  
  74. def pairwise(iterable):
  75. "s -> (s0,s1), (s1,s2), (s2, s3), ..."
  76. a, b = itertools.tee(iterable)
  77. next(b, None)
  78. if sys.version_info[0] > 2:
  79. return zip(a,b)
  80. return itertools.izip(a, b)
  81.  
  82. class DnaSequence():
  83. Names = {
  84. 'A' : 'adenine',
  85. 'C' : 'cytosine',
  86. 'G' : 'guanine',
  87. 'T' : 'thymine'
  88. }
  89. Bases = Names.keys()
  90.  
  91.  
  92. def __init__(self, seq):
  93. self._string = seq
  94. self.bases = { x:0 for x in DnaSequence.Bases }
  95. self.pairs = { x+y:0 for x in DnaSequence.Bases
  96. for y in DnaSequence.Bases }
  97.  
  98. for base in seq:
  99. if base in self.bases:
  100. self.bases[base] += 1
  101.  
  102. for x,y in pairwise(seq):
  103. pair = x+y
  104. if pair in self.pairs:
  105. self.pairs[pair] += 1
  106.  
  107.  
  108. def printCount(self, base):
  109. if base in DnaSequence.Names:
  110. print(DnaSequence.Names[base].capitalize() +
  111. " base content: " + str(self.bases[base]))
  112. else:
  113. sys.stderr.write('No such base ("%s")n' % base)
  114.  
  115.  
  116. def __repr__(self):
  117. return self._string
  118.  
  119.  
  120. d = DnaSequence("CCTAGTGTTAGCTAGTCTAGGGAT")
  121. for base in DnaSequence.Bases:
  122. d.printCount(base)
  123.  
  124. # Further:
  125. print(d)
  126. print(d.bases)
  127. print(d.pairs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement