def _parse(self): tmp_ct = [] defline = ">" for line in open(self.ct_path): if line.startswith('#'): defline += line.strip() + '|' else: tmp_ct.append(line) defline = defline.replace('\n', '').replace('#', '') # just one entry per file result = ct_parser(tmp_ct)[0] sequence = result[0] # IMPORTANT! # ct_parser starts numbering of base pairs from 0, not from 1, as # elsewhere in nucleic.secstruc. To make things consistent, here # we'll add 1 to each index in base pairs list! result_1 = [(pair[0] + 1, pair[1] + 1) for pair in result[1]] pairs = BasePairs(result_1) if self._is_valid_sequence(sequence): sequence = Sequence(sequence.upper()).seq_without_modifications # Second check, because ModeRNA might also mix a bit at this stage # including for exampel X in sequences without modifications! if self._is_valid_sequence(sequence): try: vienna = pairs.toVienna(len(sequence)) except PseudoknotTokensError: vienna = None finally: return defline, sequence, vienna, pairs return None, None, None, None
def carnac_parser(lines=None): """Parser for carnac output tested in test_ct""" result = ct_parser(lines) return result
def knetfold_parser(lines): """Parser for knetfold output""" result = ct_parser(lines) return result
def test_knetfold_output(self): """Test for ct_parser for knetfold format""" obs = ct_parser(self.knetfold_out) self.assertEqual(obs, self.knetfold_exp)
def test_dynalign_output(self): """Test for ct_parser for dynalign format""" obs = ct_parser(self.dynalign_out) self.assertEqual(obs, self.dynalign_exp)
def test_carnac_output(self): """Test for ct_parser for carnac format""" obs = ct_parser(self.carnac_out) self.assertEqual(obs, self.carnac_exp)
def unafold_parser(lines=None): """Parser for unafold output""" result = ct_parser(lines) return result
def sfold_parser(lines): """Parser for Sfold output""" result = ct_parser(lines) return result
def test_knetfold_output(self): """Test for ct_parser for knetfold format""" obs = ct_parser(self.knetfold_out) self.assertEqual(obs,self.knetfold_exp)
def test_dynalign_output(self): """Test for ct_parser for dynalign format""" obs = ct_parser(self.dynalign_out) self.assertEqual(obs,self.dynalign_exp)
def test_carnac_output(self): """Test for ct_parser for carnac format""" obs = ct_parser(self.carnac_out) self.assertEqual(obs,self.carnac_exp)
def mfold_parser(lines=None): """Parser for Mfold output""" result = ct_parser(lines) return result
def dynalign_parser(lines=None): """Parser for dynalign output""" result = ct_parser(lines) return result