def test_7_calculate_fdr_step(self):
        print("test_7_calculate_fdr_step")

        predicates = calculate_fdr.default_predicates()
        self.fdr_results = calculate_fdr.main(self.classification_results_file, self.ms2_decon_file,
                                              self.test_model_file_path, suffix_len=1,
                                              num_decoys_per_real_mass=self.num_decoys,
                                              predicate_fns=predicates, n_processes=self.num_procs)
        self.assertTrue(os.path.exists(self.classification_results_file[:-5] + "_fdr.json"))
def calculate_false_discovery_rate(scored_predictions_file, deconvoluted_spectra=None, model_file_path=None,
                                   decoy_matches_path=None,
                                   method="full_random_forest", ms1_match_tolerance=1e-5, ms2_match_tolerance=2e-5,
                                   out=None,  n_decoys=1, predicates=None, random_only=False,
                                   n_processes=6, prefix_len=0, suffix_len=1):
    predicates = predicates if predicates is not None else calculate_fdr.default_predicates()
    outfile_path = calculate_fdr.main(scored_matches_path=scored_predictions_file, decon_data=deconvoluted_spectra,
                                      model_file_path=model_file_path, decoy_matches_path=decoy_matches_path,
                                      outfile_path=out, num_decoys_per_real_mass=n_decoys,
                                      predicate_fns=predicates, prefix_len=prefix_len, suffix_len=suffix_len,
                                      by_mod_sig=False, random_only=random_only,
                                      ms1_tolerance=ms1_match_tolerance, ms2_tolerance=ms2_match_tolerance,
                                      method=method, method_init_args=None,
                                      method_fit_args=None, n_processes=n_processes)
    return outfile_path