aboutsummaryrefslogtreecommitdiff
path: root/wqflask/dbFunction/webqtlDatabaseFunction.py
diff options
context:
space:
mode:
authorPjotr Prins2016-06-23 05:20:34 +0000
committerPjotr Prins2016-06-23 05:20:34 +0000
commit93c1742a91c478667b8645c458cce2108eb24b14 (patch)
tree3906f5cb7ad6ed2063069e104e910b195c35b471 /wqflask/dbFunction/webqtlDatabaseFunction.py
parente6154e0a4397625793109b9a292dedb314ec00b7 (diff)
downloadgenenetwork2-93c1742a91c478667b8645c458cce2108eb24b14.tar.gz
Refactored dir name dbFunction to db
Diffstat (limited to 'wqflask/dbFunction/webqtlDatabaseFunction.py')
-rw-r--r--wqflask/dbFunction/webqtlDatabaseFunction.py267
1 files changed, 0 insertions, 267 deletions
diff --git a/wqflask/dbFunction/webqtlDatabaseFunction.py b/wqflask/dbFunction/webqtlDatabaseFunction.py
deleted file mode 100644
index e30929d2..00000000
--- a/wqflask/dbFunction/webqtlDatabaseFunction.py
+++ /dev/null
@@ -1,267 +0,0 @@
-# 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)
-
-from inspect import stack
-from flask import Flask, g
-
-import MySQLdb
-import string
-import urllib2
-import json
-from base import webqtlConfig
-from utility.tools import USE_GN_SERVER, LOG_SQL
-from utility.benchmark import Bench
-
-from utility.logger import getLogger
-logger = getLogger(__name__ )
-
-###########################################################################
-#output: cursor instance
-#function: connect to database and return cursor instance
-###########################################################################
-def getCursor():
- try:
- logger.warning("Creating new MySQLdb cursor")
- 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
-
-def fetchone(query):
- """Return tuple containing one row by calling SQL directly
-
- """
- with Bench("SQL",LOG_SQL):
- def helper(query):
- res = g.db.execute(query)
- return res.fetchone()
- callername = stack()[1][3]
- return logger.sql(callername, query, helper)
-
-def gn_server(path):
- """Return JSON record by calling GN_SERVER
-
- """
- with Bench("GN_SERVER",LOG_SQL):
- res = urllib2.urlopen("http://localhost:8880/"+path)
- rest = res.read()
- res2 = json.loads(rest)
- logger.info(res2)
- return res2
-
-def retrieve_species(group):
- """Get the species of a group (e.g. returns string "mouse" on "BXD"
-
- """
- if USE_GN_SERVER:
- result = gn_server("/cross/"+group+".json")
- return result["species"]
- else:
- result = fetchone("select Species.Name from Species, InbredSet where InbredSet.Name = '%s' and InbredSet.SpeciesId = Species.Id" % (group))
- return result[0]
-
-def getMappingMethod(cursor=None, groupName=None):
- if USE_GN_SERVER:
- return gn_server("/cross/"+group+".json")["mapping_method_id"]
- else:
- return fetchone("select MappingMethodId from InbredSet where Name= '%s'" % groupName)
-
-###########################################################################
-#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
-
-
-def retrieve_species_id(group):
- return g.db.execute("select SpeciesId from InbredSet where Name = %s", (group)).fetchone()[0]
-
-
-def getTissueDataSet(cursor=None):
- """Retrieve all TissueProbeSetFreezeId,Name,FullName info from
-TissueProbeSetFreeze table. These data will listed in the dropdown
-menu in the first page of Tissue Correlation
-
- """
- 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