def check_selfcomp(seq: str, threshold=4) -> bool: if type(seq) != str or type(threshold) != int: raise TypeError r_seq = seq[::-1] d = {} for i in range(threshold, len(seq) + 1): s = [] for base in range(len(seq) - 1): r_oligo = r_seq[base:base + i] if len(r_oligo) != i: break r_c_seq = Seq.complement(r_oligo) if r_c_seq in seq: s.append(r_c_seq) d[i] = s if not d: return False max_key = max(d.keys()) if max_key >= 5 or len(d[max_key]) >= 5: return True return False
def test_complement_of_dna(self): seq = "ATGAAACTG" self.assertEqual("TACTTTGAC", Seq.complement(seq))
def test_complement_of_rna(self): seq = "AUGAAACUG" self.assertEqual("UACUUUGAC", Seq.complement(seq))
# Import the sequence from the Biopython library from Bio.Seq import * def complement(seq): comp_seq="" mapping = {'A':'T', "C":"G", "G":"C", "T":"A"} for nucleotide in gene: comp_seq += mapping[nucleotide] return comp_seq; def reverse(seq): rev_seq = seq[::-1] return rev_seq if __name__ == '__main__': gene = "TCAGACTGGTGCCGTGGTGCTCTCGCCCGATGTGACGTCGACCGCCAGCGGCGCGATGACGCCGAGGATTTCCGTGATCGTTTCGGAGGGCACGCCGGCTGCGGTCAGCGCGTCGGCCAAGTGTCCGGCGACCAGGCTGAAGTGGTGCATGGTAATTCCGCGCCCCTGATGGACTTGCTTCATCGGCGCACCGGTATAGGGCTCGGGCCCGCCAAGCGCGGCCGCGAAAAACTCCACCTGCTTGCCCTTGAGGCGGCTCATGTTCGTACCGCTGAAGAAGGCCGATAGTTGGTCATCGGCAAGCACACGAACATAGAAGTCCTCGACGACGACTTCGATGGCCTCATGCCCGCCGATCTTGTCGTAGATGCTGATCGGCTCACGTTTGCGCAAGCGTGACAGTAGTCCCATTTTTATA" res = reverse(complement(gene)) print(res) # Define a sequence as a DNA Seq object seq = Seq("CCTCAGCGAGGACAGCAAGGGACTAGCC") # The complement() method can act just like your complement() function. complement = seq.complement() # Similarly, we can use the reverse_complement() method. reverse_complement = seq.reverse_complement() # We can even use the transcribe() method to switch alphabets to RNA RNA = seq.transcribe() print(RNA)
def strand_match(b, strand): if strand == '+': return b else: return Seq.complement(b)