+ added small program for intron-position comparison
[qpalma.git] / qpalma / Configuration.py
index c6f1ab2..7a84d66 100644 (file)
@@ -1,26 +1,36 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import numpy.matlib
 import os.path
 import cPickle
 
-###############################################################################
 #
-# Load a random but fixed initial parameter vector this makes debugging easier
+# choose a path where all results of the QPalma pipeline will be stored
 #
+
+result_dir = '/fml/ag-raetsch/home/fabio/tmp/newest_run'
+
+
+###############################################################################
+# Load a random but fixed initial parameter vector this makes debugging easier
 ###############################################################################
 
-fixedParamQ = cPickle.load(open('/fml/ag-raetsch/home/fabio/svn/projects/QPalma/scripts/randInitParam.pickle'))
+#fixedParamQ = cPickle.load(open('/fml/ag-raetsch/home/fabio/svn/projects/QPalma/scripts/randInitParam.pickle'))
 
-###########################################################
+###############################################################################
 #
 # The parameters for the QPalma algorithm
 #
+#min_intron_len = 20
+#max_intron_len = 2000
 #
-C = 1
-
+#min_svm_score = 0.0 
+#max_svm_score = 1.0
+#
+#min_qual = -5
+#max_qual = 40
 
+numConstraintsPerRound = 50
 
 ###############################################################################
 # 
@@ -38,9 +48,7 @@ mode = 'using_quality_scores'
 # 
 # When using quality scores our scoring function is defined as
 #
-# f: S_e x R x S -> R
-#
-# where S_e is {A,C,G,T,N} and S = {A,C,G,T,N,-}
+# f: S_e x R x S -> R, where S_e is {A,C,G,T,N} and S = {A,C,G,T,N,-}
 # 
 # as opposed to a usage without quality scores when we only have
 # 
@@ -52,7 +60,6 @@ mode = 'using_quality_scores'
 #  -------------------------  
 #  idx  |   0  1  2  3  4  5
 #   
-# 
 #              dna
 #
 #           -  a  c  g  t  n
@@ -63,20 +70,17 @@ mode = 'using_quality_scores'
 #        n
 #  
 # so the index can be calculated as (estnum-1)*6 + dnanum.
-#
-# At ests we do not have gaps with quality scores so we look up the matchmatrix
+# Ests do not have gaps with quality scores so we look up the matchmatrix
 # instead.
 ###############################################################################
 
-numDonSuppPoints     = 30
-numAccSuppPoints     = 30
-numLengthSuppPoints  = 30 
-numQualSuppPoints    = 16
-
-min_qual = -1
-max_qual = 40
+read_size = 36
+extension = (250,500)
 
-USE_OPT = True
+numLengthSuppPoints  = 10
+numDonSuppPoints     = 10
+numAccSuppPoints     = 10
+numQualSuppPoints    = 10
 
 if mode == 'normal':
    sizeMatchmatrix   = (6,6)
@@ -91,18 +95,10 @@ elif mode == 'using_quality_scores':
 else:
    assert False, 'Wrong operation mode specified'
 
-totalQualSuppPoints = numQualPlifs*numQualSuppPoints
-
-numFeatures = numDonSuppPoints + numAccSuppPoints\
-+ numLengthSuppPoints + sizeMatchmatrix[0]*sizeMatchmatrix[1] + totalQualSuppPoints 
-
-
 ###############################################################################
 #
 # GENERAL SETTINGS CONCERNING THE SOLVER
 #
-#
-#
 ###############################################################################
 
 iter_steps = 40
@@ -111,9 +107,10 @@ print_matrix            = False
 anzpath                 = 2
 
 if mode == 'normal':
-   fixedParam = fixedParam[:numFeatures]
+   #fixedParam = fixedParamQ
+   fixedParam = None
 elif mode == 'using_quality_scores':
-   fixedParam = fixedParamQ[:numFeatures]
+   fixedParam = None
 else:
    assert False, 'Wrong operation mode specified'
 
@@ -121,15 +118,12 @@ else:
 #
 # DATA SETTINGS CONCERNING THE SPLITS AND FILE LOCATIONS
 #
-#
-#
 ###############################################################################
+training_begin    =  0
+training_end      =  10000
 
-training_begin    =    0
-training_end      = 1500
-
-prediction_begin  = 1500
-prediction_end    = 2200
+prediction_begin  =  10000
+prediction_end    =  40000
 
 joinp = os.path.join
 
@@ -140,25 +134,58 @@ original_path  = joinp(data_path,'original_solexa_data')
 annot_path     = joinp(data_path,'annotation_data')
 remapped_path  = joinp(data_path,'remapped_solexa_data')
 
-dna_flat_fn    = joinp(data_path,'allGenes.pickle')
-gff_fn         = joinp(annot_path,'TAIR7_GFF3_genes_Chr1.gff_v1')
-filtered_fn    = joinp(data_path,'filteredReads_1_recent')
-remapped_fn    = joinp(remapped_path,'map_best_hit.18.unambig')
+dna_flat_fn    =  '/fml/ag-raetsch/share/projects/genomes/A_thaliana_best/genome/'
 
-dataset_fn = '/fml/ag-raetsch/home/fabio/svn/projects/QPalma/scripts/chr1_dataset.pickle'
+gff_fn         = joinp(annot_path,'TAIR7_GFF3_genes_Chr%s.gff_v1')
 
 ###############################################################################
 #
 # SANITY CHECKS
 #
 ###############################################################################
-assert numQualPlifs       >= 0
-assert numDonSuppPoints    > 1
-assert numAccSuppPoints    > 1
-assert numLengthSuppPoints > 1 
-assert numQualSuppPoints   > 1
-
+#assert numQualPlifs       >= 0
+#assert numDonSuppPoints    > 1
+#assert numAccSuppPoints    > 1
+#assert numLengthSuppPoints > 1 
+#assert numQualSuppPoints   > 1
 assert os.path.exists(dna_flat_fn), 'DNA data does not exist!'
-assert os.path.exists(gff_fn), 'EST/Reads data does not exist!'
-assert os.path.exists(filtered_fn), 'EST/Reads data does not exist!'
-assert os.path.exists(remapped_fn), 'EST/Reads data does not exist!'
+
+extended_alphabet = ['-','a','c','g','t','n','[',']']
+alphabet          = ['-','a','c','g','t','n']
+
+###############################################################################
+#
+# Settings for the VMatch pipeline steps
+#
+###############################################################################
+
+reads_location = ''
+
+#
+# First VMatch step 
+#
+
+mismatches_1      = 2
+end_gap_1         = 0 
+repeat_mapping_1  = 1
+seedlength_1      = 9
+suffixtree_1      = '/media/oka_raid/nobackup/data/Vmatch/ATH/ATH1.v5.seed9.fa'
+
+#
+# Second VMatch step 
+#
+
+mismatches_2      = 1
+sub_mismatches_2  = 1
+min_short_end_2   = 14
+repeat_mapping_2  = 1
+seedlength_2      = 9
+suffixtree_2      = '/media/oka_raid/nobackup/data/Vmatch/ATH/ATH1.v5.seed9.fa'
+
+#
+#
+# do not modify anything below this line
+#
+#
+
+conf_object_path = os.path.join(result_dir,'config_object.pickle')