comparison of files using set function

Beema shafreen beema.shafreen at gmail.com
Sat May 17 10:47:55 EDT 2008


I have files with two column, column 1 is with id and column 2 is with
data(sequence)
My goal is to create a table in such a way, the column one of the table
should have all the id from the files and next column will be have the
respective seq of the file1 with correlation to the id and the third column
will be sequence information of the next file with respective to the id
original files look like this

45    ytut
46    erete
37   dfasf
45  dassdsd


and so on  for all the 10 files that is it has two column as mentioned
above.

The output should look like this:

Id    file1      file2     file3     file4   file5
43    ytuh    ytuh     ytuh    ytuh    ytuh
46   erteee   rty       ryyy              ertyu
47   yutio    rrr                    eeerr



The goal is if the pick all the common id in the files and with their
respective information in the adjacent rows.
the various conditons ca also prevails
1) common id present in all the files, which have same information
2)common id present in all the files, which donot have same information
3) common id may not be present in all the files

But the goal is exactly find the common id in all the files and add their
corresponding information in the file to the table as per the view
 my script :
def file1_search(*files1):
    for file1 in files1:
        gi1_lis = []
        fh = open(file1,'r')
        for line in fh.readlines():
            data1 = line.strip().split('\t')
            gi1 = data1[0].strip()
            seq1 = data1[1].strip()
            gi1_lis.append(gi1)
        return gi1_lis
def file2_search(**files2):
    for file2 in files2:
        for file in files2[file2]:
            gi2_lis = []
            fh1 = open(file,'r')
            for line1 in fh1.readlines():
                data2 = line1.strip().split('\t')
                gi2 = data2[0].strip()
                seq2 = data2[1].strip()
                gi2_lis.append(gi2)

            return gi2_lis
def set_compare(data1,data2,*files1,**files2):
    A = set(data1)
    B = set(data2)
    I = A&B # common between thesetwo sets

    D = A-B #57 is the len of D
    C = B-A #176 is  the len of c
#    print len(C)
 #   print len(D)
    for file1 in files1:
        for gi in D:
            fh = open(file1,'r')
            for line in fh.readlines():
                data1 = line.strip().split('\t')
                gi1 = data1[0].strip()
                seq1 = data1[1].strip()
            if gi == gi1:
#                print line.strip()
                    pass

    for file2 in files2:
        for file in files2[file2]:
            for gi in C:
                fh1 = open(file,'r')
                for line1 in fh1.readlines():
                    data2 = line1.strip().split('\t')
                    gi2 = data2[0].strip()
                    seq2 = data2[1].strip()
                if gi == gi2:
                   # print line1.strip()
                    pass
if __name__ == "__main__":
    files1 = ["Fr20.txt",\
              "Fr22.txt",\
              "Fr24.txt",\
              "Fr60.txt",\
              "Fr62.txt"]
    files2 = {"data":["Fr64.txt",\
              "Fr66.txt",\
              "Fr68.txt",\
              "Fr70.txt",\
              "Fr72.txt"]}
    data1 = file1_search(*files1)

    """113 is the total number of gi"""
    data2 = file2_search(**files2)
    #for j in data2:
     #   print j
    """232 is the total number of gi found"""
    result = set_compare(data1,data2,*files1,**files2)

 It doesnot work fine... some body please suggest me the way i can proceed .
Thanks a lot

-- 
Beema Shafreen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080517/1943dae1/attachment.html>


More information about the Python-list mailing list