By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,199 Members | 1,064 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,199 IT Pros & Developers. It's quick & easy.

how can i shorten this program??

P: 13
Expand|Select|Wrap|Line Numbers
  1. map = {}
  2. dna = [ "A", "C", "G", "T"]
  3.  
  4. with open("matrix.txt", "r") as myfile:
  5.     line = myfile.readline()
  6.     mylist = line.split()
  7.     map{"AA"} = mylist[0]
  8.     map{"AC"} = mylist[1]
  9.     map{"AG"} = mylist[2]
  10.     map{"AT"} = mylist[3]
  11.     line = myfile.readline()
  12.     mylist = line.split()
  13.     map{"CA"} = mylist[0]
  14.     map{"CC"} = mylist[1]
  15.     map{"CG"} = mylist[2]
  16.     map{"CT"} = mylist[3]
  17.     line = myfile.readline()
  18.     mylist = line.split()
  19.     map{"GA"} = mylist[0]
  20.     map{"GC"} = mylist[1]
  21.     map{"GG"} = mylist[2]
  22.     map{"GT"} = mylist[3]
  23.     line = myfile.readline()
  24.     mylist = line.split()
  25.     map{"TA"} = mylist[0]
  26.     map{"TC"} = mylist[1]
  27.     map{"TG"} = mylist[2]
  28.     map{"TT"} = mylist[3]
  29. gap = -2
  30. map{"A-"} = gap
  31. map{"C-"} = gap
  32. map{"T-"} = gap
  33. map{"G-"} = gap
  34. map{"-A"} = gap
  35. map{"-C"} = gap
  36. map{"-T"} = gap
  37. map{"-G"} = gap
  38. with open("dna.fasta.txt","r") as myfile:
  39.     data = myfile.readlines()
  40.     myfile.close()
  41.  
  42.  
  43. for i in range(len(data)):
  44.     data[i] = data[i].rstrip("\n")
  45.  
  46. seq1 = data[1]
  47. seq2 = data[3]
  48. score = 0
  49.  
  50.  
  51. for i in range(0,len(seq1),1):
  52.  
  53.         key = seq1[i] + seq2[i]
  54.         score = score + int(map[key])
  55.  
  56. print(score)
Nov 8 '10 #1
Share this Question
Share on Google+
1 Reply


bvdet
Expert Mod 2.5K+
P: 2,851
Here's a way to shorten some of it.
Expand|Select|Wrap|Line Numbers
  1. myfile = '''0 1 2 3
  2. 4 5 6 7
  3. 8 9 10 11
  4. 12 13 14 15'''
  5.  
  6. myfileList = myfile.split("\n")
  7. dna = [ "A", "C", "G", "T"]
  8.  
  9. dnaDict = {}
  10. for j, a in enumerate(dna):
  11.     itemList = myfileList[j].split()
  12.     for i, b in enumerate(dna):
  13.         dnaDict["%s%s" % (a, b)] = itemList[i]
The example approximates reading the data from a file.
Nov 10 '10 #2

Post your reply

Sign in to post your reply or Sign up for a free account.