コード例 #1
0
ファイル: peptides.py プロジェクト: tkelemen/pychemy
def get_precursors(seq, min_mz=400, max_mz=2000, min_charge=1, max_charge=5):
    m = mass_from_sequence(seq)
    prec = [{
        'charge_state': c,
        'mz': (m + c * Formula('H').mass) / c
    } for c in xrange(min_charge, max_charge + 1)]
    return filter(lambda x: min_mz <= x['mz'] <= max_mz, prec)
コード例 #2
0
    def __init__(self, name, formula):
        self.display_name = name
        self.formula = formula
        self.mass = Formula(formula).isotope.mass
        LOSSES.add(self)

        def __str__(self):
            return self.formula
コード例 #3
0
ファイル: peptides.py プロジェクト: tkelemen/pychemy
def predict_fragments_from_sequence(sequence=[],
                                    nterm='N-term',
                                    cterm='C-term'):

    verify_sequence(sequence)

    out = []

    # b-ions
    nterm_mass = AMINO_ACIDS[nterm].mass
    out += append_residue(mass=nterm_mass,
                          pos=1,
                          ion_type='b_',
                          seq=sequence,
                          term=cterm,
                          loss=[])
    for l in AMINO_ACIDS[nterm].losses:
        out += append_residue(mass=nterm_mass - l.mass,
                              pos=1,
                              ion_type='b_',
                              seq=sequence,
                              term=cterm,
                              loss=update_loss([], l.formula))

    # a-ions
    nterm_mass = AMINO_ACIDS[nterm].mass - Formula('CO').isotope.mass
    out += append_residue(mass=nterm_mass,
                          pos=1,
                          ion_type='a_',
                          seq=sequence,
                          term=cterm,
                          loss=[])
    for l in AMINO_ACIDS[nterm].losses:
        out += append_residue(mass=nterm_mass - l.mass,
                              pos=1,
                              ion_type='a_',
                              seq=sequence,
                              term=cterm,
                              loss=update_loss([], l.formula))

    # y-ions
    cterm_mass = AMINO_ACIDS[cterm].mass
    out += append_residue(mass=cterm_mass,
                          pos=1,
                          ion_type='y_',
                          seq=sequence[::-1],
                          term=nterm,
                          loss=[])
    for l in AMINO_ACIDS[cterm].losses:
        out += append_residue(mass=cterm_mass - l.mass,
                              pos=1,
                              ion_type='y_',
                              seq=sequence[::-1],
                              term=nterm,
                              loss=update_loss([], l.formula))

    out = sorted(list(set(out)), key=lambda x: x[0])
    return out
コード例 #4
0
 def __init__(self, residue='', mod='', formula='', losses=[]):
     self.residue = residue
     self.mod = mod
     self.formula = formula
     if formula:
         self.mass = Formula(formula).isotope.mass
     else:
         self.mass = 0.0
     self.losses = losses
     AMINO_ACIDS.add(self)
コード例 #5
0
ファイル: peptides.py プロジェクト: tkelemen/pychemy
def predict_positive_fragments_from_sequence(sequence=[],
                                             nterm='N-term',
                                             cterm='C-term',
                                             max_charge_state=1):
    out = []

    fragments = predict_fragments_from_sequence(sequence=sequence,
                                                nterm=nterm,
                                                cterm=cterm)

    for item in fragments:
        out.append((round(item[0] + Formula('H').isotope.mass,
                          5), item[1] + ' (+1)'))

        for cs in range(2, max_charge_state + 1):
            if item[0] > 200 * cs:
                out.append(
                    (round((item[0] + cs * Formula('H').isotope.mass) / cs,
                           5), item[1] + ' (+' + str(cs) + ')'))

    out = sorted(list(set(out)), key=lambda x: x[0])
    return out