Example #1
0
def find_clashes_small(self, mycollider, cursor, par, pepids):
        swath_mode = False
        mycollider.allpeps = {}
        mycollider.non_unique_count = 0
        mycollider.total_count = 0
        MAX_UIS = 5
        for kk, pep in enumerate(pepids):
            precursor = Precursor(parent_id=pep['parent_id'], q1=pep['q1'], 
                ssrcalc=pep['ssrcalc'], modified_sequence = pep['mod_sequence'], 
                transition_group = pep['transition_group'])

            q3_low, q3_high = par.get_q3range_transitions()
            transitions = precursor.calculate_transitions(q3_low, q3_high)
            nr_transitions = len(transitions)

            ### if use_db and not swath_mode:
            precursors = mycollider._get_all_precursors(par, precursor, cursor)
            collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(mycollider,
                    transitions, precursors, par, precursor, forceNonCpp=False)
            collisions_per_peptide_python = collider.get_coll_per_peptide_from_precursors_obj_wrapper(mycollider,
                    transitions, precursors, par, precursor, forceNonCpp=True)
            self.assertEqual(collisions_per_peptide, collisions_per_peptide_python)
            non_uis_list = collider.get_nonuis_list(collisions_per_peptide, MAX_UIS)
            # 
            # here we count how many are locally clean, e.g. look at UIS of order 1
            mycollider.allpeps[precursor.parent_id] = 1.0 - len(non_uis_list[1]) * 1.0  / nr_transitions
            mycollider.non_unique_count += len(non_uis_list[1])
            mycollider.total_count += nr_transitions
Example #2
0
  def test_runuis_nonswath(self):
    self.assertEqual(len(self.precursors_to_evaluate), 905)
    par = self.par
    cursor = self.db.cursor()
    prepare = []

    for precursor in self.precursors_to_evaluate:

      q3_low, q3_high = par.get_q3range_transitions()
      transitions = precursor.calculate_transitions(q3_low, q3_high)
      nr_transitions = len(transitions)

      precursors_obj = self.acollider._get_all_precursors(par, precursor, cursor)
      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(self.acollider, 
                transitions, precursors_obj, par, precursor)
      non_uis_list = collider.get_nonuis_list(collisions_per_peptide, par.max_uis)

      for order in range(1,min(par.max_uis+1, nr_transitions+1)): 
        prepare.append( (len(non_uis_list[order]), collider.choose(nr_transitions, 
          order), precursor.parent_id , order, -1) )

    self.assertEqual(len(prepare), 905*par.max_uis)
    self.assertEqual(prepare[0], (0, 17.0, 1, 1, -1)) 

    final_report = self.get_final_report(par, prepare)
    self.check_final_report_nonswath(final_report)
Example #3
0
  def test_runuis_swath(self):
    self.assertEqual(len(self.precursors_to_evaluate), 905)
    swath_mode = False
    par = self.par
    R = self.R
    cursor = self.db.cursor()
    prepare = []

    self.min_q1 = 500
    self.max_q1 = 525

    # Get the precursors (now for 500-525 instead of the full range)
    ###########################################################################
    myprecursors = Precursors()
    cursor = self.db.cursor()
    myprecursors.getFromDB(par, cursor, self.min_q1 - par.q1_window, self.max_q1 + par.q1_window)
    rtree = myprecursors.build_rangetree()
    self.precursors_to_evaluate = myprecursors.getPrecursorsToEvaluate(self.min_q1, self.max_q1)
    self.assertEqual(len(self.precursors_to_evaluate), 39)

    isotope_correction = par.isotopes_up_to * R.mass_diffC13 / min(par.parent_charges)
    temp_precursors = Precursors()
    temp_precursors.getFromDB(par, self.db.cursor(), self.min_q1 - isotope_correction, self.max_q1)
    all_swath_precursors = []
    for p in temp_precursors.precursors:
      if(p.included_in_isotopic_range(self.min_q1, self.max_q1, par) ): 
        all_swath_precursors.append(p)

    for precursor in self.precursors_to_evaluate:

      q3_low, q3_high = par.get_q3range_transitions()
      transitions = precursor.calculate_transitions(q3_low, q3_high)
      nr_transitions = len(transitions)


      if par.ssrcalc_window > 1000:
          precursors_obj = [p for p in all_swath_precursors if p.transition_group != precursor.transition_group]
      else:
          ssrcalc_low =  precursor.ssrcalc - par.ssrcalc_window 
          ssrcalc_high = precursor.ssrcalc + par.ssrcalc_window 
          precursors_obj = [p for p in all_swath_precursors if p.transition_group != precursor.transition_group
                       and p.ssrcalc > ssrcalc_low and p.ssrcalc < ssrcalc_high ]
      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(self.acollider, 
              transitions, precursors_obj, par, precursor)


      non_uis_list = collider.get_nonuis_list(collisions_per_peptide, par.max_uis)

      for order in range(1,min(par.max_uis+1, nr_transitions+1)): 
        prepare.append( (len(non_uis_list[order]), collider.choose(nr_transitions, 
          order), precursor.parent_id , order, -1) )

    self.assertEqual(len(prepare), 39*par.max_uis)
    self.assertEqual(prepare[0], (5, 8.0, 69, 1, -1) )

    final_report = self.get_final_report(par, prepare)
    self.check_final_report_swath(final_report)
Example #4
0
    def test_collisions_per_peptide(self):
      """ Test to calculate the collisions per peptide.
      """
      q3_low, q3_high = self.real_parameters.get_q3range_transitions()
      precursor = self.precursor
      transitions = precursor.calculate_transitions(q3_low, q3_high)

      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(self.acollider, transitions, 
        self.interfering_precursors, self.real_parameters, None, False, False)
      self.assertEqual(collisions_per_peptide, {665: [4], 618: [0, 2]})
Example #5
0
    def test_min_needed_transitions(self):

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

      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(self.acollider, transitions, 
        self.interfering_precursors, self.real_parameters, None, False, False)

      # We need at least 2 transitions to see this peptide because the first transition is interfered with 
      self.real_parameters.max_uis = 10
      min_needed = self.acollider._sub_getMinNeededTransitions(self.real_parameters, transitions, collisions_per_peptide)
      self.assertEqual(min_needed, 2)

      # Now delete the 2nd element, now we need at least three transtitions because transitions 1 and 2 are interfered with 
      transitions = list(transitions)
      del transitions[1]
      min_needed = self.acollider._sub_getMinNeededTransitions(self.real_parameters, tuple(transitions), collisions_per_peptide)
      self.assertEqual(min_needed, 3)
Example #6
0
    def test_collisions_per_peptide_forced_fragment_check(self):
      """ Test to calculate the collisions per peptide when enforcing fragment charge checks.
      Now the y11++ fragment is not allowed any more because a fragment of
      NGTDGGLQVAIDAMR cannot hold 2 charges. Thus we test against 618: [0] without the "2".
      """
      q3_low, q3_high = self.real_parameters.get_q3range_transitions()
      precursor = self.precursor
      transitions = precursor.calculate_transitions(q3_low, q3_high)

      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors_obj_wrapper(self.acollider, 
              transitions, self.interfering_precursors, self.real_parameters, precursor, forceNonCpp=True, 
               forceFragmentChargeCheck=True)
      self.assertEqual(collisions_per_peptide, {665: [4], 618: [0]})

      collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(self.acollider, 
              transitions, self.interfering_precursors, self.real_parameters, precursor, forceNonCpp=False, 
               forceFragmentChargeCheck=True)
      ### TODO, forceFragment check will reduce this
      self.assertEqual(collisions_per_peptide, {665: [4]})
Example #7
0
def find_clashes_small(self, mycollider, cursor, par, pepids):
    swath_mode = False
    mycollider.allpeps = {}
    mycollider.non_unique_count = 0
    mycollider.total_count = 0
    MAX_UIS = 5
    for kk, pep in enumerate(pepids):
        precursor = Precursor(parent_id=pep['parent_id'],
                              q1=pep['q1'],
                              ssrcalc=pep['ssrcalc'],
                              modified_sequence=pep['mod_sequence'],
                              transition_group=pep['transition_group'])

        q3_low, q3_high = par.get_q3range_transitions()
        transitions = precursor.calculate_transitions(q3_low, q3_high)
        nr_transitions = len(transitions)

        ### if use_db and not swath_mode:
        precursors = mycollider._get_all_precursors(par, precursor, cursor)
        collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(
            mycollider,
            transitions,
            precursors,
            par,
            precursor,
            forceNonCpp=False)
        collisions_per_peptide_python = collider.get_coll_per_peptide_from_precursors_obj_wrapper(
            mycollider,
            transitions,
            precursors,
            par,
            precursor,
            forceNonCpp=True)
        self.assertEqual(collisions_per_peptide, collisions_per_peptide_python)
        non_uis_list = collider.get_nonuis_list(collisions_per_peptide,
                                                MAX_UIS)
        #
        # here we count how many are locally clean, e.g. look at UIS of order 1
        mycollider.allpeps[precursor.parent_id] = 1.0 - len(
            non_uis_list[1]) * 1.0 / nr_transitions
        mycollider.non_unique_count += len(non_uis_list[1])
        mycollider.total_count += nr_transitions
Example #8
0
        all_swath_precursors.append(p)

allintertr = []
MAX_UIS = par.max_uis
progressm = progress.ProgressMeter(total=len(precursors_to_evaluate), unit='peptides')
prepare  = []
print "analyzing %s peptides" % len(precursors_to_evaluate)
for precursor in precursors_to_evaluate:

    transitions = precursor.calculate_transitions_from_param(par)
    nr_transitions = len(transitions)

    if use_db and not swath_mode:
        # Case 1: regular SRMCollider, get transitions from the DB
        precursors_obj = mycollider._get_all_precursors(par, precursor, cursor)
        collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(mycollider, 
                transitions, precursors_obj, par, precursor)
    elif use_db and swath_mode:
        # Case 2: SRMCollider in SWATH mode, get transitions from the DB (e.g. the memory in this case)
        if par.ssrcalc_window > 1000:
            precursors_obj = [p for p in all_swath_precursors if p.transition_group != precursor.transition_group]
        else:
            ssrcalc_low =  precursor.ssrcalc - par.ssrcalc_window 
            ssrcalc_high = precursor.ssrcalc + par.ssrcalc_window 
            precursors_obj = [p for p in all_swath_precursors if p.transition_group != precursor.transition_group
                         and p.ssrcalc > ssrcalc_low and p.ssrcalc < ssrcalc_high ]
        collisions_per_peptide = collider.get_coll_per_peptide_from_precursors(mycollider, 
                transitions, precursors_obj, par, precursor)
    elif not use_db:
        if swath_mode:
        # Case 3: SRMCollider in SWATH mode, get transitions from the rangetree
          collisions_per_peptide = myprecursors.get_collisions_per_peptide_from_rangetree(