def test_join_MutableSeq_mixed(self): """Check MutableSeq objects can be joined.""" spacer = MutableSeq("NNNNN") self.assertEqual( "N" * 15, spacer.join([MutableSeq("NNNNN"), MutableSeq("NNNNN")]), ) self.assertRaises( TypeError, spacer.join([Seq("NNNNN"), MutableSeq("NNNNN")]), )
def test_join_MutableSeq_mixed(self): """Check MutableSeq can join incompatible alphabets.""" spacer = MutableSeq("NNNNN", generic_dna) self.assertEqual( "N" * 15, spacer.join([ MutableSeq("NNNNN", generic_rna), MutableSeq("NNNNN", generic_rna) ]), ) self.assertRaises( TypeError, spacer.join([ Seq("NNNNN", generic_protein), MutableSeq("NNNNN", generic_protein) ]), )
def test_join_MutableSeq_with_file(self): """Checks if MutableSeq join correctly concatenates sequence from a file with the spacer.""" filename = 'Fasta/f003' seqlist = [record.seq for record in SeqIO.parse(filename, 'fasta')] seqlist_as_strings = [str(_) for _ in seqlist] spacer = MutableSeq('NNNNN') spacer1 = MutableSeq('') # seq objects with spacer seq_concatenated = spacer.join(seqlist) # seq objects with empty spacer seq_concatenated1 = spacer1.join(seqlist) ref_data = ref_data1 = "" ref_data = str(spacer).join(seqlist_as_strings) ref_data1 = str(spacer1).join(seqlist_as_strings) self.assertEqual(str(seq_concatenated), ref_data) self.assertEqual(str(seq_concatenated1), ref_data1) with self.assertRaises(TypeError): spacer.join(SeqIO.parse(filename, 'fasta'))
def test_join_MutableSeq(self): """Checks if MutableSeq join correctly concatenates sequence with the spacer.""" # Only expect it to take Seq objects and/or strings in an iterable! spacer1 = MutableSeq("", generic_dna) spacers = [spacer1, MutableSeq("NNNNN", generic_dna), MutableSeq("GGG", generic_nucleotide)] example_strings = ["ATG", "ATG", "ATG", "ATG"] example_strings_seqs = ["ATG", "ATG", Seq("ATG", generic_dna), "ATG"] # strings with empty spacer str_concatenated = spacer1.join(example_strings) self.assertEqual(str(str_concatenated), "".join(example_strings)) self.assertEqual(str_concatenated.alphabet, spacer1.alphabet) for spacer in spacers: seq_concatenated = spacer.join(example_strings_seqs) self.assertEqual(str(seq_concatenated), str(spacer).join(example_strings)) self.assertEqual(seq_concatenated.alphabet, spacer.alphabet)