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