--- /dev/null
+###########################################################################
+# #
+# C O P Y R I G H T N O T I C E #
+# Copyright (c) 2003-10 by: #
+# * California Institute of Technology #
+# #
+# All Rights Reserved. #
+# #
+# Permission is hereby granted, free of charge, to any person #
+# obtaining a copy of this software and associated documentation files #
+# (the "Software"), to deal in the Software without restriction, #
+# including without limitation the rights to use, copy, modify, merge, #
+# publish, distribute, sublicense, and/or sell copies of the Software, #
+# and to permit persons to whom the Software is furnished to do so, #
+# subject to the following conditions: #
+# #
+# The above copyright notice and this permission notice shall be #
+# included in all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, #
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF #
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND #
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS #
+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN #
+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN #
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE #
+# SOFTWARE. #
+###########################################################################
+#
+# a simple use of the experiment class
+from experiment import Experiment
+from analyzeMotifs import AnalyzeMotifs
+
+class VaryLength(Experiment, AnalyzeMotifs):
+ experimentType = "varyLength"
+
+
+ def setRange(self, step, uMin=0, uMax=0, dMin=0, dMax=0):
+ self.stepSize = step
+ self.upstreamMin = uMin
+ self.upstreamMax = uMax + 1
+ self.downstreamMin = dMin
+ self.downstreamMax = dMax + 1
+
+
+ def run(self):
+ Experiment.run(self)
+
+ for downP in range(self.downstreamMin, self.downstreamMax, self.stepSize):
+ for upP in range(self.upstreamMin, self.upstreamMax, self.stepSize):
+ self.setSeqParameters(upP, downP)
+ # force reloading of the genepool
+ self.loadGenepool()
+ datasetID = self.genepoolID
+ fastaFile = self.createDataFile()
+ for (prog, settingsID) in self.programs:
+ prog.inputFile(fastaFile)
+ # reset setttings to orig settings, set new length, save settings
+ prog.setSettings(self.settings[settingsID])
+ prog.setSeqLength(str(upP + downP))
+ newestSettingsID = self.setSettings(prog.getSettings())
+ runID = self.setRun(prog.name(), datasetID, newestSettingsID)
+ tag = str(runID)
+ prog.setTagID(tag)
+ prog.run()
+ theMotifs = prog.getMotifs()
+ for mot in theMotifs:
+ self.results.append(mot)
\ No newline at end of file