Skip to content

Instantly share code, notes, and snippets.

@sunnyeyez123
Created October 24, 2017 06:41
Show Gist options
  • Save sunnyeyez123/cc845499c04f53c71a48eb20944f839b to your computer and use it in GitHub Desktop.
Save sunnyeyez123/cc845499c04f53c71a48eb20944f839b to your computer and use it in GitHub Desktop.
This is a DNA analysis program. It helps you determine the suspect that committed a crime by matching their DNA samples to a sample found at a crime scene. Comment below if you're able to determine who the culprit is!
'''This is a program that tests the DNA sequences of 3 suspects and helps you determine which one is the likely culprit based on how many codon matches their sample contains'''
sample = ['GTA','GGG','CAC']
def read_dna(dna_file):
dna_data = ""
with open(dna_file, "r") as f:
for line in f:
dna_data += line
return dna_data
def dna_codons(dna):
codons = []
for i in range(0, len(dna), 3):
if i+3< len(dna):
codons.append(dna[i:i+3])
return codons
def match_dna(dna):
matches = 0
for codon in dna:
if codon in sample:
matches +=1
return matches
def is_criminal(dna_sample):
dna_data = read_dna(dna_sample)
codons = dna_codons(dna_data)
num_matches = match_dna(codons)
if num_matches>= 3:
print "There were %s matches. Continue investigating" % num_matches
else:
print "There were %s matches. Free this suspect" % num_matches
is_criminal("suspect1.txt")
is_criminal("suspect2.txt")
is_criminal("suspect3.txt")
ATCGAAAGCACAATCATGCATCGTGCCAGTGTGTTCGTGTCATCTAGGACGGGGCCATAGGATATATAATTCAATTAAGAATACCTTATACTACTGTCCCCTGTGGTTCGAAGGGGAACTATTTCGTGGGGCGAGCCCACACCGTCTCTTCTGCGGAAGACTTAACACGTTAGGGAGGTGGAATAGTTTCGAACGATGGTTATTAATCGTGATAACGGAACGCTGTCTGGAGGATGAGTCTGACGGTGTGTGACTCGATCAGTCACTCGCTATTCGAACTGCGCGAAAGATCCCAGCGCT
CCGTAAGACAAATAATTCAATAAAGATGTCGTTTTGCTAGTTTACGTCAAGGTGTCACGCGCCATCTCTGAGCAGGTGGGCCGACGAGACATTATCCCTGGAGTATCAAACCCGTACAAAGGGAACATCCACACTTTGGTGAATCGAAGCGCGGCATCAGGATTTCCTTTTGGATACCTGAAACAAAGCCCATCGTGGTCCTTAGACTTGGCACACTTACACCTGCAGCGCGCGCATGTGGAATTAGAGGCCAAGTTCGATCCCTACACCGACGTACGATGCAACTGTGTGGATGTGACG
TCGCATAAGTACAGTAGATCCTCCCCGCGCATCCTATTTATTAAGTTAATTCTACAGCAATACGATCATATGCGGATCCGCAGTGGCCGGTAGACACACCATGCACTTGATTCCGAGGCCTGTCCCGATATATGAACCCAAACTAGAGCGAGGCTGTTGACGTTTGGAGTTGAAAAAATCTATTATACCAATCGGCTTCAACGTGCTCCACGGCAGGCGCCTGACGAGAGGCCCACACCGAGGAAGTAGACTGTTGCACGTTGAGGATAGCGCTAGCTAACAAAGACGCCTGCTACAACA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment