-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathscript_example.py
More file actions
51 lines (38 loc) · 1.17 KB
/
Copy pathscript_example.py
File metadata and controls
51 lines (38 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
def base_frequencies(seq):
"""Compute base frequencies of a sequence"""
# Get the length of the sequence
sequence_len = len(seq)
# Initialize base frequencies
base_frequencies = {
'A': 0,
'C': 0,
'T': 0,
'G': 0
}
# Count bases
for base in seq:
base_frequencies[base] += 1
# Normalize count
for base in base_frequencies:
base_frequencies[base] = base_frequencies[base]/sequence_len
return base_frequencies
def reverse_complement(seq):
"""Compute reverse complement of a sequence."""
# Initialize dict of complements
complements = {
'A': 'T',
'C': 'G',
'T': 'A',
'G': 'C'
}
# Initialize reverse complement
rev_seq = ''
# Loop through and populate list with reverse complement
for base in reversed(seq.upper()):
rev_seq += complements[base]
return rev_seq
if __name__ == "__main__":
# Executed only if the script is run directly. Will not execute if imported.
# Prints the name of the function in this script
print("Stuff this script can do: ", reverse_complement.__doc__,
base_frequencies.__doc__)