Skip to content
ibrahimyapici edited this page Oct 21, 2015 · 9 revisions

Welcome to the pwiz-mzdb wiki!

Project layout description

The layout for creating a project depending on Proteowizard(pwiz) is described here . Code conventions and more details about pwiz subfolders are also described in this webpage.

The root sources directory looks like this:


root
    build   [everything is built here]
    doc   [documentation]
    example_data   [some example data files]
    libraries   [3rd party library archives]
    pwiz   [main source tree -- all Apache licensed]
    pwiz_aux   [non-Apache licensed contributed code]
    pwiz_tools   [source code for tools]
    pwiz_mzdb  [source code for writing/reading mzDB files] 

The pwiz-mzdb contains several directories:


    mzdb
        lib [static libraries dependancies + source code of some libs]
        reader [source code for reading mzDB files]
        threading [source code threading queues]
        utils  [source code used in both 'reader' and 'writer']
        writer [source code for writing mzDB files]
    raw2mzDB.cpp entry point

Dependancies

pwiz-mzdb depends on pwiz for its data model, which is statically linked during link phase. There are also additional dependancies such as:

  • sqlite (included in last versions of pwiz)
  • getopt_pp: a library for reading command line arguments
  • kyoto_cabinet: only used for during signal reconstruction process, i.e. conversion of mzDB to mzML for example.
  • pugixml: library for reading/writing XML data (i.e. param tree).

These library which source code is available in pwiz_mzdb/mzdb/lib are compiled then statically linked.

We also have a major dependancy on Ceres-solver developed at Google. Due to the difficulty of compiling it on Windows, a static library is provided and linked directly. Ceres has been compiled in release mode: no debug information are included, i.e. building raw2mzDB in debug mode will fail.

Global classes description

see the doxygen doc directory inside pwiz_mzdb

Compilation options

WARNING: pwiz-mzdb uses C++ 11 features, which means it requires at least msvc-10.

At the root of the pwiz project layout there is 'quickbuild.bat/sh'. In order to compile the project:

quickbuild.bat --i-agree-to-the-vendor-licenses

All compilation directives are in the Jamroot.jam.

You can specify a sub project to do incremental compiling.

quickbuild.bat pwiz_tools --i-agree-to-the-vendor-licenses

If the target is 64-bits architecture, the flag address-model must be set to 64:

quickbuild.bat address-model=64 pwiz_tools --i-agree-to-the-vendor-licenses

warning: MSVC express edition until 12 does not provide 64 bits compilers. Using address-model will result in a compilation failure.

Linkage options, compilation options can be set:

quickbuild.bat <cxxflags>'/Oxa' <linkflags>'/LTCG' pwiz_tools --i-agree-to-the-vendor-licenses

You can also specify the release mode using <variant> set to 'release' or 'debug'. A special compiler can be used using: <toolset>:

quickbuild.bat address-model=64 <toolset>msvc-10 <cxxflags>'/Oxa' <linkflags>'/LTCG' pwiz_tools --i-agree-to-the-vendor-licenses

IDE

Just click file->new project->import from existing sources setting the root of the project. It generates a file .includes declarating the headers the project uses. It lacks VC headers so the line C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/include must be added to get good completion.

qtcreator editor

Visual Studio

Should work pretty well. Click file->new->from existing sources. Then, let you guide through project wizard.

This project is supported by

ProFI
Clone this wiki locally