import utilities def get_probesetfreezes(inbredsetid): cursor, con = utilities.get_cursor() sql = """ SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName` FROM ProbeSetFreeze, ProbeFreeze WHERE ProbeSetFreeze.`ProbeFreezeId`=ProbeFreeze.`Id` AND ProbeFreeze.`InbredSetId`=%s """ cursor.execute(sql, (inbredsetid)) return cursor.fetchall() def get_probesetfreeze(probesetfreezeid): cursor, con = utilities.get_cursor() sql = """ SELECT ProbeSetFreeze.`Id`, ProbeSetFreeze.`Name`, ProbeSetFreeze.`FullName` FROM ProbeSetFreeze WHERE ProbeSetFreeze.`Id`=%s """ cursor.execute(sql, (probesetfreezeid)) return cursor.fetchone() def get_strains(inbredsetid): cursor, con = utilities.get_cursor() sql = """ SELECT Strain.`Id`, Strain.`Name` FROM StrainXRef, Strain WHERE StrainXRef.`InbredSetId`=%s AND StrainXRef.`StrainId`=Strain.`Id` ORDER BY StrainXRef.`OrderId` """ cursor.execute(sql, (inbredsetid)) return cursor.fetchall() def get_inbredset(probesetfreezeid): cursor, con = utilities.get_cursor() sql = """ SELECT InbredSet.`Id`, InbredSet.`Name`, InbredSet.`FullName` FROM InbredSet, ProbeFreeze, ProbeSetFreeze WHERE InbredSet.`Id`=ProbeFreeze.`InbredSetId` AND ProbeFreeze.`Id`=ProbeSetFreeze.`ProbeFreezeId` AND ProbeSetFreeze.`Id`=%s """ cursor.execute(sql, (probesetfreezeid)) return cursor.fetchone() def get_species(inbredsetid): cursor, con = utilities.get_cursor() sql = """ SELECT Species.`Id`, Species.`Name`, Species.`MenuName`, Species.`FullName` FROM InbredSet, Species WHERE InbredSet.`Id`=%s AND InbredSet.`SpeciesId`=Species.`Id` """ cursor.execute(sql, (inbredsetid)) return cursor.fetchone() def get_genofreeze_byinbredsetid(inbredsetid): cursor, con = utilities.get_cursor() sql = """ SELECT GenoFreeze.`Id`, GenoFreeze.`Name`, GenoFreeze.`FullName`, GenoFreeze.`InbredSetId` FROM GenoFreeze WHERE GenoFreeze.`InbredSetId`=%s """ cursor.execute(sql, (inbredsetid)) return cursor.fetchone() def get_nextdataid_genotype(): cursor, con = utilities.get_cursor() sql = """ SELECT GenoData.`Id` FROM GenoData ORDER BY GenoData.`Id` DESC LIMIT 1 """ cursor.execute(sql) re = cursor.fetchone() dataid = re[0] dataid += 1 return dataid def get_nextdataid_phenotype(): cursor, con = utilities.get_cursor() sql = """ SELECT PublishData.`Id` FROM PublishData ORDER BY PublishData.`Id` DESC LIMIT 1 """ cursor.execute(sql) re = cursor.fetchone() dataid = re[0] dataid += 1 return dataid def get_nextorderid_strainxref(inbredsetid): cursor, con = utilities.get_cursor() sql = """ SELECT StrainXRef.`OrderId` FROM StrainXRef WHERE StrainXRef.`InbredSetId`=%s ORDER BY StrainXRef.`OrderId` DESC LIMIT 1 """ cursor.execute(sql, (inbredsetid)) re = cursor.fetchone() if re: orderid = re[0] + 1 else: orderid = 1 return orderid def insert_strain(inbredsetid, strainname): speciesid = get_species(inbredsetid)[0] cursor, con = utilities.get_cursor() sql = """ INSERT INTO Strain SET Strain.`Name`=%s, Strain.`Name2`=%s, Strain.`SpeciesId`=%s """ cursor.execute(sql, (strainname, strainname, speciesid)) def insert_strainxref(inbredsetid, strainid): orderid = get_nextorderid_strainxref(inbredsetid) cursor, con = utilities.get_cursor() sql = """ INSERT INTO StrainXRef SET StrainXRef.`InbredSetId`=%s, StrainXRef.`StrainId`=%s, StrainXRef.`OrderId`=%s, StrainXRef.`Used_for_mapping`=%s, StrainXRef.`PedigreeStatus`=%s """ cursor.execute(sql, (inbredsetid, strainid, orderid, "N", None)) def get_strain(inbredsetid, strainname): speciesid = get_species(inbredsetid)[0] cursor, con = utilities.get_cursor() sql = """ SELECT Strain.`Id`, Strain.`Name` FROM Strain WHERE Strain.`SpeciesId`=%s AND Strain.`Name` LIKE %s """ cursor.execute(sql, (speciesid, strainname)) return cursor.fetchone() def get_strainxref(inbredsetid, strainid): cursor, con = utilities.get_cursor() sql = """ SELECT StrainXRef.`StrainId` FROM StrainXRef WHERE StrainXRef.`InbredSetId`=%s AND StrainXRef.`StrainId`=%s """ cursor.execute(sql, (inbredsetid, strainid)) return cursor.fetchone() def get_strain_sure(inbredsetid, strainname, updatestrainxref=None): strain = get_strain(inbredsetid, strainname) if not strain: insert_strain(inbredsetid, strainname) strain = get_strain(inbredsetid, strainname) strainxref = get_strainxref(inbredsetid, strain[0]) if not strainxref and updatestrainxref: insert_strainxref(inbredsetid, strain[0]) return strain def get_strains_bynames(inbredsetid, strainnames, updatestrainxref=None): strains = [] for strainname in strainnames: strains.append(get_strain_sure(inbredsetid, strainname, updatestrainxref)) return strains