def generate_solutions_tables(self):
        ''' code from Adam use rpy2 to execute rcode which reads out a solutions file to pandas '''
        col_names = [
            'alpha', 'tau', 'AT', 'b', 'delta', 'LL', 'mode_curv',
            'genome mass', 'sigma.h.hat', 'theta.z.hat', 'sigma.A.hat',
            'theta.Q.hat', 'lambda.hat', 'theta.0', 'frac.het', 'SCNA_LL',
            'entropy', 'Kar_LL', 'WGD', 'combined_LL', 'SSNV_LL',
            'SCNA_Theta_integral', 'dens'
        ]

        # Build R function to be used as a python package
        load_RData_func_str = """
                       load_RData <- function(file_path) {
                          load(file_path)
                          head_name <- ls()[1]
                          file_name <- names(`segobj.list`)[1]
                          r_data <- `segobj.list`[[file_name]]$mode.res$mode.tab
                          return(r_data)
                      }
                      """
        # Pack the function above as a package
        r_pack = SignatureTranslatedAnonymousPackage(load_RData_func_str,
                                                     "r_pack")
        print 'Generating absolute tables for ' + str(len(
            self.data_table)) + ' samples'
        pandas2ri.activate()
        for index, row in self.data_table.iterrows():
            if np.mod(index, 100) == 0:
                print str(index) + '/' + str(len(self.data_table))
            r_data = r_pack.load_RData(row['absolute_summary_data'])
            abs_table = pd.DataFrame(pandas2ri.ri2py(r_data),
                                     columns=col_names)
            self.pp_modes_tables[row['pair_id']] = abs_table
        pandas2ri.deactivate()
Esempio n. 2
0
def convertRtoPandas(file_path):
    # Pack the function above as a package
    r_pack = SignatureTranslatedAnonymousPackage(load_RData_func_str, "r_pack")

    pandas2ri.activate()
    r_data = r_pack.load_RData(file_path)
    py_data = pd.DataFrame(pandas2ri.ri2py(r_data), columns=col_names)
    pandas2ri.deactivate()

    return py_data