Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class dnaString (str):
- def __new__(self,s):
- return str.__new__(self,s.upper())
- def length (self):
- return (len(self))
- def getATCG (self,num_A,num_T,num_C,num_G):
- num_A = self.count("A")
- num_T = self.count("T")
- num_C = self.count ("C")
- num_G = self.count ("G")
- return ( (self.length(), num_A, num_T, num_G, num_C) )
- def printnum_A (self):
- print ("Adenine base content: {0}".format(self.count("A")))
- dna = input("Enter a dna sequence: ")
- x=dnaString(dna)
- dna = input("Enter a dna sequence: ")
- x=dnaString(dna)
- x.printnum_A()
- class dnaString (str):
- def __new__(self,s):
- return str.__new__(self,s.upper())
- def length (self):
- return (len(self))
- def getATCG (self,num_A,num_T,num_C,num_G):
- num_A = self.count("A")
- num_T = self.count("T")
- num_C = self.count ("C")
- num_G = self.count ("G")
- return ( (self.length(), num_A, num_T, num_G, num_C) )
- def printnum_A (self):
- print ("Adenine base content: {0}".format(self.count("A")))
- # here the method is declared
- def printnum_T (self):
- print ("Adenine base content: {0}".format(self.count("T")))
- dna = input("Enter a dna sequence: ")
- x=dnaString(dna)
- x.printnum_A()
- # Here I call my method on `x`
- x.printnum_T()
- class DnaString(str):
- def __new__(self, s):
- return str.__new__(self, s.strip().upper())
- def __init__(self, _):
- self.num_A = self.count("A")
- self.num_C = self.count("C")
- self.num_G = self.count("G")
- self.num_T = self.count("T")
- def stats(self):
- return len(self), self.num_A, self.num_C, self.num_G, self.num_T
- dna = raw_input("Enter a dna sequence: ")
- d = DnaString(dna)
- print(d)
- print(d.stats())
- Enter a dna sequence: ACGTACGTA
- ACGTACGTA
- (9, 3, 2, 2, 2)
- import itertools
- import sys
- def pairwise(iterable):
- "s -> (s0,s1), (s1,s2), (s2, s3), ..."
- a, b = itertools.tee(iterable)
- next(b, None)
- if sys.version_info[0] > 2:
- return zip(a,b)
- return itertools.izip(a, b)
- class DnaSequence():
- Names = {
- 'A' : 'adenine',
- 'C' : 'cytosine',
- 'G' : 'guanine',
- 'T' : 'thymine'
- }
- Bases = Names.keys()
- def __init__(self, seq):
- self._string = seq
- self.bases = { x:0 for x in DnaSequence.Bases }
- self.pairs = { x+y:0 for x in DnaSequence.Bases
- for y in DnaSequence.Bases }
- for base in seq:
- if base in self.bases:
- self.bases[base] += 1
- for x,y in pairwise(seq):
- pair = x+y
- if pair in self.pairs:
- self.pairs[pair] += 1
- def printCount(self, base):
- if base in DnaSequence.Names:
- print(DnaSequence.Names[base].capitalize() +
- " base content: " + str(self.bases[base]))
- else:
- sys.stderr.write('No such base ("%s")n' % base)
- def __repr__(self):
- return self._string
- d = DnaSequence("CCTAGTGTTAGCTAGTCTAGGGAT")
- for base in DnaSequence.Bases:
- d.printCount(base)
- # Further:
- print(d)
- print(d.bases)
- print(d.pairs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement