Example #1
0
    def looping_Ha_diff_species(self, nLoops):
        lista = []
        self.jsd = JSD.Class_JSD(self.desk)
        self.entFile = bioClass.Entropy_File()

        self.hmi = MI.Mutual_Information_Horizontal(self.desk,
                                                    want_nuc_aa_list=False,
                                                    want_shannon=False)
        if not self.hmi.ok:
            self.error_msg = 'Problems with Init_MI_Heat_Map_Hist_Graph.'
            return False

        specList = self.all_species.keys()
        n = len(specList)
        for i in range(n - 1):
            for j in range(i + 1, n):
                '''  for each pair of species simulate Ha '''

                if nLoops > 10:
                    nLoops = int(round(nLoops / 10.))

                ret, dList = self.read_and_calc_Ha(specList[i],
                                                   specList[j],
                                                   nLoops=nLoops)
                if not ret:
                    return None

                lista.append(dList)

        return lista
Example #2
0
    def __init__(self, desk):
        self.desk = desk
        self.dr = desk.dr
        ''' ------------------------------------------------------- '''
        self.entFile = bioClass.Entropy_File()
        self.gg = graphPac.GeneralGraphic(desk)

        self.minmax = desk.minmax
Example #3
0
    def looping_JSD_one_sample(self):

        self.jsd = JSD.Class_JSD(self.desk)
        ''' -----------------------------------------'''

        self.time = crono.Timing()
        self.entFile = bioClass.Entropy_File()
        self.set_my_cluster_filenames()

        name = '%s %s %s' % (self.desk.organism, self.gene, self.title)
        self.names = [[self.cluster_input_filename, name]]

        self.hmi = MI.Mutual_Information_Horizontal(self.desk,
                                                    want_nuc_aa_list=False,
                                                    want_shannon=False)
        if not self.hmi.ok:
            self.error_msg = 'Problems with Init_MI_Heat_Map_Hist_Graph.'
            return False

        if self.desk.organism == "Drosophila":
            self.dr = dro.Drosophila()

        # filename_dist_mat = self.cluster_input_filename
        ''' always read and calc in looping_JSD_one_sample'''
        ret, dicMI, _, _ = self.read_and_calc_one_sample()

        if not ret:
            return False

        xlabel = 'species x species'

        ylabel = 'JSD(%s)' % (self.desk.unit)

        if self.desk.showGraph or self.desk.saveGraph:
            self.jsd.plot_JSD_MI(self.desk,
                                 dicMI,
                                 self.desk.filename_correction,
                                 xlabel,
                                 ylabel,
                                 onlyRef=True,
                                 stay=True)

        return True
Example #4
0
    def looping_H0_same_species(self):
        lista = []
        self.jsd = JSD.Class_JSD(self)
        self.filename_correction = '_bias_corr' if self.withCorrection else ''
        self.entFile = bioClass.Entropy_File()
        
        self.hmi = MI.Mutual_Information_Horizontal(self, want_nuc_aa_list=False, want_shannon = False)
        if not self.hmi.ok:
            self.error_msg = 'Problems with Init_MI_Heat_Map_Hist_Graph.'
            return False
        
        
        for spec in sorted(self.all_species.keys()):
            '''  for each species simulate H0 '''
            # self.spRef = self.which_sp(self.organism, spec)
    
            ret, dList  = self.read_and_calc_H0(spec, 3)
            if not ret:
                return None
            
            lista.append(dList)

        return lista
Example #5
0
    def looping_JSD_all_samples(self):
        plt.close("all")
        plt.clf()

        self.jsd = JSD.Class_JSD(self)

        self.filename_correction = '_bias_corr' if self.withCorrection else ''
                      
        if self.withCorrection:
            self.filename_correction = '_bias_corr'
        else:
            self.filename_correction = ''
            
        self.time = crono.Timing()
        
        name = '%s %s %s'%(self.organism, self.gene, self.title)

        self.entFile = bioClass.Entropy_File()

        self.set_my_cluster_filenames()
        
        self.names = [[self.cluster_input_filename, name]]

        self.hmi = MI.Mutual_Information_Horizontal(self, want_nuc_aa_list=False, want_shannon = False)
        if not self.hmi.ok:
            self.error_msg = 'Problems with Init_MI_Heat_Map_Hist_Graph.'
            return False

        if self.organism == "Drosophila":
            self.dr = dro.Drosophila()
        
        filename_dist_mat = self.cluster_input_filename
                        
        if not os.path.exists(self.rootTable +  filename_dist_mat) or self.de_novo:
            ''' if not found in looping_JSD_all_samples read and calc '''
            ret, dicMI, stri, sError  = self.read_and_calc_all_samples()
        else:
            ret, dicMI, stri, sError = self.read_distance_matrix(filename_dist_mat)
        
        if not ret:
            return False
        
        xlabel = 'species x species'
        
        ylabel = 'JSD(%s)'%(self.unit)

        if self.saveData:
            self.showmsg_obs('\n ============ %s ============'%(self.striMatrix))
            self.showmsg_obs(stri)
            self.showmsg_obs('============ SE %s ============'%(self.striMatrix))
            self.showmsg_obs(sError)
            self.showmsg_obs('============ %s ============\n'%(self.striMatrix))

            if not self.hmi.entFile.write_file(self.rootTable, filename_dist_mat, stri, True):
                return False
            
            filename = filename_dist_mat.replace('.txt','') + '_se.txt'
            if not self.hmi.entFile.write_file(self.rootTable, filename, sError):
                return False

            striSummary = self.hmi.print_MI_species_data(dicMI, roundVal=self.roundVal)
            filename = filename.replace('_se.txt','') + '_summary.txt'
            if not self.hmi.entFile.write_file(self.rootTable, filename, striSummary, True):
                return False

        if self.showGraph or self.saveGraph:
            self.jsd.plot_JSD_MI(self, dicMI, self.filename_correction, xlabel, ylabel, onlyRef=False )

           
        return True
Example #6
0
    def looping(self, desk, opt):
        print("-->>", opt)
        plt.close("all")
        plt.clf()

        desk.minmax = opt[0]

        if desk.each_all == 'each':
            loopCorrection = [desk.withCorrection]
        else:
            loopCorrection = [True, False]

        for correction in loopCorrection:
            ''' -----------------------------------------'''
            desk.withCorrection = correction

            self.time = timePack.Timing()

            name = '%s %s %s' % (desk.organism, desk.gene, desk.title)
            print 'name', name

            self.entFile = bioClass.Entropy_File()

            desk.set_cluster_filenames()

            desk.names = [desk.cluster_input_filename, name]

            self.imi = imi.Mutual_Information_Vertical(desk)
            if not self.imi.ok:
                self.error_msg = 'Problems with Init_MI_Heat_Map_Hist_Graph.'
                return False

            filename_dist_mat = desk.cluster_input_filename

            if not os.path.exists(desk.rootTable +
                                  filename_dist_mat) or desk.de_novo:
                ret, dicMI, stri, sError = self.read_and_calc(desk)
            else:
                ret, dicMI, stri, sError = self.read_distance_matrix(
                    desk, filename_dist_mat)

            if not ret:
                return False

            xlabel = 'species x species'
            ''' recalc: desk.title_jsd and desk.unit '''
            desk.set_cluster_filenames()

            ylabel = 'JSD(%s)' % (desk.unit)

            desk.showmsg_obs('\n ============ %s ============' %
                             (desk.striMatrix))
            desk.showmsg_obs(stri)
            desk.showmsg_obs('============ SE %s ============' %
                             (desk.striMatrix))
            desk.showmsg_obs(sError)
            desk.showmsg_obs('============ %s ============\n' %
                             (desk.striMatrix))

            if desk.saveData:
                if not self.imi.entFile.write_file(
                        desk.rootTable, filename_dist_mat, stri, True):
                    return False

                filename = filename_dist_mat.replace('.txt', '') + '_se.txt'
                if not self.imi.entFile.write_file(desk.rootTable, filename,
                                                   sError):
                    return False

                striSummary = self.imi.print_MI_species_data(
                    dicMI, roundVal=desk.roundVal)
                filename = filename.replace('_se.txt', '') + '_summary.txt'
                if not self.imi.entFile.write_file(desk.rootTable, filename,
                                                   striSummary, True):
                    return False

            listSpecies = self.get_species(desk)
            self.imi.ttest_MI_species_data(desk, listSpecies, dicMI)

            if desk.showGraph or desk.saveGraph:
                self.jsd.plot_JSD_MI(desk, dicMI, xlabel, ylabel)

        return True
'''
Revised on 20/02/2014

@author: Flavio Lichtenstein
@local: UNIFESP - Bioinformatica
'''
import classes.BioPythonClass as bioClass

basic = bioClass.Basic()
showmessage = False

rootTable = 'C:/drosophila/files/'
randomShannonTableName = 'shannon_random_DNA_dic.txt'

entFile = bioClass.Entropy_File()

if not entFile.setNames(rootTable, randomShannonTableName):
    print 'Could not open ' + rootTable + randomShannonTableName
    
ok, msg = entFile.read_shannon_random_file(showKeys = False)

if not ok:
    print msg + ', perhaps Shannon dictionary bad formated.'
    exit()
   
    
print '--------------------------------------------------------'
print 'Random h-Shannon table opened.'
print '--------------------------------------------------------'
print 'L \t entropy \t sdv \t mer%'
print '--------------------------------------------------------'