def test_rnastrand_long(self): """Two long examples from the RNAstrand database: CRW_00544 & CRW_00528 """ # CRW_00544 # contextfold pred_1 = '(((.((((....(((.........)))..................(((((((....((((...................................(((...........)))......((((((.....((((....))))......))))))((((.....((((((.((((((((....))))).........((((((...................)))).))...(((.......((((.((((((.......)))..)))....)))).....))).....(((((((.....)))))))...........((((.((((((((((.(((((((..........)))))))............(((((((........((((((((..........................((((.((((((((((((((.................................)))))))))...(((((((((((((.(((........((((((........((((....((((.............((((..((((((((((............))))))))))..))))...........(((((((......))))))).....(((((((....)))))))..(((((((.......)))))))...............((....)).................(((((.....((((....((((((...........))))))...))))....))))).....))))....)))).(((((.(((.....(((.........)))...)))...)))))........................(((((((.((((..(((.((((((((...((((((((((((((((((.......)))).((....))...........................)))))))))))))).......((((((....(((((.((((((.(.......).).((...(((..((((........)))).)))..))))))).))))).((.......)).......))))))....)))))))).........(((((....)))))...............)))))))))))).))((((.....((((..(((((((.(((....(((((((..(((((...(((.(((((((((((.....(((((((((((((......((((.(((.......((...................))....))))))).((..(((((((((........))))))))).......))......................)))))))....(....)..............................)))))).....(((((((.......))))..........(..(.......((.(((((((((((((((......(((............(((............)))....((((((..(((((((((((((.......(((((((((((...)))))))))))((((......((..((((((((.....(((((((........(........).(((((((((...((((.........))))((((((((((((((((..((((((((................)))))))).........(.......)...........))))))))))))))))........)))))))))....))))))).........))))))))..))......))))...((((((((((.((........)).))))))))))......)))))))))))))...............(((((((........(((........(((((((...)))))))....))))))))))............)))))).........................(((((....))))).............(((((...........)))))))).....((((((.(((.........))).)).))))...))))))))..((((((....))))))))))))).))....)..).......)))........................................(((((....((((((((..((((....))))..))))))))..)))))))))))))))).)))....)))))...))))))).....(((((...)))))............)))...))))))).((((((.((((((............)))))).)))))).....))))........................((((((((((((.....(((...((((........((((...))))..((((((((((((...............((((.((((.........)))).))))(((((..(((...((((.(((.(((((........))))).))).))))...)))..))))).......))))))))))))........))))...)))....))))))))))))....))))....)))))))))...)))))))))))))....)))))))))((((((.((.((((((((.................((((((((.((......(.(......(((((.((....((((((((....((((((...(........((((((((((.(((((.....(((((..(..((...(((((.....)))))..((((((....((.(((.....))).))...))))))..))..)..))))))))).).)))))))))))..))))))......))))))))....))..)))))......).).....)))))))))).....................((((((.....))))))..................))))))))...)).))))))..........)))))))).....(((((........)))))...)))))))(((((((.....((((((((((......)))))..........(((((((((.....(((((((((.................((((....)))).............(....).))))))))))))))))))...((.((((((((......)))))))).))....(((((....)))))........)))))...)))))))...........................)))))))))).)))).(((((((((..(((((...)))))...)))))))))(((((((.((((........(((((((...))))))).............((((((.(((((((...(((((((((((......................(((((........)))))..(((((.......(((.......)))..........((((....))))((.....(((....))).).)........))))))))))))...(............(((((.......(.((((((((((..((((.(((.((((((((...((.......))...)))))))..))))................((((((((((.....(((((...(((........(((((.....)))))..........................(((((((....))).)))).(((((...........)))))..............)))....)))))........)))....))))))).)))).)))))))))).))))))...........)........)))).)))))))))))))...)))))))))))...............))).))))))...((((................)))).....))))........)))).))))))).)))).)))..(((((((((((((((((..((...((((((((.........))))))))...................((((((((((..(((((..((((((.(.......(((((((....))))))).........).))))))..).)))).)))))))))).)).))))))))...(((((((...((((((((......))))))))..))))))))))))))))........((((.........(((((((.....))))))).....))))............' # unafold pred_2 = '............(..(((...((((..........(((((((((.(((((((...(((((.......((....(((((.................(((....)))....(((((((...............(((((((((((.((((.....((((.((((..(((((.((((((((....)))))..((((((..((((((((((.....)))))....)))))..............((((.(((..((....(((((((..(((((((...((((((.((((((..(((((......((((((((((((.........(((((((((...(((((((..........)))))))..))))))))).(((..(((((.......)))))...)))................))))))))))))......)))))...)))))).))))))......)))))))...(((((((((.....((((((..(((((.....((((((.(((((............((((((((((............((((..((((((((((.(((.....)))))))))))))..)))).............)))))))))).((((((......(((((((....)))))))..(((((((.......)))))))...............((....)).....((((((...(((((((((..((((((....((((((..((....)).))))))...))))))...((((((.........((((.((.......)).....((((((((((((...(((..(.((((((((.(((((((((....((..((.(((((((((((...(((((.(((((.......(((((((((((((((((((...)))))).((....)).(((..(((......)))....)))..))))))))))))))))))......(((((..(((((.(((((..((((......))))...((((.((((........))))))))....))))).)))))((((....(((((........)))))...)))).............(((((....))))).))))).........)))))))))))).)).)).))..)).....(((((((((((........))))).)))))).)))))))))..)))))))).)..)))((((((((..(...(((.......))).(((...(((((.....(((......)))...........(((((((((........))))))))).............)))))..)))....)..))))))))...((((.(((((((((((((((....(((((..((((((..((((........)))).(((.(((((.((((....((((.((((....)))))))).......))))))))))))....))))))(((...............)))......))))).......(((((((((((.((((((((((((...)))))))))))).............((((((((.((..(((((((...((((....)))).((((((((((((.((((.....))))......(((((((((((((((((..(((........(((((((....(((....)))....)))))))...........)))..)))))))))))))))))........)))))))))))).)))))))......)).)))))))).))))))))))).....((((((((((.(((......))).)))))))))).)))))))))))))))))))..(((((......(((((((((((((...(((.((((.(((.((.((((((.((((((....))))..)).)))))).)).)))))))..........................(((((....)))))(..((((((..(((((..((((((((.(((..((((......((((((.((((.......)))).)).))))...))))..(((.....)))..))))))))).)).)))))))))))..)..((((.(((.....(((((((.(((((((.(((((((((......(((((((....((((((((..((((....))))..))))))))..)))))))..........((((((((((((((....)).))))))))))))...............)))))))))...((((.((((.............))))..))))))))))))))))))..)))))))..)))..)))))))))))))..(((((((((((((((((((......((((((((..(((.....)))...(((((((((((((((..((.(((((((......)).))))).))..))..)))))))))))))............))))))))..(((((....((((((..(....)..))))))..)))))..)))))))))...((((((((...))))))))..)))))))))).)))))....((((((((......))))..)))))))))).)))))).))))..(((.....))).)))))).............)))))))))..))))))))))))..))))).)))))).((((((((..............(..((((.((((((((((..(((((.....(((((((((.(...(((((.....)))))..((((((((..((.(((.....))).)).))))))))).)))))..)))))))))...))))))))))..))))..)..(((((((...((((......))))...))))))).))))))))...)))))..))))))...))))))))))))))))..))..)))))))...)))))).....))).))..)))..))))))))..((((((..((((..(((...((((((......)))))).(((.((((......(((....)))............((((((((((((((..(((((((((.....(((((((((......((....((((...(((((........)))))...))))...))))))))))))))))))))...((.((((((((......)))))))).))......))))))))).)))))....)))))))..)))..))))...)))))).........)))).))))))))))).......((((((((((((((((...))))))).)))))))))(((((((.((((...(((((....(((((((((..(((((...(((((((......((..((((...((..(((((((.....(((((.......)))))(((((........)))))..((((((((....)))....(((((((...(((...((((....))))...))).(((....))).))))).))...))))))))))))..))...))))..))..))))))).)))))(((((((((((.((((.((..((((((((.((.(((....))).))))))))).)..))...(((....)))..(((((((((((((..(........)..)).)))..(((((.....)))))......((((...((..(((((....(((((((....))).)))).(((((.(((....)))))))).............(((....))))))))..))....)))).)))))))))))))))))))))))......)))))))))...((((((....)))))).....)))))....))))))))))))))).)))...)))))....))....(((.(((((.......))))))))...................))))))))))))....((((((((((((((((((((((((((.((((((((((((.........)))))))).....)))).)).......((((((((((..((((...((((((((((.....(((((((....)))))))..)))).....))))))....)))).))))))))))....))))))))...(((((((...((((((((......))))))))..))))))))))))))))......))))))).)))))))))(((((.....)))))........)))).)))..)....' cutoff = 0.4 dbns = [pred_1, pred_2] try: cutoff, consensus = calc_consensus_secstruc_for_dbn(dbns, threshold=cutoff) except ConflictInBasePairsError, error: conflicting_bps = BasePairs(eval(str(error).split('\'')[1])) solve_conflicts(conflicting_bps) consensus_pred = conflicting_bps.toVienna(len(pred_1), 0) self.assertTrue(type(consensus_pred), ViennaStructure)
# CRW_00528 # ContextFold pred_3 = '.((((...(((((((((((.(.((((..((((((((((........((((..(((........((((((.................(((........)))..................((((((.....(((....))).........))))))((((((((..((((.....))))..)).))))))(((......)))........))))))......((......(((((((..........))))))).......))................)))...((((.((((((((((((((((((.......))))))).)))))).))))))))).(((.(((((((((.(.(((((((((.....(((.(((((((((.....(((((((......(((((....)))))...(...).(((.......))))))))))....)))))))))..)))...)))))))))).))))))))).)))......(((((((........)))))))....(((((.((....)).)))))..)))).......)))))).)))))))).).........((....))................((((....))))...................)))))))))))............................................(((((....................(((((....))))).......(((((..........((((((...))))))..(((((((((((((((((........(((((..(((((((((((((((((........(((((..(............))))))................))))))))))))))))).)))))...))))))))))))))))).(((((....((((..((((((.......((((((((((......((((((..(((((....(((((((((((((.(((((((....))))))))))))))))))))......)))))..))))))((((((((((((((.........))))))))..(((....)))..)))))).....)))))))))).........)))))).)))).....))))).......)))))((((........)))).......((((((((((((((..(((((............((((...........))))....)))))..................((((((((((((.........)))))))).((((.........))))...........))))..((((((......))))))........))))))))))))))..))))).)))).....(((((((((((.....(...(((((((....)))))))..).................(((.......)))........))))))))))).(((...((.((........)).))....)))(((..(((((.(..(.(((((..........((((((((((...(((((....)))))...)...............(((((..((((((.....)))))).)))))...)))).)))))..........))))).)....)....)))))..)))(((((.(((.((..........)).))))))))((((.(((((.....))))).))))....(((((((..((....((((((....((((.......(((((((........(((((...(((.(((((((((..(((((............)))))...........((((.....((((........))))......))))))))))))))))........)))))....)))))))))))....))))))((((((((((..(.......((((....))))....)...)))))))))).............((((..(((......((((((.((....))))))))...)))..))))....(((((((...((((.....((...............(((((((.(((((((.((((....(((((((((.(.(((.......((....((((.....))))....))....(((....)))))).).)))))(.((((..(((((((....))))))).....)))))..............(((((........)))))........(((((((((((((............(((....))).............((((((...((((.((((.((((..(((((((.......))))))).........((((((((((....((((.....))))....)))))))))).....(((..((((((((....(((((((((....)))))))))......))))))))..)))........(((((((((....)))))))))....))))..)))).)))).........))))))........(((((...((((((.(((((((............))))))).)))))))))))...)))))))))).)))................)))).....)))).))).)))).)))))))....(((...)))............((((((((.(((.(((..........(((((....(....).....)))))(..(((((((((((((.((((((..((((.(((((.((((..(((((...((..((((((((((........................))))))))))..))...)))))..)))).))))).))))....................((((..(((((....))))).))))))))))........)))))))..)))))).).............(((((((((.(((((.............((((((((....((((....)))).....)))))))).....(((.((.((((((...........((((........))))..)))))).))....))).((((((.......))))))...(((((......))))).(((((.......))))).......))))).....)).)))))))))).))).)))))))).....))....)))).((((((........)))))).........((((........))))(((((((((..((((((((.(((((((((((((((((((((((..........(((((..((((((((.(((((((((........)))))))))....))))))))............))))).)))))).))))))))))).............((((((((((....((.....(((((......(((..((.............))..)))..)))))....))....))))))))))(((((.(((((....)))))...))))))))))).)))))))..((.((((((((...........))))))))))...)..)))))))))...........((((((((......((((((...(.(.((.......((((((((.......)))))))).((((....)))))).)..)...))))))(((..((((...))))..)))..((((((((..((((.....((((.(((...((((((((..............(((((.......)))))(((...)))...))))))))..)))))))......((((((((((((((.(((((((.......))))))).)....((.........))....)))))))..)..)))).).....(((((((....))).))))....((((..((((.(((........(((((((.....)))))))....)))..))))..)))).....(.((((((...(.(....).)..)))))).)(((((..........((((((((((....)))))..)))))........))))).(((....(((((............)))))....))).........((((((.....))))))(((((((((.......(((((((....)))))))(((((.......)))))..((.........((((((((.((((((((.............)))))))).......))))))))........))((((.(((((((((((((((((((((....))))))))))))))))))))).))))...........)))))))))......)))).........((((....))))))))))))......))))))))(((((......))))))))))))...))..)))))))...............' #unafold pred_4 = '..(((((.(((((.....((..(((.((((((((((((...((...((((........((((.................((..((((((.(((((((.....((((...........(((((((((((.(((....))).))))....)))))))(((((((..((((.....))))..)).))))).))))..(((((..((((.........))))..)))))................)))))))...))))))..)).................(((((((((....(((((((((((((((.......))))))).))))))))(((..(((.....((..(((((((.(((..((((.....(((((((...((((((((((................((((....))))......((((.....))))........)))))))))))))))))...))))..))).)))))))..))...)))..))).)))))))))......)))).....(((((((......))))))).))))..))...))))))).)))))..)))..))....((....))..)))))............(((.((((((......(((((((((((..(((((.......))))).....((((((....(((((((((((.(((((((..((((...))))..))))....))).)))))))))))((((((((((....((((((((((......(((((((((....((((((((((((((((((......((((((..((..(..((((((((((((....(((..(((((..(((.....)))..).))))..))).....)).))))))))))..)..)).)))))).)))))))))))))))))).......(((((((..((((((((((((((..((.((((((((.......))))))))..((..(((((((((((.(((((((....))))))))))))))))))..))..))......)))).))))))..))))..)))))))(((((((..((((((.((((.....((((((((.........(..(((((((....((((((((((...........(((((((((...(((((((......(((((.((..((((((((((((((..((....................((((...(((((((((((((....)))))))...))))))..)))).....(((((((((........)))...))))))..)).....((((((((((((..............))))).))).))))..))))))))))))))..))...(((((((...(((((((((((.........(((((((....)))))))....((.(((.(((.(((....)))))).))).))......)))))))))))...(((........))).)))))))......)))))....((....))....)))))))...))).))))))....(((((....)))))..)))))))))))))))))..).(((((..((.....))..)))))))))))))..........((((((((((.(((((....((((((...(((((((.(((..((...................((((((...(((.((((.........((((...((((....))))..)))).........)))).))).....)))))).(((((((((....(((((((((.......(((.....(((....)))......)))..(((((((((.((((.(((........))))).))........((((((...........))))))))))))))))))))))))..(((((((((((((........(((((....)))))......))))))))))).))........)))))))))..))..))).))))))).(((((((((.(((......(((((..(((...(((....)))....)))..........(((((..((((((.(((...(((((((..((((.......))))...))))))).....(((((...(((....)))..)))))..))).)))))).((((......((((((((....)))))))).....)))).)))))..))))).(((((........))))).)))....(((((((((((((..(((....((((.((((((...............((((......(((.((((((((((((.(((((.......)))))..........(((((((((((....((((.....))))....)))))))))))..(((((..((((((((..(((((((..((....))..))).))))...))))))))..))).)).....(((((((((....)))))))))))).))).)))))).)))(((((.....)))))......))))......(((((..(((..........)))..))))).)))))).)))).)))...)))))))))).)))............((((.((((((.(((......)))..(((((((.....)))).))).....................(((((((((((((.......((((......))))..((((((..(.(((((((((((((...((.((((.(((((.((((..(..(((((..(((..((((((((((..(((..(((.....)))..))).)))))))))).)))..))))))..)))).))))).)))).)).................((((..(((((....))))).))))..............)))))))..))))))........(((((..(((((((((...............((((((((((((....((((....)))).....)))))))..(((((((((...(((((....((((.((((((........)))))).)))).)))))...)))))))))..)))))...............(((.((((..((((((.......)))))).))))...))).....)).)))))))..)))))((((((((((...((((......((((((..((...(((((((......(((((((((........)))))))))......((((((((..((((.(((((((((((((((((..((.((((..((....(((((((((..((((((((......)))))))).....)))))))))....))...)))).))..)))))).))))))))))).(((((.......(((.(((((...(((((((..(((.....))).)))))))....)))))....(((....(((((((....)))))))...))).)))....(((((....)))))..)))))..))))..)))))))).((.((((((((...........)))))))))).....)))))))........(((..((((((((..((((.....(((....((((...((.((((((((((.....)))))))))).))...))))....)))...((((((((((...((((.(((((.......))))).......)))).))))))).))).....))))..))).)))))..))).))..)))))).....))))..)))))).))))....)..))))))...)))))))).)))))...)))))))))).))))).)))).....))))))....)))))..(((((..(..(((.((..((((...(((((((....))).))))......))))..)).)))..)..)))))....)))))))))).........)))).))))))..((((.(((((((....((((.......((((((.......))))))...(((((.((((((....)))))))))))....)))).....)))))))....))))...))))))).((((((........))))))........)))))))))..))))))))))...........(((((.(((((((((....((((((((.((((....))))...))))))))))))))))))))))....))))))))))(((.((((((((((............((((.((((((((((..(((((((((....)))))))))..)))))))))).)))).....(((((((........))))))).)))))))))))))))))))....)))).))))))).((((.((..(((((......)))))..))))))...)))))).))).))))).........' # consensus cutoff = 0.4 dbns = [pred_3, pred_4] try: cutoff, consensus = calc_consensus_secstruc_for_dbn(dbns, threshold=cutoff) except ConflictInBasePairsError, error: conflicting_bps = BasePairs(eval(str(error).split('\'')[1])) solve_conflicts(conflicting_bps) consensus_pred = conflicting_bps.toVienna(len(pred_3), 0) self.assertTrue(type(consensus_pred), ViennaStructure) else: self.assertTrue(False) class CalcConsensusSecstrucForBpsTests(TestCase): """ Tests for calc_consensus_secstruc_for_bps """ def setUp(self): """ """ list_of_dbns = [ViennaStructure(x) for x in SECSTRUCS]
def test_solve_conflicts_even_more_conflicting_base_pairs(self): """solve_conflicts - nested conflict """ combinations = solve_conflicts(self.even_more_conflicting_bps) self.assertEqual(combinations, self.even_more_ref_combinations)
def test_solve_conflicts_no_conflicts(self): """solve_conflicts - no conflicts in input """ combinations = solve_conflicts(BasePairs([(1,2),(3,4),(5,6)])) self.assertEqual(combinations, [[(1,2),(3,4),(5,6)], []])
def test_solve_conflicts_of_conflicting_base_pairs(self): """solve_conflicts - single conflict """ combinations = solve_conflicts(self.conflicting_bps) self.assertEqual(combinations, self.ref_combinations)