drjekil wrote: > I have done something so far about that problem,but its not the good way to > do it > > need ur comments about that.... > Well, at least you can see that your approach is not satisfactory, so that means you have some sense of what's good and bad programming/
> > from string import *; > import sys > > myfile = open("/afs/pdc.kth.se/home/d/debnath/membrane/1a91A.txt") > a = myfile.readlines() > data = myfile.readlines() The first readlines() exhausts the file. > for line in myfile.readlines(): You should omit the assignments to a and to data, as they are using up the contents of the file that you want this statrement to iterate over. > fields = line.split('\t') > > items=fields.strip() > list1.append(items[1]) > Note that what you are doing here is building a list of the lines in the file to iterate over later, when you could just iterate over the lines in the file. > > for i in aminoacid: > if 10.0 <= z <= 22.0: > matches.append([1,i]) > #here i am getting comment! bash-3.1$ python bb.py > File "bb.py", line 16 > matches.append([1,i]) > ^ > IndentationError: expected an indented block > > else: > matches.append([-1,i]) > The error message is literally correct. The statement(s) controlled by an if must be indented relative to the if statement itself - remember, Python uses indentation to indicate block structure. Also, it seems a little unnecessary to build a list of all the matching lines and then process them, when you could process them one at a time as you read them from the file! > print "#T/F A C D E F G H I K L M N P Q R S T V W X Y > Z" > That looks fine! > for a in range(0,len(matches),1): > > if matches[a][0]==1: > > if matches[a][1]=='A': > print "1 1:1 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 > 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > elif matches[a][1]=='C': > print "1 1:0 2:1 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 > 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > elif matches[a][1]=='D': > > print " 1 1:0 2:0 3:1 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > """ if matches[a][1]=='E' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:1 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='F' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:1 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='G' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:1 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='H' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:1 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='I' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:1 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='K' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:1 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='L' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:1 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='M' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:1 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='N' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:1 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='P' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:1 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='Q' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:1 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='R' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:1 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='S' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:1 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='T' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:1 18:0 19:0 20:0 21:0" > if matches[a][1]=='V' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:1 19:0 20:0 21:0" > if matches[a][1]=='X' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:1 20:0 21:0" > if matches[a][1]=='Y' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:1 21:0" > if matches[a][1]=='Z' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:1" > > > """ > else: > if matches[a][1]=='A': > print "-1 1:1 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 > 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > elif matches[a][1]=='C': > print "-1 1:0 2:1 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > elif matches[a][1]=='D': > > print " 1 1:0 2:0 3:1 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > """ if matches[a][1]=='E' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:1 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='F' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:1 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='G' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:1 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='H' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:1 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='I' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:1 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='K' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:1 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='L' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:1 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='M' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:1 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='N' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:1 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='P' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:1 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='Q' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:1 15:0 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='R' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:1 16:0 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='S' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:1 17:0 18:0 19:0 20:0 21:0" > if matches[a][1]=='T' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:1 18:0 19:0 20:0 21:0" > if matches[a][1]=='V' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:1 19:0 20:0 21:0" > if matches[a][1]=='X' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:1 20:0 21:0" > if matches[a][1]=='Y' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:1 21:0" > if matches[a][1]=='Z' and matches[a][0]==1: > > print " 1 1:0 2:0 3:0 4:0 5:0 6:0 7:0 8:0 9:0 10:0 11:0 12:0 > 13:0 14:0 15:0 16:0 17:0 18:0 19:0 20:0 21:1" > waiting for ur opinion. > thanks > I think you're right about the logic being unnecessarily complex :-) The following is untested, but it will give you some idea of how you might proceed. myfile = open("/afs/pdc.kth.se/home/d/debnath/membrane/1a91A.txt") print "#T/F A C D E F G H I K L M N P Q R S T V W X Y Z" for line in myfile.readlines(): fields = line.strip().split('\t') if 10.0 <= float(fields[6]) <= 22.0: # Sets T/F flag flag = 1 else: flag = -1 pos = "ACDEFGHIKLMNPQRSTVWXYZ".index(fields[1]) m = [] for i in range(20): if pos == i: m.append("%d:1") else: m.append("%d:0") print flag, " ".join(m) This is not quite as compact as it could be. What you could do is try running it with print statements inserted to show you what value variables are taking in statements you don't understand. Hope this helps! regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list