Esempio n. 1
0
	def test_annotation(self):
		#load the hmm
		hmm = hmmfile.read('tests/data/valid.hmm')

		s1 = SeqIO.read('tests/data/PPR10.gb', 'genbank')
		s1.features = []
		s2 = SeqIO.read('tests/data/PPR10.gb', 'genbank')
		s2.features = []
		s2.seq = s2.seq.reverse_complement()
		

		h1 = HMMER.hmmsearch(hmm, s1)
		h2 = HMMER.hmmsearch(hmm, s2)
		h1.annotate(s1)
		h2.annotate(s2)

		for (f1, f2) in zip(s1.features, s2.features):
			self.assertEqual(str(f1.extract(s1.seq)), str(f2.extract(s2.seq)))
Esempio n. 2
0
	def test_build(self):
		#Should be case insensitive
		hmm = hmmfile.HMM(alphabet='DnA')

		#build the HMM
		for i in build_data:
			hmm.addState(**i)
		hmm.clean()

		#there are the correct number of states
		self.assertEqual(len(hmm.states), len(build_data), 
			"{} states built - should be {}".format(len(hmm.states),
				len(build_data)))

		s = StringIO()

		hmmfile.write(hmm, s)

		s.seek(0)
		hmm2 = hmmfile.read(s)[0]

		for o in hmmfile.OPTIONS:
			if hasattr(hmm, o):
				self.assertEqual(getattr(hmm, o), getattr(hmm2, o))

		def r(l):
			ret = []
			for i in l:
				if type(i) == float:
					ret.append(round(i,5))
				else:
					ret.append(i)
			return ret

		for i,(e,g) in enumerate(zip(hmm.states, hmm2.states)):
			msg = "State {}: {} != {}"
			self.assertEqual(r(e.me), g.me, msg.format(i,e.me,g.me))
			self.assertEqual(r(e.ie), g.ie, msg.format(i,e.ie,g.ie))
			self.assertEqual(r(e.tr), g.tr, msg.format(i,e.tr,g.tr))
			self.assertEqual(e.map,g.map, msg.format(i,e.map,g.map))
			self.assertEqual(e.rf, g.rf, msg.format(i,e.rf,g.rf))
			self.assertEqual(e.cs, g.cs, msg.format(i,e.cs,g.cs))
Esempio n. 3
0
def get_tail_models():
	return (hmmfile.read(os.path.join(HMMDir, 'E.hmm'))[0],
		hmmfile.read(os.path.join(HMMDir, 'E+.hmm'))[0],
		hmmfile.read(os.path.join(HMMDir, 'DYW.hmm'))[0])
Esempio n. 4
0
def loadmodels():
	"""Load all the models from a file"""
	modelfiles = [ os.path.join(HMMDir, "PPR_{}.hmm".format(i)) for i in
			range(4)]
	return [hmmfile.read(f)[0] for f in modelfiles]
Esempio n. 5
0
def loadmodels():
    """Load all the models from a file"""
    modelfiles = [
        os.path.join(HMMDir, "PPR_{}.hmm".format(i)) for i in range(4)
    ]
    return [hmmfile.read(f)[0] for f in modelfiles]
Esempio n. 6
0
def get_tail_models():
    return (hmmfile.read(os.path.join(HMMDir, 'E.hmm'))[0],
            hmmfile.read(os.path.join(HMMDir, 'E+.hmm'))[0],
            hmmfile.read(os.path.join(HMMDir, 'DYW.hmm'))[0])