# 2. Quick Start

## 2.1. Parsing a mzML file and setting measured precision

`simple_parser.``main`(mzml_file)

  Basic example script to demonstrate the usage of pymzML. Requires a mzML file as first argument.

  usage:

  > ./simple_parser.py <path_to_mzml_file>

  Note

  This script uses the new syntax with the MS level being a property of the spectrum class ( Spectrum.ms_level ). The old syntax can be found in the script simple_parser_v2.py where the MS level can be queried as a key (Spectrum[‘ms level’])

    #!/usr/bin/env python
    import sys
    import pymzml

    def main(mzml_file):
        '''
        Basic example script to demonstrate the usage of pymzML. Requires a mzML
        file as first argument.

        usage:

            ./simple_parser.py <path_to_mzml_file>

        Note:

            This script uses the new syntax with the MS level being a property of
            the spectrum class ( Spectrum.ms_level ). The old syntax can be found in
            the script simple_parser_v2.py where the MS level can be queried as a key
            (Spectrum['ms level'])

        '''
        run = pymzml.run.Reader(mzml_file)
        for n, spec in enumerate( run ):
            print(
                'Spectrum {0}, MS level {ms_level} @ RT {scan_time:1.2f}'.format(
                    spec.ID,
                    ms_level = spec.ms_level,
                    scan_time = spec.scan_time_in_minutes()
                )
            )
        print(
            'Parsed {0} spectra from file {1}'.format(
                n,
                mzml_file
            )
        )
        print()

    if __name__ == '__main__':
        if len(sys.argv) < 2:
            print(main.__doc__)
            exit()
        mzml_file = sys.argv[1]
        main(mzml_file)

## 2.2. Seeking in a mzML file

One of the features of pymzML is the ability to (create) and read indexed gzip which allows mzML file sizes to reach the levels of the original RAW format. The interface to random access into a mzML file is implemented by the magic get function in pymzMLs run class.

Alternatively, pymzML can also rapidly seek into any uncompressed mzML file, no matter if an index was included into the file or not.

    #!/usr/bin/env python
    import pymzml

    run = pymzml.run.Reader( 'tests/data/BSA1.mzML.gz' )
    spectrum_with_id_2540 = run[ 2540 ]