Source code for HelloFasta.challenge
# https://github.com/elmar-hinz/Python.Challenges
from challenges import Challenge
[docs]class HelloFastaChallenge(Challenge):
"""
Given: A DNA strand followed by fasta reads.
Return: The id of the read which the shortest distance to the given strand.
"""
sample = '''
ACCGGTCC
>Fasta1
AGCG
GGCC
>Fasta2
ACCC
GTCC
>Fasta3
ACCG
TTTT
'''
expect = 'Fasta2'
[docs] def build(self):
self.model.strand = self.line(0)
self.model.fasta = self.fasta(1)
[docs] def calc(self):
winner = None
maximum = 0
for id, strand in self.model.fasta:
counter = 0
for position, base in enumerate(self.model.strand):
if strand[position] == base:
counter += 1
if counter > maximum:
maximum = counter
winner = id
self.result = winner