Esempio n. 1
0
def bxd_probesets_locus(locus, inbredsetid):
    #
    file = open('probesets_%s.txt' % (locus), 'w+')
    file.write("GN Dataset ID\t")
    file.write("Dataset Full Name\t")
    file.write("ProbeSet Name\t")
    file.write("Symbol\t")
    file.write("ProbeSet Description\t")
    file.write("Probe Target Description\t")
    file.write("ProbeSet Chr\t")
    file.write("ProbeSet Mb\t")
    file.write("Mean\t")
    file.write("LRS\t")
    file.write("Geno Chr\t")
    file.write("Geno Mb\t")
    file.write("\n")
    file.flush()
    #
    results = probesets.get_normalized_probeset(locus=locus, inbredsetid=inbredsetid)
    for row in results:
        file.write("%s\t" % (row[0]))
        file.write("%s\t" % (utilities.clearspaces(row[2], default='')))
        file.write("%s\t" % (utilities.clearspaces(row[3], default='')))
        file.write("%s\t" % (utilities.clearspaces(row[4], default='')))
        file.write("%s\t" % (utilities.clearspaces(row[5], default='')))
        file.write("%s\t" % (utilities.clearspaces(row[6], default='')))
        file.write("%s\t" % (utilities.clearspaces(row[7], default='')))
        file.write("%s\t" % (row[8]))
        file.write("%s\t" % (row[9]))
        file.write("%s\t" % (row[10]))
        file.write("%s\t" % (utilities.clearspaces(row[11], default='')))
        file.write("%s\t" % (row[12]))
        file.write('\n')
        file.flush()
    file.close()
Esempio n. 2
0
def fetch(inbredsetid, filename):
    # parameters
    phenotypesfile = open(filename, 'w+')
    #
    phenotypesfile.write("id\tAuthors\tOriginal_description\tPre_publication_description\tPost_publication_description\t")
    # open db
    cursor, con = utilities.get_cursor()
    # get strain list
    strains = []
    sql = """
        SELECT Strain.`Name`
        FROM StrainXRef, Strain
        WHERE StrainXRef.`StrainId`=Strain.`Id`
        AND StrainXRef.`InbredSetId`=%s
        ORDER BY StrainXRef.`OrderId`
        """
    cursor.execute(sql, (inbredsetid))
    results = cursor.fetchall()
    for row in results:
        strain = row[0]
        strain = strain.lower()
        strains.append(strain)
    print "get %d strains: %s" % (len(strains), strains)
    phenotypesfile.write('\t'.join([strain.upper() for strain in strains]))
    phenotypesfile.write('\n')
    phenotypesfile.flush()
    # phenotypes
    sql = """
        SELECT PublishXRef.`Id`, Publication.`Authors`, Phenotype.`Original_description`, Phenotype.`Pre_publication_description`, Phenotype.`Post_publication_description`
        FROM (PublishXRef, Phenotype, Publication)
        WHERE PublishXRef.`InbredSetId`=%s
        AND PublishXRef.`PhenotypeId`=Phenotype.`Id`
        AND PublishXRef.`PublicationId`=Publication.`Id`
        """
    cursor.execute(sql, (inbredsetid))
    results = cursor.fetchall()
    print "get %d phenotypes" % (len(results))
    for phenotyperow in results:
        publishxrefid = phenotyperow[0]
        authors = utilities.clearspaces(phenotyperow[1])
        original_description = utilities.clearspaces(phenotyperow[2])
        pre_publication_description = utilities.clearspaces(phenotyperow[3])
        post_publication_description = utilities.clearspaces(phenotyperow[4])
        phenotypesfile.write("%s\t%s\t%s\t%s\t%s\t" % (publishxrefid, authors, original_description, pre_publication_description, post_publication_description))
        sql = """
            SELECT Strain.Name, PublishData.value
            FROM (PublishXRef, PublishData, Strain)
            WHERE PublishXRef.`InbredSetId`=%s
            AND PublishXRef.Id=%s
            AND PublishXRef.DataId=PublishData.Id
            AND PublishData.StrainId=Strain.Id
        """
        cursor.execute(sql, (inbredsetid, publishxrefid))
        results = cursor.fetchall()
        print "get %d values" % (len(results))
        strainvaluedic = {}
        for strainvalue in results:
            strainname = strainvalue[0]
            strainname = strainname.lower()
            value = strainvalue[1]
            strainvaluedic[strainname] = value
        for strain in strains:
            if strain in strainvaluedic:
                phenotypesfile.write(str(strainvaluedic[strain]))
            else:
                phenotypesfile.write('x')
            phenotypesfile.write('\t')
        phenotypesfile.write('\n')
        phenotypesfile.flush()
    # release
    phenotypesfile.close()