Changeset 36


Ignore:
Timestamp:
Aug 11, 2010, 4:07:46 PM (10 years ago)
Author:
j@…
bzr:base-revision:
j@dannynavarro.net-20100809093614-khwr3ax29z5bvx1p
bzr:committer:
Danny Navarro <j@dannynavarro.net>
bzr:file-ids:

mzcms/parsers.py parsers.py-20100806092910-g1sxvv1o5b9umkof-1
bzr:mapping-version:
v4
bzr:repository-uuid:
724254b2-fbe6-419d-9466-c04ef4c9d29d
bzr:revision-id:
j@dannynavarro.net-20100809114648-ieq7nmfd0ljlvleh
bzr:revno:
36
bzr:revprop:branch-nick:
trunk
bzr:root:
trunk
bzr:timestamp:
2010-08-09 13:46:48.609999895 +0200
bzr:user-agent:
bzr2.1.2+bzr-svn1.0.3
svn:original-date:
2010-08-09T11:46:48.610000Z
Message:

_parse_psms method defined, need to implement functions that get called

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mzcms/parsers.py

    r35 r36  
    1010from string import Template
    1111from collections import defaultdict
     12from collections import namedtuple
    1213
    1314SEPARATOR = '--gc0p4Jq0M2Yt08jU534c0p'
     
    1516        r'Content-Type: application/x-Mascot; name="$section"')
    1617
    17 PEP_REGEX = re.compile(r'^q(\d+)'    # nativeid
    18                         '_p\d+'      # rank
    19                         '=\d+?'      # missed cleavages
    20                         ',[\.\d]+?'  # peptide mass
    21                         ',[-\.\d]+?' # delta mass
    22                         ',\d+?'      # n ions matches
    23                         ',(\w+?)'    # peptide string
    24                         ',\d+?'      # peaks used for Ions1
    25                         ',(\d+?)'    # modstring
    26                         ',[\.\d]+?'  # score
    27                         ',\d+?'      # ion series found
    28                         ',\d+?'      # peaks used for Ions2
    29                         ',\d+?'      # peaks used for Ions3
    30                         ';(.+)$'     # protein accessions string
     18PEP_REGEX = re.compile(r'^q(\d+)'      # nativeid
     19                        '_p(\d+)'      # rank
     20                        '=\d+?'        # missed cleavages
     21                        ',([\.\d]+?)'  # peptide mass
     22                        ',([-\.\d]+?)' # delta mass
     23                        ',\d+?'        # n ions matches
     24                        ',(\w+?)'      # peptide string
     25                        ',\d+?'        # peaks used for Ions1
     26                        ',(\d+?)'      # modstring
     27                        ',([\.\d]+?)'  # score
     28                        ',\d+?'        # ion series found
     29                        ',\d+?'        # peaks used for Ions2
     30                        ',\d+?'        # peaks used for Ions3
     31                        ';(.+)$'       # protein accessions string
    3132                        )
    3233#fraction_regex = re.compile(r'fraction%3a%20(\d+)')
     
    8384                import ipdb; ipdb.set_trace()
    8485                nativeid = int(match.group(1))
    85                 peptide_str = match.group(2)
    86                 mods_str = match.group(3)
    87                 accs = match.group(4)
    88                 peptide = apply_mods(peptide_str, mods_str)
    89                 is_decoy = check_decoy(accs, self.decoy_regex)
    90                 # Assuming that after a peptide line, always the next line is
    91                 # the line with flanking Aa
    92                 # q4_p2_terms=E,K:E,K:E,K:E,K:E,K
    93                 line = dat_file.next().strip()
    94                 # (('E', 'K'), ('E', 'K'), ('E', 'K'))
    95                 flanking_pairs = set(tuple(x.split(','))
    96                         for x in line.split("=")[1].split(":"))
    97                 for flanking_pair in flanking_pairs:
    98                     annotation = '.'.join((
    99                             flanking_pair[0], peptide, flanking_pair[1]))
    100                     annotation = annotation.replace('-', '*')
    101                     nativeid_psms[nativeid].append(dict(
    102                             Annotation=annotation, IsDecoy=is_decoy))
     86                rank = int(match.group(2))
     87                pep_mass = float(match.group(3))
     88                delta_mass = float(match.group(4))
     89                pep_seq = match.group(5)
     90                mods_str = match.group(6)
     91                score = match.group(7)
     92                accs = match.group(8)
     93                prot_ids = get_prot_ids(accs)
     94                is_target = check_target(accs, self.decoy_regex)
     95                if is_target and rank == 1 or rank == 2:
     96                    mascot_psm = MascotPsm('mascot_psm',
     97                            rank=rank,
     98                            pep_mass=pep_mass,
     99                            pep_seq=pep_seq,
     100                            prot_ids=prot_ids
     101                            )
     102                    nativeid_psms[nativeid].append(mascot_psm)
    103103            elif line.strip() == SEPARATOR:
    104104                return nativeid_psms
Note: See TracChangeset for help on using the changeset viewer.