[Tutor] second if

David Palao dpalao.python at gmail.com
Mon Feb 10 11:52:45 CET 2014


Also, could you explain better what is your doubt? You don't
understand what "index >= 1" means, or why this "if" at this point, or
anything else?

Best

2014-02-07 17:14 GMT+01:00 rahmad akbar <matbioinfo at gmail.com>:
> he guys, i am trying to understand this code: i understand the first if
> statement (if line.startswith..) in read_fasta function but couldnt
> understand the next one(if index >=...). thanks in advance!!
>
> import sys
> #class declaration with both attributes we need
> class Fasta:
>     def __init__(self, name, sequence):
>         #this will store the sequence name
>         self.name = name
>         #this  will store the sequence itself
>         self.sequence = sequence
>
> #this function will receive the list with the file
> #contents, create instances of the Fasta class as
> #it scans the list, putting the sequence name on the
> #first attribute and the sequence itself on the second
> #attribute
> def read_fasta(file):
>     #we declare an empty list that will store all
>     #Fasta class instances generated
>     items = []
>     index = 0
>     for line in file:
>     #we check to see if the line starts with a > sign
>         if line.startswith(">"):
>            #if so and our counter is large than 1
>            #we add the created class instance to our list
>            #a counter larger than 1 means we are reading
>            #from sequences 2 and above
>            if index >= 1:
>                items.append(aninstance)
>            index+=1
>            #we add the line contents to a string
>            name = line[:-1]
>            #and initialize the string to store the sequence
>            seq = ''
>            #this creates a class instance and we add the attributes
>            #which are the strings name and seq
>            aninstance = Fasta(name, seq)
>         else:
>            #the line does not start with > so it has to be
>            #a sequence line, so we increment the string and
>            #add it to the created instance
>             seq += line[:-1]
>             aninstance = Fasta(name, seq)
>
>     #the loop before reads everything but the penultimate
>     #sequence is added at the end, so we need to add it
>     #after the loop ends
>     items.append(aninstance)
>     #a list with all read sequences is returned
>     return items
>
> fastafile = open(sys.argv[1], 'r').readlines()
> mysequences = read_fasta(fastafile)
>
> print mysequences
>
> for i in mysequences:
>     print i.name
>
> --
> many thanks
> mat
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>


More information about the Tutor mailing list