about summary refs log tree commit diff
path: root/web/webqtl/dbFunction
diff options
context:
space:
mode:
authorroot2012-05-08 18:39:56 -0500
committerroot2012-05-08 18:39:56 -0500
commitea46f42ee640928b92947bfb204c41a482d80937 (patch)
tree9b27a4eb852d12539b543c3efee9d2a47ef470f3 /web/webqtl/dbFunction
parent056b5253fc3857b0444382aa39944f6344dc1ceb (diff)
downloadgenenetwork2-ea46f42ee640928b92947bfb204c41a482d80937.tar.gz
Add all the source codes into the github.
Diffstat (limited to 'web/webqtl/dbFunction')
-rwxr-xr-xweb/webqtl/dbFunction/__init__.py0
-rwxr-xr-xweb/webqtl/dbFunction/webqtlDatabaseFunction.py265
2 files changed, 265 insertions, 0 deletions
diff --git a/web/webqtl/dbFunction/__init__.py b/web/webqtl/dbFunction/__init__.py
new file mode 100755
index 00000000..e69de29b
--- /dev/null
+++ b/web/webqtl/dbFunction/__init__.py
diff --git a/web/webqtl/dbFunction/webqtlDatabaseFunction.py b/web/webqtl/dbFunction/webqtlDatabaseFunction.py
new file mode 100755
index 00000000..772e0526
--- /dev/null
+++ b/web/webqtl/dbFunction/webqtlDatabaseFunction.py
@@ -0,0 +1,265 @@
+# Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Affero General Public License
+# as published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Affero General Public License for more details.
+#
+# This program is available from Source Forge: at GeneNetwork Project
+# (sourceforge.net/projects/genenetwork/).
+#
+# Contact Drs. Robert W. Williams and Xiaodong Zhou (2010)
+# at rwilliams@uthsc.edu and xzhou15@uthsc.edu
+#
+#
+#
+# This module is used by GeneNetwork project (www.genenetwork.org)
+#
+# Created by GeneNetwork Core Team 2010/08/10
+#
+# Last updated by Xiaodong Zhou 2011/Jan/20
+
+#webqtlDatabaseFunction.py
+#
+#This file consists of various database related functions; the names are generally self-explanatory. 
+
+import MySQLdb
+import string
+from base import webqtlConfig
+
+###########################################################################
+#output: cursor instance
+#function: connect to database and return cursor instance
+###########################################################################
+def getCursor():
+    try:
+        con = MySQLdb.Connect(db=webqtlConfig.DB_NAME, host=webqtlConfig.MYSQL_SERVER, user=webqtlConfig.DB_USER, passwd=webqtlConfig.DB_PASSWD)
+        cursor = con.cursor()
+        return cursor
+    except:
+        return None
+
+
+
+###########################################################################
+#input: cursor, groupName (string)
+#output: mappingMethodId (int) info, value will be Null or else
+#function: retrieve mappingMethodId info from InbredSet table  
+###########################################################################	
+
+def getMappingMethod(cursor=None, groupName=None):
+	cursor.execute("select MappingMethodId from InbredSet where Name= '%s'" % groupName)
+	mappingMethodId = cursor.fetchone()[0]
+	return mappingMethodId
+
+###########################################################################
+#input: cursor, inbredSetId (int), strainId (int)
+#output: isMappingId (bull) info, value will be 0,1,2 or else, 0 or Null means 
+# "can not do mapping", >0 means "can do mapping", >1 means "there exsists 
+# redundant data, user needs to choose one to do mapping function"
+#function: retrieve isMappingId info from StrainXRef table  
+###########################################################################	
+	
+def isMapping(cursor=None, inbredSetId=None, strainId=None): 
+	cursor.execute("select IsMapping from StrainXRef where InbredSetId='%d' and StrainId = '%d'" %(inbredSetId, strainId))
+	isMappingId = cursor.fetchone()[0]
+	return isMappingId
+
+###########################################################################
+#input: cursor, groupName (string)
+#output: all species data info (array), value will be Null or else
+#function: retrieve all species info from Species table  
+###########################################################################	
+
+def getAllSpecies(cursor=None):
+	cursor.execute("select Id, Name, MenuName, FullName, TaxonomyId,OrderId from Species Order by OrderId")
+	allSpecies = cursor.fetchall()
+	return allSpecies
+
+###########################################################################
+#input: cursor, RISet (string)
+#output: specie's name (string), value will be None or else
+#function: retrieve specie's name info based on RISet  
+###########################################################################	
+
+def retrieveSpecies(cursor=None, RISet=None):
+	try:
+		cursor.execute("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % RISet)
+		return cursor.fetchone()[0]
+	except:
+		return None
+
+###########################################################################
+#input: cursor, RISet (string)
+#output: specie's Id (string), value will be None or else
+#function: retrieve specie's Id info based on RISet  
+###########################################################################	
+		
+def retrieveSpeciesId(cursor=None, RISet=None):
+	try:
+		cursor.execute("select SpeciesId from InbredSet where Name = '%s'" % RISet)
+		return cursor.fetchone()[0]
+	except:
+		return None
+
+###########################################################################
+# input: cursor
+# output: tissProbeSetFreezeIdList (list),
+#         nameList (list),
+#         fullNameList (list)
+# function: retrieve all TissueProbeSetFreezeId,Name,FullName info
+#           from TissueProbeSetFreeze table.
+#           These data will listed in the dropdown menu in the first page of Tissue Correlation
+###########################################################################
+
+def getTissueDataSet(cursor=None):
+	tissProbeSetFreezeIdList=[]
+	nameList =[]
+	fullNameList = []
+	
+	query = "select Id,Name,FullName from TissueProbeSetFreeze; "
+	try:
+		cursor.execute(query)
+		result = cursor.fetchall()
+	
+		for row in result:
+			tissProbeSetFreezeIdList.append(row[0])
+			nameList.append(row[1])
+			fullNameList.append(row[2])
+	except:
+		return None	
+		
+	return tissProbeSetFreezeIdList,nameList,fullNameList	
+	
+###########################################################################
+# input: cursor,GeneSymbol (string), and TissueProbeSetFreezeId (string)
+# output: geneId (string), dataId (string)
+# function: retrieve geneId and DataId from TissueProbeSetXRef table
+###########################################################################
+
+def getGeneIdDataIdForTissueBySymbol(cursor=None, GeneSymbol=None, TissueProbeSetFreezeId= 0):
+	query ="select GeneId, DataId from TissueProbeSetXRef where Symbol = '%s' and TissueProbeSetFreezeId=%s order by Mean desc" %(GeneSymbol,TissueProbeSetFreezeId)
+	try:
+		cursor.execute(query)
+		result = cursor.fetchone()
+		geneId = result[0]
+		dataId = result[1]
+	except:
+		geneId = 0
+		dataId = 0
+		
+	return geneId,dataId
+
+###########################################################################
+# input: cursor, TissueProbeSetFreezeId (int)
+# output: chipId (int)
+# function: retrieve chipId from TissueProbeFreeze table 
+###########################################################################
+
+def getChipIdByTissueProbeSetFreezeId(cursor=None, TissueProbeSetFreezeId=None):
+	query = "select TissueProbeFreezeId from TissueProbeSetFreeze where Id =%s" % TissueProbeSetFreezeId
+	try:
+		cursor.execute(query)
+		result = cursor.fetchone()
+		TissueProbeFreezeId = result[0]
+	except:
+		TissueProbeFreezeId =0
+		
+	query1 = "select ChipId from TissueProbeFreeze where Id =%s" % TissueProbeFreezeId
+	try:
+		cursor.execute(query1)
+		result1 = cursor.fetchone()
+		chipId = result1[0]
+	except:
+		chipId =0
+		
+	return chipId
+
+###########################################################################
+# input: cursor, TissueProbeSetFreezeId (int)
+# output: TissueCount (int)
+# function: retrieve how many tissue used in the specific dataset based on TissueProbeSetFreezeId
+###########################################################################
+def getTissueCountByTissueProbeSetFreezeId(cursor=None, TissueProbeSetFreezeId=None):
+	query1 ="select DataId from TissueProbeSetXRef where TissueProbeSetFreezeId =%s limit 1" % TissueProbeSetFreezeId
+	try:
+		cursor.execute(query1)
+		result1 = cursor.fetchone()
+		DataId = result1[0]
+		
+		query2 =" select count(*) from TissueProbeSetData where Id=%s" % DataId
+		try:
+			cursor.execute(query2)
+			result2 = cursor.fetchone()
+			TissueCount = result2[0]
+		except:
+			TissueCount =0
+	except:
+		TissueCount =0
+		
+	return TissueCount
+	
+###########################################################################
+# input: cursor, TissueProbeSetFreezeId (int)
+# output: DatasetName(string),DatasetFullName(string)
+# function: retrieve DatasetName, DatasetFullName based on TissueProbeSetFreezeId
+###########################################################################
+def getDatasetNamesByTissueProbeSetFreezeId(cursor=None, TissueProbeSetFreezeId=None):
+	query ="select Name, FullName from TissueProbeSetFreeze where Id=%s" % TissueProbeSetFreezeId
+	try:
+		cursor.execute(query)
+		result = cursor.fetchone()
+		DatasetName = result[0]
+		DatasetFullName =result[1]
+	except:
+		DatasetName =None
+		DatasetFullName =None
+				
+	return DatasetName, DatasetFullName
+	
+###########################################################################
+# input: cursor, geneIdLst (list)
+# output: geneIdSymbolPair(dict),key is geneId, value is geneSymbol
+# function: retrieve GeneId, GeneSymbol based on geneId List
+###########################################################################	
+def getGeneIdSymbolPairByGeneId(cursor=None, geneIdLst =None):
+	geneIdSymbolPair={}
+	for geneId in geneIdLst:
+		geneIdSymbolPair[geneId]=None
+
+	query ="select GeneId,GeneSymbol from GeneList where GeneId in (%s)" % string.join(geneIdLst, ", ")
+	try:
+		cursor.execute(query)
+		results = cursor.fetchall()
+		for item in results:
+			geneId =item[0]
+			geneSymbol =item[1]
+			geneIdSymbolPair[geneId]=geneSymbol
+	except:
+		geneIdSymbolPair=None
+				
+	return geneIdSymbolPair
+	
+	
+def updateTissueProbesetXRefByProbesetId(cursor=None, probesetId=None):
+	query ="select Symbol,GeneId,Chr,Mb,description, Probe_Target_Description from ProbeSet where Id =%s"%probesetId
+	try:
+		cursor.execute(query)
+		result =cursor.fetchone()
+	
+		updateQuery ='''
+				Update TissueProbeSetXRef 
+				Set Symbol='%s',GeneId='%s', Chr='%s', Mb='%s', description ='%s',Probe_Target_Description='%s'
+				where ProbesetId=%s
+				'''%(result[0],result[1],result[2],result[3],result[4],result[5],probesetId)
+				
+		cursor.execute(updateQuery)
+	
+	except:
+		return None
+		
\ No newline at end of file