about summary refs log tree commit diff
path: root/web/webqtl/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'web/webqtl/main.py')
-rw-r--r--web/webqtl/main.py699
1 files changed, 699 insertions, 0 deletions
diff --git a/web/webqtl/main.py b/web/webqtl/main.py
new file mode 100644
index 00000000..f37fae01
--- /dev/null
+++ b/web/webqtl/main.py
@@ -0,0 +1,699 @@
+# 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
+
+
+from mod_python import apache, util, Session, Cookie
+import time
+import string
+
+from base.webqtlFormData import webqtlFormData
+
+import logging
+logging.basicConfig(filename="/tmp/gn_log", level=logging.INFO)
+_log = logging.getLogger("main")
+
+
+
+def handler(req):
+	_log.info("Handling a request")
+	req.content_type = 'text/html'
+
+	formdata = util.FieldStorage(req)
+
+	formID = formdata.getfirst('FormID')
+	sid = formdata.getfirst('sid')
+	cmdID = formdata.getfirst('cmd')
+	page = None
+
+	#XZ: this statement must be put into handler function
+	_log.info("Loading session")
+	mod_python_session = Session.Session(req, timeout=864000, lock=0)
+	mod_python_session.load()			
+	_log.info("Done loading session")
+
+	if sid:
+		from cmdLine import procPage
+		reload(procPage)
+		req.content_type = 'text/html'
+		procPage.procPage(sid, req)
+	else:	
+		fd = webqtlFormData(req=req, mod_python_session=mod_python_session, FieldStorage_formdata=formdata)
+
+		if formID:
+		        _log.info("Dispatching on %s, %s"%(formID, fd.formID))
+			#XZ: Special case. Pay attention to parameters! We can NOT pass 'fd'!
+                        if fd.formID == 'uploadFile':
+				from base import cookieData
+				from misc import uploadFilePage
+				reload(uploadFilePage)
+				reload(cookieData)
+				cookies = cookieData.cookieData(Cookie.get_cookies(req)) #new module
+				req.content_type = 'text/html'
+				page = uploadFilePage.uploadFilePage(fd, formdata, cookies)
+
+                        #search
+                        elif fd.formID in ('searchResult','asearchResult'):
+                                from search import SearchResultPage
+                                reload(SearchResultPage)
+                                req.content_type = 'text/html'
+                                page = SearchResultPage.SearchResultPage(fd)
+
+                        #showTrait
+                        elif fd.formID == 'showDatabase':
+                                from showTrait import ShowTraitPage
+                                reload(ShowTraitPage)
+                                req.content_type = 'text/html'
+                                page = ShowTraitPage.ShowTraitPage(fd)
+                        elif fd.formID == 'showBest':
+                                from showTrait import ShowBestTrait
+                                reload(ShowBestTrait)
+                                req.content_type = 'text/html'
+                                page = ShowBestTrait.ShowBestTrait(fd)
+                        elif fd.formID == 'showProbeInfo':
+                                from showTrait import ShowProbeInfoPage
+                                reload(ShowProbeInfoPage)
+                                page = ShowProbeInfoPage.ShowProbeInfoPage(fd)
+                                req.content_type = 'text/html'
+			elif fd.formID in ('crossChoice', 'varianceChoice'):
+				if not fd.submitID:
+					req.content_type = 'text/html'
+					req.write('check your page')
+				elif fd.submitID == 'sample':
+					from showTrait import testTraitPage  # new module
+					reload(testTraitPage)
+					page = testTraitPage.testTraitPage()
+					req.content_type = 'text/html'
+				else:
+					from showTrait import DataEditingPage
+					reload(DataEditingPage)
+					req.content_type = 'text/html'
+					page = DataEditingPage.DataEditingPage(fd)
+
+			#from Trait Data and Analysis form page
+			elif fd.formID == 'dataEditing':
+				if not fd.submitID:
+					req.content_type = 'text/html'
+					req.write('check your page')
+				elif fd.submitID == 'basicStatistics': #Updated Basic Statistics page (pop-up when user hits "update" button in DataEditingPage.py
+					from basicStatistics import updatedBasicStatisticsPage
+                                        reload(updatedBasicStatisticsPage)
+                                        req.content_type = 'text/html'
+                                        page = updatedBasicStatisticsPage.updatedBasicStatisticsPage(fd)
+                                elif fd.submitID == 'updateRecord':
+                                        from updateTrait import DataUpdatePage
+                                        reload(DataUpdatePage)
+                                        req.content_type = 'text/html'
+                                        page=DataUpdatePage.DataUpdatePage(fd)
+                                elif fd.submitID == 'addRecord':
+                                        from collection import AddUserInputToSelectionPage
+                                        reload(AddUserInputToSelectionPage)
+                                        page = AddUserInputToSelectionPage.AddUserInputToSelectionPage(fd)
+                                        req.content_type = 'text/html'
+                                elif fd.submitID == 'addPublish':
+                                        from submitTrait import AddUserInputToPublishPage
+                                        reload(AddUserInputToPublishPage)
+                                        req.content_type = 'text/html'
+                                        page = AddUserInputToPublishPage.AddUserInputToPublishPage(fd)
+                                elif fd.submitID == 'correlation':
+                                        from cmdLine import cmdCorrelationPage
+                                        reload(cmdCorrelationPage)
+                                        page = cmdCorrelationPage.cmdCorrelationPage(fd)
+                                elif fd.submitID == 'intervalMap':
+                                        from cmdLine import cmdIntervalMappingPage
+                                        reload(cmdIntervalMappingPage)
+                                        page = cmdIntervalMappingPage.cmdIntervalMappingPage(fd)
+				elif fd.submitID == 'markerRegression':
+					from cmdLine import cmdMarkerRegressionPage
+					reload(cmdMarkerRegressionPage)
+					req.content_type = 'text/html'
+					page = cmdMarkerRegressionPage.cmdMarkerRegressionPage(fd)
+
+				elif fd.submitID == 'directPlot':
+					from cmdLine import cmdDirectPlotPage
+					reload(cmdDirectPlotPage)
+					req.content_type = 'text/html'
+					page = cmdDirectPlotPage.cmdDirectPlotPage(fd)
+				elif fd.submitID == 'exportData':
+					from showTrait import exportPage
+					reload(exportPage)
+					req.content_type = 'text/html'
+					page = exportPage.ExportPage(fd)
+				elif fd.submitID == 'showAll':
+					from cmdLine import cmdShowAllPage
+					reload(cmdShowAllPage)
+					page = cmdShowAllPage.cmdShowAllPage(fd)
+				elif fd.submitID == 'showAll2':
+					from cmdLine import cmdShowAllPage2
+					reload(cmdShowAllPage2)
+					page=cmdShowAllPage2.cmdShowAllPage2(fd)
+				else:
+					pass
+
+			#from marker regression result page
+                        elif fd.formID == 'secondRegression':
+                                if not fd.submitID:
+                                        req.content_type = 'text/html'
+                                        req.write('check your page')
+                                elif fd.submitID == 'compositeRegression':
+                                        req.content_type = 'text/html'
+                                        from markerRegression import CompositeMarkerRegressionPage
+                                        reload(CompositeMarkerRegressionPage)
+                                        page = CompositeMarkerRegressionPage.CompositeMarkerRegressionPage(fd)
+                                elif fd.submitID == 'intervalMap':
+                                        from intervalMapping import IntervalMappingPage
+                                        reload(IntervalMappingPage)
+                                        page = IntervalMappingPage.IntervalMappingPage(fd)
+                                else:
+                                        pass
+
+			#cmdLine	
+			elif fd.formID == 'showIntMap':
+				from cmdLine import cmdIntervalMappingPage
+				reload(cmdIntervalMappingPage)
+				page = cmdIntervalMappingPage.cmdIntervalMappingPage(fd)
+                        elif fd.formID == 'heatmap':
+                                from cmdLine import cmdHeatmapPage
+                                reload(cmdHeatmapPage)
+                                page = cmdHeatmapPage.cmdHeatmapPage(fd)
+                        elif fd.formID == 'networkGraph':
+                                from cmdLine import cmdNetworkGraphPage
+                                reload(cmdNetworkGraphPage)
+                                page = cmdNetworkGraphPage.cmdNetworkGraphPage(fd)
+                        elif fd.formID == 'compCorr2':
+                                from cmdLine import cmdCompCorrPage
+                                reload(cmdCompCorrPage)
+                                page = cmdCompCorrPage.cmdCompCorrPage(fd)
+                        elif fd.formID == 'calPartialCorrDB':
+                                from cmdLine import cmdPartialCorrelationPage
+                                reload(cmdPartialCorrelationPage)
+                                page = cmdPartialCorrelationPage.cmdPartialCorrelationPage(fd)
+				
+			#pairScan
+			elif fd.formID == 'showCategoryGraph':
+				from pairScan import CategoryGraphPage
+				reload(CategoryGraphPage)
+				req.content_type = 'text/html'
+				page = CategoryGraphPage.CategoryGraphPage(fd)
+			elif fd.formID == 'pairPlot':
+				from pairScan import PairPlotPage
+				reload(PairPlotPage)
+				req.content_type = 'text/html'
+				page = PairPlotPage.PairPlotPage(fd)
+
+			#compareCorrelates
+			elif fd.formID == 'compCorr':
+				from compareCorrelates import MultipleCorrelationPage
+				reload(MultipleCorrelationPage)
+				page = MultipleCorrelationPage.MultipleCorrelationPage(fd)
+
+			#correlationMatrix
+			elif fd.formID == 'corMatrix':
+				from correlationMatrix import CorrelationMatrixPage
+				reload(CorrelationMatrixPage)
+				req.content_type = 'text/html'
+				page = CorrelationMatrixPage.CorrelationMatrixPage(fd)
+                        elif fd.formID=='tissueCorrelation' or fd.formID=='dispMultiSymbolsResult':
+                                from correlationMatrix import TissueCorrelationPage
+                                reload(TissueCorrelationPage)
+                                page = TissueCorrelationPage.TissueCorrelationPage(fd)
+			elif fd.formID =='dispTissueCorrelationResult':
+				from cmdLine import cmdTissueCorrelationResultPage
+				reload (cmdTissueCorrelationResultPage)
+				page = cmdTissueCorrelationResultPage.cmdTissueCorrelationResultPage(fd)
+			elif fd.formID=='tissueAbbreviation':
+				from correlationMatrix import TissueAbbreviationPage
+				reload(TissueAbbreviationPage)
+				page = TissueAbbreviationPage.TissueAbbreviationPage(fd)
+			
+			#collection
+			elif fd.formID == 'dispSelection':
+				from collection import DisplaySelectionPage
+				reload(DisplaySelectionPage)
+				page = DisplaySelectionPage.DisplaySelectionPage(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'addToSelection':
+				from collection import AddToSelectionPage
+				reload(AddToSelectionPage)
+				page = AddToSelectionPage.AddToSelectionPage(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'removeSelection':
+				from collection import RemoveSelectionPage
+				reload(RemoveSelectionPage)
+				page = RemoveSelectionPage.RemoveSelectionPage(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'exportSelect':
+				from collection import ExportSelectionPage
+				reload(ExportSelectionPage)
+				page = ExportSelectionPage.ExportSelectionPage(fd)
+			elif fd.formID == 'importSelect':
+				from collection import ImportSelectionPage
+				reload(ImportSelectionPage)
+				page = ImportSelectionPage.ImportSelectionPage(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'exportSelectionDetailInfo':
+				from collection import ExportSelectionDetailInfoPage
+				reload(ExportSelectionDetailInfoPage)
+				page = ExportSelectionDetailInfoPage.ExportSelectionDetailInfoPage(fd)
+                        elif fd.formID == 'batSubmitResult':
+                                from collection import BatchSubmitSelectionPage
+                                reload(BatchSubmitSelectionPage)
+                                page = BatchSubmitSelectionPage.BatchSubmitSelectionPage(fd)
+                                req.content_type = 'text/html'
+
+			#user
+			elif fd.formID == 'userLogin':
+				from user import userLogin
+				reload(userLogin)
+				page = userLogin.userLogin(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'userLogoff':
+				from user import userLogoff
+				reload(userLogoff)
+				page = userLogoff.userLogoff(fd)
+				req.content_type = 'text/html'
+			elif fd.formID == 'userPasswd':
+				from user import userPasswd
+				reload(userPasswd)
+				page = userPasswd.userPasswd(fd)
+				req.content_type = 'text/html'
+
+			#submitTrait
+                        elif fd.formID == 'pre_dataEditing':
+                                from submitTrait import VarianceChoicePage
+                                reload(VarianceChoicePage)
+                                page = VarianceChoicePage.VarianceChoicePage(fd)
+                                req.content_type = 'text/html'
+			elif fd.formID == 'batSubmit':
+				from submitTrait import BatchSubmitPage
+				reload(BatchSubmitPage)
+				req.content_type = 'text/html'
+				page = BatchSubmitPage.BatchSubmitPage(fd)
+
+
+			#misc
+                        elif fd.formID == 'editHtml':
+                                from misc import editHtmlPage
+                                reload(editHtmlPage)
+                                req.content_type = 'text/html'
+                                page = editHtmlPage.editHtmlPage(fd)
+
+			#genomeGraph
+			elif fd.formID == 'transciptMapping':
+				from genomeGraph import cmdGenomeScanPage
+				reload(cmdGenomeScanPage)
+				req.content_type = 'text/html'
+				page = cmdGenomeScanPage.cmdGenomeScanPage(fd)
+			elif fd.formID == 'genAllDbResult':
+				from genomeGraph import genAllDbResultPage
+				reload(genAllDbResultPage)
+				page = genAllDbResultPage.genAllDbResultPage(fd)	
+
+			#geneWiki
+			elif fd.formID == 'geneWiki':
+				from geneWiki import AddGeneRIFPage
+				reload(AddGeneRIFPage)
+				page = AddGeneRIFPage.AddGeneRIFPage(fd)
+
+			#externalResource
+			elif fd.formID == 'GOTree':
+				from externalResource import GoTreePage
+				reload(GoTreePage)
+				req.content_type = 'text/html'
+				page = GoTreePage.GoTreePage(fd)
+			elif fd.formID == 'ODE':
+                                from externalResource import ODEPage
+                                reload(ODEPage)
+                                req.content_type = 'text/html'
+                                page = ODEPage.ODEPage(fd)
+                        elif fd.formID == 'GCAT':
+                                from externalResource import GCATPage
+                                reload(GCATPage)
+                                req.content_type = 'text/html'
+                                page = GCATPage.GCATPage(fd)
+
+			#management
+                        elif fd.formID == 'managerMain':
+                                from management import managerMainPage
+                                reload(managerMainPage)
+                                req.content_type = 'text/html'
+                                page = managerMainPage.managerMainPage(fd)
+                        elif fd.formID == 'createUserAccount':
+                                from management import createUserAccountPage
+                                reload(createUserAccountPage)
+                                req.content_type = 'text/html'
+                                page = createUserAccountPage.createUserAccountPage(fd)
+                        elif fd.formID == 'assignUserToDataset':
+                                from management import assignUserToDatasetPage
+                                reload(assignUserToDatasetPage)
+                                req.content_type = 'text/html'
+                                page = assignUserToDatasetPage.assignUserToDatasetPage(fd)
+                        elif fd.formID == 'deletePhenotypeTrait':
+                                from management import deletePhenotypeTraitPage
+                                reload(deletePhenotypeTraitPage)
+                                req.content_type = 'text/html'
+                                page = deletePhenotypeTraitPage.deletePhenotypeTraitPage(fd)	
+                        elif fd.formID == 'exportPhenotypeDataset':
+                                from management import exportPhenotypeDatasetPage
+                                reload(exportPhenotypeDatasetPage)
+                                req.content_type = 'text/html'
+                                page = exportPhenotypeDatasetPage.exportPhenotypeDatasetPage(fd)
+                        elif fd.formID == 'editHeaderFooter':
+                                from management import editHeaderFooter
+                                reload(editHeaderFooter)
+                                req.content_type = 'text/html'
+                                page = editHeaderFooter.editHeaderFooter(fd)
+			elif fd.formID == 'updGeno':
+                                from management import GenoUpdate
+                                reload(GenoUpdate)
+                                req.content_type = 'text/html'
+                                page = GenoUpdate.GenoUpdate(fd)
+
+			#correlation
+                        elif fd.formID == 'showCorrelationPlot':
+                                from correlation import PlotCorrelationPage
+                                reload(PlotCorrelationPage)
+                                req.content_type = 'text/html'
+                                page = PlotCorrelationPage.PlotCorrelationPage(fd)
+                        elif fd.formID == 'partialCorrInput':
+                                from correlation import PartialCorrInputPage
+                                reload(PartialCorrInputPage)
+                                req.content_type = 'text/html'
+                                page = PartialCorrInputPage.PartialCorrInputPage(fd)
+                        elif fd.formID == 'calPartialCorrTrait':
+                                from correlation import PartialCorrTraitPage
+                                reload(PartialCorrTraitPage)
+                                req.content_type = 'text/html'
+                                page = PartialCorrTraitPage.PartialCorrTraitPage(fd)
+
+			#elif fd.formID == 'BNInput':
+			#	from BN import BNInputPage
+			#	reload(BNInputPage)
+			#	req.content_type = 'text/html'
+			#	page = BNInputPage.BNInputPage(fd)
+
+                        elif fd.formID == 'updateRecord':
+				from updateTrait import DataUpdatePage
+				reload(DataUpdatePage)
+				req.content_type = 'text/html'
+				page=DataUpdatePage.DataUpdatePage(fd)
+
+			#schema
+			elif fd.formID == 'schemaShowPage':
+				from schema import ShowSchemaPage
+				reload(ShowSchemaPage)
+				req.content_type = 'text/html'
+				page = ShowSchemaPage.ShowSchemaPage(fd)
+			elif fd.formID == 'schemaShowComment':
+				from schema import ShowCommentPage
+				reload(ShowCommentPage)
+				req.content_type = 'text/html'
+				page = ShowCommentPage.ShowCommentPage(fd)
+			elif fd.formID == 'schemaUpdateComment':
+				from schema import UpdateCommentPage
+				reload(UpdateCommentPage)
+				req.content_type = 'text/html'
+				page = UpdateCommentPage.UpdateCommentPage(fd)
+
+			#snpBrowser
+			elif fd.formID == 'snpBrowser':
+				req.content_type = 'text/html'
+				snpId = fd.formdata.getfirst('snpId')
+				if snpId:
+					from snpBrowser import snpDetails
+					reload(snpDetails)
+					page = snpDetails.snpDetails(fd, snpId)
+				else:
+					from snpBrowser import snpBrowserPage
+					reload(snpBrowserPage)
+					page = snpBrowserPage.snpBrowserPage(fd)
+			elif fd.formID =='SnpBrowserResultPage':
+				from cmdLine import cmdSnpBrowserResultPage
+				reload (cmdSnpBrowserResultPage)
+				page = cmdSnpBrowserResultPage.cmdSnpBrowserResultPage(fd)
+
+			#intervalAnalyst
+			elif fd.formID == 'intervalAnalyst':
+				from intervalAnalyst import IntervalAnalystPage
+				reload(IntervalAnalystPage)
+				req.content_type = 'text/html'
+				page = IntervalAnalystPage.IntervalAnalystPage(fd)			
+
+			#AJAX_table
+			elif fd.formID == 'AJAX_table':
+				from utility import AJAX_table
+				reload(AJAX_table)
+				req.content_type = 'text/html'
+				req.write(AJAX_table.AJAX_table(fd).write())
+
+                      	elif fd.formID == 'submitSingleTrait':
+				from submitTrait import CrossChoicePage
+				reload(CrossChoicePage)
+				page = CrossChoicePage.CrossChoicePage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'sharing':
+				from dataSharing import SharingPage
+				reload(SharingPage)
+				page = SharingPage.SharingPage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'sharinginfo':
+				from dataSharing import SharingInfoPage
+				reload(SharingInfoPage)
+				page = SharingInfoPage.SharingInfoPage(fd)
+				req.content_type = 'text/html'
+			
+			elif fd.formID == 'sharinginfoedit':
+				from dataSharing import SharingInfoEditPage
+				reload(SharingInfoEditPage)
+				page = SharingInfoEditPage.SharingInfoEditPage(fd)
+				req.content_type = 'text/html'
+				
+			elif fd.formID == 'sharinginfodelete':
+				from dataSharing import SharingInfoDeletePage
+				reload(SharingInfoDeletePage)
+				page = SharingInfoDeletePage.SharingInfoDeletePage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'sharinginfoupdate':
+				from dataSharing import SharingInfoUpdatePage
+				reload(SharingInfoUpdatePage)
+				page = SharingInfoUpdatePage.SharingInfoUpdatePage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'sharingListDataset':
+				from dataSharing import SharingListDataSetPage
+				reload(SharingListDataSetPage)
+				page = SharingListDataSetPage.SharingListDataSetPage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'sharinginfoadd':
+				from dataSharing import SharingInfoAddPage
+				reload(SharingInfoAddPage)
+				page = SharingInfoAddPage.SharingInfoAddPage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'annotation':
+				from annotation import AnnotationPage
+				reload(AnnotationPage)
+				page = AnnotationPage.AnnotationPage(fd)
+				req.content_type = 'text/html'
+
+			elif fd.formID == 'qtlminer':
+				from qtlminer import QTLminer
+                                reload(QTLminer)
+                                req.content_type = 'text/html'
+                                page = QTLminer.QTLminer(fd)
+			elif fd.formID == 'qtlminerresult':
+				from cmdLine import cmdQTLminerPage
+                                reload (cmdQTLminerPage)
+                                page = cmdQTLminerPage.cmdQTLminerPage(fd)
+
+			else:
+				from search import IndexPage
+				reload(IndexPage)
+				page = IndexPage.IndexPage(fd)
+				req.content_type = 'text/html'
+
+                        #elif fd.formID == 'updGeno':
+                        #       import GenoUpdate
+                        #       reload(GenoUpdate)
+                        #       req.content_type = 'text/html'
+                        #       page=GenoUpdate.GenoUpdate(fd)
+                        #elif fd.formID == 'updStrain':
+                        #       import StrainUpdate
+                        #       reload(StrainUpdate)
+                        #       req.content_type = 'text/html'
+                        #       page=StrainUpdate.StrainUpdate(fd)
+                        #elif fd.formID == 'showTextResult':
+                        #       import resultPage
+                        #       reload(resultPage)
+                        #       page = resultPage.ShowTextResult(fd)
+                        #elif fd.formID == 'showStrainInfo':
+                        #       import dataPage
+                        #       reload(dataPage)
+                        #       req.content_type = 'text/html'
+                        #       page = dataPage.ShowStrainInfoPage(fd)
+                        #elif fd.formID == 'showImage':
+                        #       import dataPage
+                        #       reload(dataPage)
+                        #       req.content_type = 'text/html'
+                        #       page = dataPage.ShowImagePage(fd)
+                        #XZ, 04/29/2009: There is one webpage gn/web/webqtl/blat.html and I have moved it to junk folder. This function is very old and I don't think it is being used.
+                        #elif fd.formID == 'BlatSearch':
+                        #       import miscPage
+                        #       reload(miscPage)
+                        #       page = miscPage.ShowBlatResult(fd)
+                        #elif fd.formID == 'admin':
+                        #       import adminPage
+                        #       reload(adminPage)
+                        #       req.content_type = 'text/html'
+                        #       page = adminPage.adminModifyPage(fd)
+
+		elif cmdID: 
+			#need to rewrite
+			cmdID = string.lower(cmdID)
+			if cmdID in ('get','trait','tra'):
+	                        from textUI import cmdGet
+				reload(cmdGet)
+				req.content_type = 'text/plain'
+				req.write(cmdGet.cmdGet(fd).write())
+			elif cmdID in ('help', 'hlp'):
+				from textUI import cmdHelp
+				reload(cmdHelp)
+				req.content_type = 'text/plain'
+				req.write(cmdHelp.cmdHelp(fd).write())
+			elif cmdID in ('correlation','cor','pea','pearson'):
+				from textUI import cmdCorrelation
+				reload(cmdCorrelation)	   
+				req.content_type = 'text/plain'
+				req.write(cmdCorrelation.cmdCorrelation(fd).write())
+			elif cmdID in ('map','marker'):
+				from textUI import cmdMap
+				reload(cmdMap)
+				req.content_type = 'text/plain'
+				req.write(cmdMap.cmdMap(fd).write())
+			elif cmdID in ('geno','gen','genotype'):
+				from textUI import cmdGeno
+				reload(cmdGeno)
+				req.content_type = 'text/plain'
+				req.write(cmdGeno.cmdGeno(fd).write())
+			elif cmdID in ('interval','int'):
+				from textUI import cmdInterval
+				reload(cmdInterval)
+				req.content_type = 'text/plain'
+				req.write(cmdInterval.cmdInterval(fd).write())
+			elif cmdID in ('show','shw'):
+				from textUI import cmdShowEditing
+				reload(cmdShowEditing)
+				req.content_type = 'text/html'
+				result = cmdShowEditing.cmdShowEditing(fd)
+				page = result.page
+			elif cmdID in ('search','sch'):
+				req.content_type = 'text/plain'
+				from textUI import cmdSearchGene
+				reload(cmdSearchGene)
+				result = cmdSearchGene.cmdSearchGene(fd)
+				page = result.page
+				req.write(result.text)
+
+			#elif cmdID in ('tst','Test'):
+			#	req.write('Content-type: application/x-download')
+			#	req.write('Content-disposition: attachment; filename=my.txt\n')
+			#	genotype_file = GENODIR + 'AKXD.geno'
+			#	fp = open(genotype_file)
+			#	line = fp.read()
+			#	fp.close()
+			#	req.write(line)
+			#XZ, 03/03/2009: This fuction must be initiated from URL
+			#XZ: http://www.genenetwork.org/webqtl/WebQTL.py?cmd=birn&species=mouse&tissue=Hippocampus&ProbeId=1436869_at&Strain=BXD1
+			#elif cmdID[0:4]=="birn":
+			#	req.content_type = 'text/plain'
+			#	import BIRN
+			#	reload(BIRN)
+			#	result = BIRN.birnSwitch(fd)
+			#	req.write(result.text)
+                        #elif cmdID in ('spear','spearman','spe'):
+                        #       import cmdSpearman  # new modules
+                        #       reload(cmdSpearman)
+                        #       req.content_type = 'text/plain'
+                        #       req.write(cmdSpearman.cmdSpearman(fd).write())
+                        #elif cmdID in ('snp','track'):
+                        #       import cmdSnpTrack  # new modules
+                        #       reload(cmdSnpTrack)
+                        #       req.content_type = 'text/plain'
+                        #       req.write(cmdSnpTrack.cmdSnpTrack(fd).write())
+
+			else:
+				req.content_type = 'text/html'
+				req.write("###Wrong Command")
+
+                ######## Create first page when called with no formID ########
+
+		else:
+			_log.info("Going to the search page")
+			from search import IndexPage
+                        reload(IndexPage)
+                        page = IndexPage.IndexPage(fd)
+                        req.content_type = 'text/html'
+	
+	if page:
+		#send Cookie first
+		if page.cookie:
+			for item in page.cookie:
+				if (item):
+					modcookie = Cookie.Cookie(item.name, item.value)
+					modcookie.path = item.path
+					if item.expire != None:
+						modcookie.expires = time.time() + item.expire
+					Cookie.add_cookie(req, modcookie)
+
+		#save session
+		if page.session_data_changed:
+			for one_key in page.session_data_changed.keys():
+				mod_python_session[one_key] = page.session_data_changed[one_key]
+			mod_python_session.save()
+
+
+		req.content_type= page.content_type
+
+		#send attachment
+		if page.redirection:
+			util.redirect(req, page.redirection)
+		elif page.content_disposition:
+			req.headers_out["Content-Disposition"] = page.content_disposition
+			req.write(page.attachment)
+		elif page.debug: # for debug
+			req.write(page.debug)
+		#send regular content
+		else:
+			req.write(page.write())
+	else:
+		pass
+		
+	return apache.OK
+	
+