def test_join_Seq(self): """Checks if Seq join correctly concatenates sequence with the spacer.""" spacer = Seq("NNNNN") self.assertEqual( "N" * 15, spacer.join([Seq("NNNNN"), Seq("NNNNN")]), ) spacer1 = Seq("") spacers = [spacer1, Seq("NNNNN"), Seq("GGG")] example_strings = ["ATG", "ATG", "ATG", "ATG"] example_strings_seqs = ["ATG", "ATG", Seq("ATG"), "ATG"] # strings with empty spacer str_concatenated = spacer1.join(example_strings) self.assertEqual(str_concatenated, "".join(example_strings)) for spacer in spacers: seq_concatenated = spacer.join(example_strings_seqs) self.assertEqual(seq_concatenated, str(spacer).join(example_strings)) # Now try single sequence arguments, should join the letters for target in example_strings + example_strings_seqs: self.assertEqual( str(spacer).join(str(target)), str(spacer.join(target)) )
def test_join_Seq_mixed_alpha(self): """Check Seq can join incompatible alphabets.""" spacer = Seq("NNNNN", generic_dna) self.assertEqual( "N" * 15, spacer.join([Seq("NNNNN", generic_rna), Seq("NNNNN", generic_rna)]), ) self.assertEqual( "N" * 15, spacer.join( [Seq("NNNNN", generic_protein), Seq("NNNNN", generic_protein)]), )
def test_join_Seq(self): """Checks if Seq join correctly concatenates sequence with the spacer.""" # Only expect it to take Seq objects and/or strings in an iterable! spacer1 = Seq("", generic_dna) spacers = [ spacer1, Seq("NNNNN", generic_dna), Seq("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) # Now try single sequence arguments, should join the letters for target in example_strings + example_strings_seqs: self.assertEqual( str(spacer).join(str(target)), str(spacer.join(target)))
def test_join_Seq_with_file(self): """Checks if Seq 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 = Seq('NNNNN') spacer1 = Seq('') # 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_Seq(self): """Checks if Seq join correctly concatenates sequence with the spacer.""" # Only expect it to take Seq objects and/or strings in an iterable! spacer1 = Seq('', generic_dna) spacers = [spacer1, Seq('NNNNN', generic_dna), Seq('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)