Пример #1
0
    def cpdb_statistical_analysis_local_method_launcher(
        self,
        meta_filename: str,
        counts_filename: str,
        counts_data: str,
        project_name: str = '',
        iterations: int = 1000,
        threshold: float = 0.1,
        output_path: str = '',
        output_format: Optional[str] = None,
        means_filename: str = 'means',
        pvalues_filename: str = 'pvalues',
        significant_means_filename: str = 'significant_means',
        deconvoluted_filename='deconvoluted',
        debug_seed: int = -1,
        threads: int = -1,
        result_precision: int = 3,
        pvalue: float = 0.05,
        subsampler: Subsampler = None,
    ) -> None:
        output_path = self._set_paths(output_path, project_name)

        debug_seed = int(debug_seed)
        iterations = int(iterations)
        threads = int(threads)
        threshold = float(threshold)
        result_precision = int(result_precision)

        counts, meta = self._load_meta_counts(counts_filename, meta_filename)

        pvalues_simple, means_simple, significant_means_simple, deconvoluted_simple = \
            self.cellphonedb_app.method.cpdb_statistical_analysis_launcher(
                meta,
                counts,
                counts_data,
                iterations,
                threshold,
                threads,
                debug_seed,
                result_precision,
                pvalue,
                subsampler
            )

        write_to_file(means_simple, means_filename, output_path, output_format)
        write_to_file(pvalues_simple, pvalues_filename, output_path,
                      output_format)
        write_to_file(significant_means_simple, significant_means_filename,
                      output_path, output_format)
        write_to_file(deconvoluted_simple, deconvoluted_filename, output_path,
                      output_format)
Пример #2
0
    def cpdb_analysis_local_method_launcher(
        self,
        meta_filename: str,
        counts_filename: str,
        counts_data: str,
        project_name: str = '',
        threshold: float = 0.1,
        output_path: str = '',
        output_format: Optional[str] = None,
        means_filename: str = 'means',
        significant_means_filename: str = 'significant_means',
        deconvoluted_filename='deconvoluted',
        result_precision: int = 3,
        subsampler: Subsampler = None,
    ) -> None:
        output_path = self._set_paths(output_path, project_name)

        result_precision = int(result_precision)
        threshold = float(threshold)

        counts, meta = self._load_meta_counts(counts_filename, meta_filename)

        means, significant_means, deconvoluted = \
            self.cellphonedb_app.method.cpdb_method_analysis_launcher(meta,
                                                                      counts,
                                                                      counts_data,
                                                                      threshold,
                                                                      result_precision,
                                                                      subsampler)

        write_to_file(means, means_filename, output_path, output_format)
        write_to_file(significant_means, significant_means_filename,
                      output_path, output_format)
        write_to_file(deconvoluted, deconvoluted_filename, output_path,
                      output_format)
def filter_all(input_path, result_path):
    interactions = pd.read_csv(
        os.path.join(input_path, 'interaction_input.csv'))
    complexes = pd.read_csv(os.path.join(input_path, 'complex_generated.csv'))
    proteins = pd.read_csv(os.path.join(input_path, 'protein_generated.csv'))
    genes = pd.read_csv(os.path.join(input_path, 'gene_generated.csv'))
    output_path = _set_paths(output_dir, result_path)

    interacting_partners = pd.concat(
        [interactions['partner_a'],
         interactions['partner_b']]).drop_duplicates()

    filtered_complexes = _filter_complexes(complexes, interacting_partners)
    write_to_file(filtered_complexes,
                  'complex_input.csv',
                  output_path=output_path)

    filtered_proteins, interacting_proteins = _filter_proteins(
        proteins, filtered_complexes, interacting_partners)
    write_to_file(filtered_proteins,
                  'protein_input.csv',
                  output_path=output_path)

    filtered_genes = _filter_genes(genes, filtered_proteins['uniprot'])
    write_to_file(filtered_genes, 'gene_input.csv', output_path=output_path)

    rejected_members = interacting_partners[~(
        interacting_partners.isin(filtered_complexes['complex_name'])
        | interacting_partners.isin(filtered_proteins['uniprot']))]

    if len(rejected_members):
        app_logger.warning(
            'There are some proteins or complexes not interacting properly: `{}`'
            .format(', '.join(rejected_members)))