Professional Documents
Culture Documents
def is_valid_dna_sequence(a_dna):
"""
Checks if a given string is a valid DNA sequence,
it means it is not-empty and contains only DNA bases (case-insensitive).
Examples of True-cases:
>>> is_valid_dna_sequence("A")
True
>>> is_valid_dna_sequence("T")
True
>>> is_valid_dna_sequence("G")
True
>>> is_valid_dna_sequence("C")
True
>>> is_valid_dna_sequence("Adenine")
True
>>> is_valid_dna_sequence("Thymine")
True
>>> is_valid_dna_sequence("Guanine")
True
>>> is_valid_dna_sequence("Cytosine")
True
>>> is_valid_dna_sequence("a")
True
>>> is_valid_dna_sequence("t")
True
>>> is_valid_dna_sequence("g")
True
>>> is_valid_dna_sequence("c")
True
>>> is_valid_dna_sequence("adenine")
True
>>> is_valid_dna_sequence("thymine")
True
>>> is_valid_dna_sequence("guanine")
True
>>> is_valid_dna_sequence("cytosine")
True
Examples of False-cases:
>>> is_valid_dna_sequence(0) # more types could be added here
False
>>> is_valid_dna_sequence("")
False
>>> is_valid_dna_sequence("b")
False
>>> is_valid_dna_sequence(0.0)
False
>>> is_valid_dna_sequence(["A"])
False
>>> is_valid_dna_sequence(["C", "Cytosine"])
False
>>> is_valid_dna_sequence([""])
False
>>> is_valid_dna_sequence(("", ))
False
>>> is_valid_dna_sequence(("T", ))
False
>>> is_valid_dna_sequence(("T", "Thymine"))
False
>>> is_valid_dna_sequence({"G": "Guanine"})
False
>>> is_valid_dna_sequence({})
False
>>> is_valid_dna_sequence(None)
False
"""
def dna_base_content(a_dna):
"""
Counts occurrences of particular DNA bases.
Examples:
# if the below tests does not work because of different orders of expected and
got dictionaries
# rewrite it to the form of the remaining tests
>>> dna_base_content("a")
{'A': 1, 'T': 0, 'G': 0, 'C': 0}
>>> dna_base_content("t") == {'A': 0, 'T': 1, 'G': 0, 'C': 0}
True
>>> dna_base_content("g") == {'A': 0, 'T': 0, 'G': 1, 'C': 0}
True
>>> dna_base_content("c") == {'A': 0, 'T': 0, 'G': 0, 'C': 1}
True
>>> dna_base_content("accgggtttt") == {'A': 1, 'T': 4, 'G': 3, 'C': 2}
True
dna_bases_dictionary = dict()
for keys in DNA_BASES:
dna_bases_dictionary[keys] = 0
return dna_bases_dictionary
def print_dna_base_content(a_content):
"""
Prints a given DNA content and percentages of pairs.
Example:
>>> print_dna_base_content(dna_base_content("ACGTAAA"))
Total count, all bases: 7
Adenine (A) count: 4
Thymine (T) count: 1
Guanine (G) count: 1
Cytosine (C) count: 1
%A~T content: 71
%G~C content: 29
"""
print("Total... ")
Examples of True-cases:
>>> is_valid_dna_pair("a", "t")
True
>>> is_valid_dna_pair("c", "g")
True
>>> is_valid_dna_pair("at", "at")
True
>>> is_valid_dna_pair("cg", "cg")
True
>>> is_valid_dna_pair("at", "cg")
True
>>> is_valid_dna_pair("cg", "at")
True
Examples of False-cases:
>>> is_valid_dna_pair(0, "c")
False
>>> is_valid_dna_pair("c", "b")
False
>>> is_valid_dna_pair("a", "cc")
False
>>> is_valid_dna_pair("a", "c")
False
>>> is_valid_dna_pair("t", "g")
False
>>> is_valid_dna_pair("ga", "ca")
False
"""
if __name__ == '__main__':
import doctest
doctest.testmod()