示例#1
0
    def test_find_clashes_forall_other_series_by(self):
        """ Test how to calculate the transitions of the target
        nonunique = c_getnonuis._find_clashes_forall_other_series( 
            tuple(transitions), tuple(precursors), q3_low, q3_high, 
            par.q3_window, par.ppm, par, q1 - par.q1_window)

      """
        par = self.real_parameters
        q3_low, q3_high = self.real_parameters.get_q3range_transitions()
        precursor = self.precursor
        transitions = precursor.calculate_transitions(q3_low, q3_high)

        nonunique = c_getnonuis._find_clashes_forall_other_series(
            tuple(transitions),
            self.interfering_precursors,
            par,
            q3_low,
            q3_high,
            par.q3_window,
            par.ppm,
            precursor.q1 - par.q1_window,
            False,
        )

        self.assertEqual(len(nonunique), 3)
        self.assertEqual(nonunique.keys(), [0, 2, 4])

        self.assertTrue(abs(nonunique[0][0][0] - 842.4008) < self.EPSILON)
        self.assertTrue(abs(nonunique[0][0][1] - 506.584613) < self.EPSILON)
        self.assertEqual(nonunique[0][0][2], 0)  # empty
        self.assertEqual(nonunique[0][0][3], 618)  # peptide key
        self.assertEqual(nonunique[0][0][4], "b")
        self.assertEqual(nonunique[0][0][5], 9)
        self.assertEqual(nonunique[0][0][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[0][0][-1], 1)  # charge

        self.assertTrue(abs(nonunique[2][0][0] - 565.8035) < self.EPSILON)
        self.assertEqual(nonunique[2][0][4], "y")
        self.assertEqual(nonunique[2][0][5], 11)
        self.assertEqual(nonunique[2][0][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[2][0][-1], 2)  # charge

        self.assertTrue(abs(nonunique[4][0][0] - 440.287275) < self.EPSILON)
        self.assertTrue(abs(nonunique[4][0][1] - 500.787837374) < self.EPSILON)
        self.assertEqual(nonunique[4][0][2], 0)  # empty
        self.assertEqual(nonunique[4][0][3], 665)  # peptide key
        self.assertEqual(nonunique[4][0][4], "b")
        self.assertEqual(nonunique[4][0][5], 5)
        self.assertEqual(nonunique[4][0][6], "GGLIVELGDK")  # sequence
        self.assertEqual(nonunique[4][0][-1], 1)  # charge
示例#2
0
def do_analysis(input_sequences, seqs, par, wuis, local_cursor, controller):
    """
    ###########################################################################
    # Do analysis
    # 1. Find SSRCalc values for all peptides
    # 2. Iterate through all sequences and calculate the b / y series
    # 3. Find all (potentially) interfering precursors
    # 4. For each precursors, find the list of transitions that interfers
    # 5. For each transition, find the precursors that interfere 
    # 6. Print information
    ###########################################################################
    """

    q3_low, q3_high = par.q3_range
    uis = par.uis
    pepmap = get_ssrcalc_values(seqs, input_sequences, default_ssrcalc, local_cursor, ssrcalc_path)
    toggle_all_str = '<script language="javascript"> function toggleAll(){ '
    mycollider = collider.SRMcollider()

    for seq_id, peptide in enumerate(controller.peptides):
        #
        # Step 2 : find the SSRCalc values for this sequence
        #
        try: ssrcalc = pepmap[filter(str.isalpha, peptide.sequence)]
        except KeyError: ssrcalc = 25
        transitions = [ (f.q3, f.fragment_count) for f in peptide.fragments]
        if len( transitions ) == 0: continue # no transitions in this window

        #
        # Step 3 : find all potentially interfering precursors
        #  Create precursor and use db to find all interfering precursors
        #
        precursor = Precursor(modified_sequence = peptide.get_modified_sequence(), parent_id = -1,
            q1 = peptide.charged_mass, q1_charge = 2, ssrcalc = ssrcalc, transition_group = -1)
        precursor.seq_id = seq_id
        precursors_obj = mycollider._get_all_precursors(par, precursor, local_cursor)

        # 
        # Step 4 and 5: Find interferences per precursor, then find
        # interferences per transition (see the two readouts in the html)
        #
        collisions_per_peptide = \
        c_getnonuis.calculate_collisions_per_peptide_other_ion_series(
            tuple(transitions), precursors_obj, par, q3_low, q3_high,
            par.q3_window, par.ppm, par.chargeCheck) 

        nonunique = c_getnonuis._find_clashes_forall_other_series( 
            tuple(transitions), precursors_obj, par, q3_low, q3_high,
            par.q3_window, par.ppm, peptide.charged_mass - par.q1_window, par.chargeCheck)

        # also add those that have no interference
        for fragment in peptide.fragments: 
            if not fragment.fragment_count in nonunique:
                nonunique[fragment.fragment_count] = []
        nonunique_obj = controller.getNonuniqueObjects(nonunique)

        # 
        # Step 6: printing
        #
        do_all_print(peptide, collisions_per_peptide, 
                 wuis, precursor, par, precursors_obj, nonunique_obj)
        toggle_all_str += "toggleDisplay('col_peptides_%s'); toggleDisplay('col_transitions_%s');\n" % (seq_id,seq_id)

    toggle_all_str += "};</script>"
    print toggle_all_str
    print """
示例#3
0
    def test_find_clashes_forall_other_series(self):
        """ Test how to calculate the transitions of the target
        nonunique = c_getnonuis._find_clashes_forall_other_series( 
            tuple(transitions), tuple(precursors), q3_low, q3_high, 
            par.q3_window, par.ppm, par, q1 - par.q1_window)

      """
        par = self.real_parameters
        par.aions = True
        par.xions = True
        par.zions = True
        par.bions = False
        par.yions = False
        # par.bMinusNH3 = True
        # par.bMinusH2O = True
        # par.bPlusH2O = True

        par.q3_window = 4.5

        q3_low, q3_high = self.real_parameters.get_q3range_transitions()
        precursor = self.precursor
        transitions = precursor.calculate_transitions(q3_low, q3_high)

        nonunique = c_getnonuis._find_clashes_forall_other_series(
            tuple(transitions),
            self.interfering_precursors,
            par,
            q3_low,
            q3_high,
            par.q3_window,
            par.ppm,
            precursor.q1 - par.q1_window,
            False,
        )

        self.assertEqual(len(nonunique), 4)
        self.assertEqual(nonunique.keys(), [3, 4, 5, 6])

        self.assertEqual(len(nonunique[3]), 1)
        self.assertEqual(len(nonunique[4]), 2)
        self.assertEqual(len(nonunique[5]), 3)
        self.assertEqual(len(nonunique[6]), 1)

        # we have one interference with 3
        self.assertTrue(abs(nonunique[3][0][0] - 456.756009652) < self.EPSILON)
        self.assertTrue(abs(nonunique[3][0][1] - 500.787837374) < self.EPSILON)
        self.assertEqual(nonunique[3][0][2], 0)  # empty
        self.assertEqual(nonunique[3][0][3], 665)  # peptide key
        self.assertEqual(nonunique[3][0][4], "x")
        self.assertEqual(nonunique[3][0][5], 8)
        self.assertEqual(nonunique[3][0][6], "GGLIVELGDK")  # sequence
        self.assertEqual(nonunique[3][0][-1], 2)  # charge

        # we have two interferences with 4
        self.assertTrue(abs(nonunique[4][0][0] - 443.22541272) < self.EPSILON)
        self.assertTrue(abs(nonunique[4][0][1] - 506.58461326) < self.EPSILON)
        self.assertEqual(nonunique[4][0][2], 0)  # empty
        self.assertEqual(nonunique[4][0][3], 618)  # peptide key
        self.assertEqual(nonunique[4][0][4], "a")
        self.assertEqual(nonunique[4][0][5], 10)
        self.assertEqual(nonunique[4][0][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[4][0][-1], 2)  # charge

        self.assertTrue(abs(nonunique[4][1][0] - 443.7267378235) < self.EPSILON)
        self.assertTrue(abs(nonunique[4][1][1] - 506.58461326) < self.EPSILON)
        self.assertEqual(nonunique[4][1][2], 0)  # empty
        self.assertEqual(nonunique[4][1][3], 618)  # peptide key
        self.assertEqual(nonunique[4][1][4], "z")
        self.assertEqual(nonunique[4][1][5], 8)
        self.assertEqual(nonunique[4][1][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[4][1][-1], 2)  # charge

        # we have three interferences with 5
        self.assertTrue(abs(nonunique[5][0][0] - 557.280912722) < self.EPSILON)
        self.assertEqual(nonunique[5][0][4], "a")
        self.assertEqual(nonunique[5][0][5], 12)
        self.assertEqual(nonunique[5][0][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[5][0][-1], 2)  # charge

        self.assertTrue(abs(nonunique[5][1][0] - 550.28240465) < self.EPSILON)
        self.assertEqual(nonunique[5][1][4], "x")
        self.assertEqual(nonunique[5][1][5], 10)
        self.assertEqual(nonunique[5][1][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[5][1][-1], 2)  # charge

        self.assertTrue(abs(nonunique[5][2][0] - 557.2902278235) < self.EPSILON)
        self.assertEqual(nonunique[5][2][4], "z")
        self.assertEqual(nonunique[5][2][5], 11)
        self.assertEqual(nonunique[5][2][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[5][2][-1], 2)  # charge

        # we have one interference with 6
        self.assertTrue(abs(nonunique[6][0][0] - 665.327537823) < self.EPSILON)
        self.assertEqual(nonunique[6][0][2], 0)  # empty
        self.assertEqual(nonunique[6][0][3], 618)  # peptide key
        self.assertEqual(nonunique[6][0][4], "z")
        self.assertEqual(nonunique[6][0][5], 13)
        self.assertEqual(nonunique[6][0][6], "NGTDGGLQVAIDAMR")  # sequence
        self.assertEqual(nonunique[6][0][-1], 2)  # charge