Advertisement
Guest User

cs50 dna

a guest
Sep 26th, 2021
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. import csv
  2. import sys
  3. import random
  4. import re
  5.  
  6. # Ensure correct argv line
  7.  
  8. if len(sys.argv)!= 3:
  9.     print("Error !")
  10.     sys.exit(1)
  11.  
  12.  
  13. sequences = {}    
  14. with open(sys.argv[1]) as file:
  15.     reader = csv.reader(file)
  16.     for row in reader:
  17.         DNAs = row
  18.         DNAs.pop(0)
  19.         break
  20. with open (sys.argv[2]) as dnafile:
  21.     dna = dnafile.read()
  22.     for row in dnafile:
  23.         dnalist = row
  24.    
  25. for item in DNAs:
  26.     sequences[item] = 0
  27.  
  28. for STR in DNAs:
  29.     groups = re.findall(rf'(?:{STR})+', dna)
  30.     #print(groups)
  31.     largest = max(groups, key=len)
  32.     maximum = len(largest)//len(STR)
  33.     #print(len(largest)//len(STR))
  34.     #print(maximum)
  35.     sequences[STR] += maximum
  36. #print(sequences)
  37.  
  38.  
  39.  
  40. with open(sys.argv[1]) as file:
  41.     reader = csv.DictReader(file)
  42.     for row in reader:
  43.         match = 0
  44.         for DNA in sequences:
  45.             if sequences[DNA] == int(row[DNA]):
  46.                 match += 1
  47.         if match == len(sequences):
  48.             print(row['name'])
  49.             exit()
  50.     print("No match")
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement