def setUp(self):

        # Set up dirs
        self.dirname = os.path.dirname(os.path.abspath(__file__))
        self.topdir = os.path.join(os.path.join(self.dirname, ".."), "..")
        self.datadir = os.path.join(os.path.join(self.topdir, "test"), "data")
        self.scriptdir = os.path.join(self.topdir, "analysis")

        # Set up files
        peakgroups_file = os.path.join(self.datadir, "imputeValues/imputeValues_5_input.csv")
        fdr_cutoff_all_pg = 1.0

        # Read input
        reader = SWATHScoringReader.newReader([peakgroups_file], "openswath", readmethod="complete")
        self.exp = MRExperiment()
        self.exp.runs = reader.parse_files()
        self.multipeptides = self.exp.get_all_multipeptides(fdr_cutoff_all_pg, verbose=False)

        # Set up files nr2 
        peakgroups_file = os.path.join(self.datadir, "feature_alignment_7_openswath_input.csv")
        reader = SWATHScoringReader.newReader([peakgroups_file], "openswath", readmethod="complete")
        self.exp2 = MRExperiment()
        self.exp2.runs = reader.parse_files()
        self.multipeptides2 = self.exp2.get_all_multipeptides(fdr_cutoff_all_pg, verbose=False)

        # Select the best peakgroup per peptide and select it for writing out
        fdr_cutoff = 0.01
        for mpep in self.multipeptides2:
            for prgr in mpep.getAllPeptides():
                minpg = min( [(pg.get_fdr_score(), pg) for pg in prgr.peakgroups] )
                if minpg[0] < fdr_cutoff:
                    minpg[1].select_this_peakgroup()
    def setUp(self):
        # Set up dirs
        self.dirname = os.path.dirname(os.path.abspath(__file__))
        self.topdir = os.path.join(os.path.join(self.dirname, ".."), "..")
        self.datadir = os.path.join(os.path.join(self.topdir, "test"), "data")
        self.scriptdir = os.path.join(self.topdir, "analysis")

        # Set up files
        peakgroups_file = os.path.join(self.datadir, "imputeValues/imputeValues_5_input.csv")
        mzml_file = os.path.join(self.datadir, "imputeValues/r004_small/split_olgas_otherfile.chrom.mzML")

        # Parameters
        self.initial_alignment_cutoff = 0.0001
        fdr_cutoff_all_pg = 1.0
        max_rt_diff = 30

        # Read input
        reader = SWATHScoringReader.newReader([peakgroups_file], "openswath", readmethod="complete")
        self.new_exp = MRExperiment()
        self.new_exp.runs = reader.parse_files()
        self.multipeptides = self.new_exp.get_all_multipeptides(fdr_cutoff_all_pg, verbose=False)

        # Align all against all
        self.tr_data = transformations.LightTransformationData()
        spl_aligner = SplineAligner(self.initial_alignment_cutoff)
        for run_0 in self.new_exp.runs:
            for run_1 in self.new_exp.runs:
                helper.addDataToTrafo(self.tr_data, run_0, run_1, spl_aligner, self.multipeptides, "linear", 30)

        # Select two interesting peptides
        pepname = "21517_C[160]NVVISGGTGSGK/2_run0 0 0"
        self.current_mpep1 = [m for m in self.multipeptides if m.getAllPeptides()[0].get_id() == pepname][0]

        pepname = "26471_GYEDPPAALFR/2_run0 0 0"
        self.current_mpep2 = [m for m in self.multipeptides if m.getAllPeptides()[0].get_id() == pepname][0]
def main(options):
    import time

    # Read the files
    start = time.time()
    reader = SWATHScoringReader.newReader(options.infiles, options.file_format,
                                          options.readmethod)
    runs = reader.parse_files(True)
    # Create experiment
    this_exp = MRExperiment()
    this_exp.set_runs(runs)
    print("Reading the input files took %ss" % (time.time() - start))

    # Fix input filenames
    fix_input_fnames(options, runs)

    # Map the precursors across multiple runs, determine the number of
    # precursors in all runs without alignment.
    start = time.time()
    multipeptides = this_exp.get_all_multipeptides(1.0, verbose=True)
    print("Mapping the precursors took %ss" % (time.time() - start))

    for m in multipeptides:

        # Error handling if somehow more than one peakgroup was selected ...
        for p in m.getAllPeptides():
            p._fixSelectedPGError(fixMethod="BestScore")

        if len(m.get_selected_peakgroups()) > 0:
            continue

        for p in m.get_peptides():
            if len(list(p.get_all_peakgroups())) != 1:
                print(p)
                print(dir(p))
                print(p.get_run_id())
                for pg in p.get_all_peakgroups():
                    print(pg.print_out())
                print(len(list(p.get_all_peakgroups())))

            assert len(list(p.get_all_peakgroups())) == 1
            for pg in p.get_all_peakgroups():
                pg.select_this_peakgroup()

    start = time.time()
    if len(options.matrix_outfile) > 0:
        write_out_matrix_file(
            options.matrix_outfile,
            this_exp.runs,
            multipeptides,
            options.min_frac_selected,
            style=options.output_method,
            write_requant=not options.remove_requant_values,
            aligner_mscore_treshold=options.aligner_mscore_threshold)
    print("Writing output took %ss" % (time.time() - start))