def testReadOnlySubAlignment(self): print("======= starting testReadOnlySubAlignment =========") alg = MutableAlignment() alg.read_filepath("data/mock/pyrg/sate.fasta") subset = list(alg.keys())[9:12] readonly_subalignment = ReadonlySubalignment(subset, alg) print("subalignment is:\n\n", readonly_subalignment) assert len(readonly_subalignment) == 3, len(readonly_subalignment) assert set(readonly_subalignment.keys()) == set( readonly_subalignment.get_sequence_names()) == set( subset ), "Subalignment keys not matching given keys %s vs %s" % (list( readonly_subalignment.keys()), subset) for (k, s) in list(readonly_subalignment.items()): assert k in subset, "%s not found in subset but returned by subalignment" % k assert s == alg[ k], "sequence associated with %k not matching parent alignment" % k try: readonly_subalignment[2] = "ACGT" assert False, "Readony alignment is successfully modified. " except TypeError: pass assert readonly_subalignment.get_length() == alg.get_length( ), "alignment length should not change" assert readonly_subalignment.is_aligned() == True assert readonly_subalignment.is_all_gap( 2) == True, "Site 2 should be all gaps" assert readonly_subalignment.is_all_gap( 150) == False, "Site 100 should not be all gaps" readonly_subalignment.write_to_path("data/mock/pyrg/sate.sub.fasta") mutable_subalignment = readonly_subalignment.get_mutable_alignment() mutable_subalignment.delete_all_gap() assert all([ not mutable_subalignment.is_all_gap(i) for i in range(0, mutable_subalignment.get_length()) ]) print("======= finishing testReadOnlySubAlignment =========")
def testReadOnlySubAlignment(self): alg = MutableAlignment() alg.read_filepath(get_data_path("mock/pyrg/sate.fasta")) subset = [ 'NC_008701_720717_722309', 'NC_013156_149033_150643', 'NC_013887_802739_801129' ] readonly_subalignment = ReadonlySubalignment(subset, alg) assert len(readonly_subalignment) == 3, len(readonly_subalignment) assert set(readonly_subalignment.keys()) == set( readonly_subalignment.get_sequence_names()) == set(subset), \ "Subalignment keys not matching given keys %s vs %s" % ( list(readonly_subalignment.keys()), subset) for (k, s) in list(readonly_subalignment.items()): assert k in subset, \ "%s not found in subset but returned by subalignment" % k assert s == alg[k], \ "sequence associated with %s not matching parent alignment" % k try: readonly_subalignment[2] = "ACGT" assert False, "Readony alignment is successfully modified. " except TypeError: pass assert readonly_subalignment.get_length() == alg.get_length(), \ "alignment length should not change" assert readonly_subalignment.is_aligned() is True assert readonly_subalignment.is_all_gap(2) is True, \ "Site 2 should be all gaps" assert readonly_subalignment.is_all_gap(150) is False, \ "Site 100 should not be all gaps" readonly_subalignment.write_to_path( self.fp_dummy1) # "mock/pyrg/sate.sub.fasta" mutable_subalignment = readonly_subalignment.get_mutable_alignment() mutable_subalignment.delete_all_gap() assert all([ not mutable_subalignment.is_all_gap(i) for i in range(0, mutable_subalignment.get_length()) ])
def testReadOnlySubAlignment(self): alg = MutableAlignment() alg.read_filepath(get_data_path("mock/pyrg/sate.fasta")) subset = ['NC_008701_720717_722309', 'NC_013156_149033_150643', 'NC_013887_802739_801129'] readonly_subalignment = ReadonlySubalignment(subset, alg) assert len(readonly_subalignment) == 3, len(readonly_subalignment) assert set(readonly_subalignment.keys()) == set( readonly_subalignment.get_sequence_names()) == set(subset), \ "Subalignment keys not matching given keys %s vs %s" % ( list(readonly_subalignment.keys()), subset) for (k, s) in list(readonly_subalignment.items()): assert k in subset, \ "%s not found in subset but returned by subalignment" % k assert s == alg[k], \ "sequence associated with %k not matching parent alignment" % k try: readonly_subalignment[2] = "ACGT" assert False, "Readony alignment is successfully modified. " except TypeError: pass assert readonly_subalignment.get_length() == alg.get_length(), \ "alignment length should not change" assert readonly_subalignment.is_aligned() is True assert readonly_subalignment.is_all_gap(2) is True, \ "Site 2 should be all gaps" assert readonly_subalignment.is_all_gap(150) is False, \ "Site 100 should not be all gaps" readonly_subalignment.write_to_path( self.fp_dummy1) # "mock/pyrg/sate.sub.fasta" mutable_subalignment = readonly_subalignment.get_mutable_alignment() mutable_subalignment.delete_all_gap() assert all([not mutable_subalignment.is_all_gap(i) for i in range(0, mutable_subalignment.get_length())])
def testReadOnlySubAlignment(self): print "======= starting testReadOnlySubAlignment =========" alg = MutableAlignment() alg.read_filepath("data/mock/pyrg/sate.fasta") subset = alg.keys()[9:12] readonly_subalignment = ReadonlySubalignment(subset, alg) print "subalignment is:\n\n", readonly_subalignment assert len(readonly_subalignment) == 3, len(readonly_subalignment) assert readonly_subalignment.keys() == readonly_subalignment.get_sequence_names() == subset, "Subalignment keys not matching given keys %s vs %s" %(readonly_subalignment.keys() , subset) for (k, s) in readonly_subalignment.items(): assert k in subset, "%s not found in subset but returned by subalignment" %k assert s == alg[k], "sequence associated with %k not matching parent alignment" %k try: readonly_subalignment[2] = "ACGT" assert False, "Readony alignment is successfully modified. " except TypeError: pass assert readonly_subalignment.get_length() == alg.get_length(), "alignment length should not change" assert readonly_subalignment.is_aligned() == True assert readonly_subalignment.is_all_gap(2) == True, "Site 2 should be all gaps" assert readonly_subalignment.is_all_gap(150) == False, "Site 100 should not be all gaps" readonly_subalignment.write_to_path("data/mock/pyrg/sate.sub.fasta") mutable_subalignment = readonly_subalignment.get_mutable_alignment() mutable_subalignment.delete_all_gap() assert all([not mutable_subalignment.is_all_gap(i) for i in xrange(0,mutable_subalignment.get_length())]) print "======= finishing testReadOnlySubAlignment ========="