about summary refs log tree commit diff
path: root/web/webqtl/textUI/cmdInterval.py
diff options
context:
space:
mode:
authorzsloan2015-03-27 20:28:51 +0000
committerzsloan2015-03-27 20:28:51 +0000
commitd0911a04958a04042da02a334ccc528dae79cc17 (patch)
tree3c48e2e937c1dbeaf00a5697c87ed251afa5c8f1 /web/webqtl/textUI/cmdInterval.py
parenta840ad18e1fe3db98a359a159e9b9b72367a2839 (diff)
downloadgenenetwork2-d0911a04958a04042da02a334ccc528dae79cc17.tar.gz
Removed everything from 'web' directory except genofiles and renamed the directory to 'genotype_files'
Diffstat (limited to 'web/webqtl/textUI/cmdInterval.py')
-rwxr-xr-xweb/webqtl/textUI/cmdInterval.py174
1 files changed, 0 insertions, 174 deletions
diff --git a/web/webqtl/textUI/cmdInterval.py b/web/webqtl/textUI/cmdInterval.py
deleted file mode 100755
index 0b97c7c3..00000000
--- a/web/webqtl/textUI/cmdInterval.py
+++ /dev/null
@@ -1,174 +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)
-#
-# Created by GeneNetwork Core Team 2010/08/10
-#
-# Last updated by GeneNetwork Core Team 2010/10/20
-
-import string
-import os
-
-import reaper
-
-from base import webqtlConfig
-from cmdClass import cmdClass
-		
-#########################################
-#      Interval Mapping Class
-#########################################
-class cmdInterval(cmdClass):
-
-	def __init__(self,fd=None):
-
-		cmdClass.__init__(self,fd)
-
-		if not webqtlConfig.TEXTUI:
-			self.contents.append("Please send your request to http://robot.genenetwork.org")
-			return
-
-
-		self.example = '###Example : <a href="%s%s?cmd=%s&probeset=100001_at&probe=136415&db=bra03-03Mas5&sort=pos&return=100&chr=12">%s%s?cmd=%s&probeset=100001_at&probe=136415&db=bra03-03Mas5&sort=pos&return=100&chr=12</a>' % (webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE, self.cmdID, webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE, self.cmdID)
-		if self.accessError:
-			return
-		self.sort = None
-		self.step = 0.01
-		self.peak = 1
-		self.chr = None
-		self.sort = None
-		self.returnnumber = 20
-		if self.error:
-			self.error = 1
-			self.contents.append(self.example)
-			return
-		else:
-			try:
-				self.sort = self.data.getvalue('sort')
-				if string.lower(self.sort) == 'pos':
-					self.sort = 'pos'
-				else:
-					self.sort = 'lrs'
-			except:
-				self.sort = None
-			
-			try:
-				self.returnnumber = int(self.data.getvalue('return'))
-			except:
-				self.returnnumber = 20
-			try:	
-				self.chr = self.data.getvalue('chr')
-			except:
-				self.chr = None
-				
-			self.readDB()
-
-	def  readDB(self):
-		prefix, dbId = self.getDBId(self.database)
-		if not prefix or not dbId or (self.probe and string.lower(self.probe) in ("all","mm","pm")):
-			self.contents.append("###Error: source trait doesn't exist or SELECT more than one trait.")
-			self.contents.append(self.example)
-			self.contents.append(self.accessCode)
-			return
-		RISet = self.getRISet(prefix, dbId)
-		traitdata, heads = self.getTraitData(prefix, dbId, self.probeset, self.probe)
-		if not traitdata:
-			self.contents.append("###Error: source trait doesn't exist or SELECT more than one trait.")
-			self.contents.append(self.example)
-			self.contents.append(self.accessCode)
-			return
-			
-		dataset0 = reaper.Dataset()
-		dataset0.read(os.path.join(webqtlConfig.GENODIR, RISet + '.geno'))
-		strainList = list(dataset0.prgy)
-		dataset = dataset0.addinterval()
-		if self.chr != None:
-			for _chr in dataset:
-				if string.lower(_chr.name) ==  string.lower(self.chr):
-					dataset.chromosome = [_chr]
-					break
-		
-		strains = []
-		trait = []
-		_prgy = dataset.prgy
-		for item in traitdata:
-			if item[0] in _prgy:
-				strains.append(item[0])	
-				trait.append(item[1])
-
-		qtlscan = dataset.regression(strains, trait)
-		LRS = dataset.permutation(strains, trait)
-		nperm = len(LRS)
-		
-		#print inter1[0]
-		returnPeak = []
-		nqtl = len(qtlscan)
-		if self.peak:
-			for i in range(nqtl):
-				if i == 0 or qtlscan[i].locus.chr != qtlscan[i-1].locus.chr:
-					if qtlscan[i].lrs < qtlscan[i+1].lrs:
-						continue
-				elif i == nqtl-1 or qtlscan[i].locus.chr != qtlscan[i+1].locus.chr:
-					if qtlscan[i].lrs < qtlscan[i-1].lrs:
-						continue
-				else:
-					if qtlscan[i].lrs < qtlscan[i+1].lrs or qtlscan[i].lrs < qtlscan[i-1].lrs:
-						continue
-				returnPeak.append(qtlscan[i])
-		else:
-			returnPeak = qtlscan[:]
-			
-		if returnPeak:
-			self.contents.append("Locus\tLRS\tChr\tAdditive\tp-value\tcM") 
-			qtlresult = []
-			for item in returnPeak:
-				p_value = reaper.pvalue(item.lrs,LRS)
-				qtlresult.append((item.locus.name,item.lrs,item.locus.chr,item.additive,p_value, item.locus.cM))
-			if self.sort == 'lrs':
-				qtlresult.sort(self.cmpLRS2)
-			for item in qtlresult:
-				self.contents.append("%s\t%2.4f\t%s\t%2.4f\t%1.4f\t%s" % item)
-		else:
-			self.contents.append("###Error: Error occurs while regression.")
-			return
-	
-	def cmpPValue(self,A,B):
-		try:
-			if A[-1] > B[-1]:
-				return 1
-			elif A[-1] ==  B[-1]:
-				return 0
-			else:
-				return -1	
-		except:
-			return 0
-
-	def cmpLRS2(self,A,B):
-		try:
-			if A[1] < B[1]:
-				return 1
-			elif A[1] == B[1]:
-				return 0
-			else:
-				return -1	
-		except:
-			return 0
-
-