Package: pydiaid
py_diAIDTheMann Labs at the Max Planck Institute of Biochemistrydeveloped py_diAID, a tool that facilitates the generation of dia-PASEF and synchro-PASEF methods with an optimal window design. py_diAID, an abbreviation for Data-Independent Acquisition with an Automated Isolation Design, is available as an open-source Python and Graphical User Interface (GUI) package. To access all the hyperlinks in this document, please view it onGitHub.AboutLicenseInstallationOne-click GUIPip installerDeveloper installerUsageGUICLIPython and jupyter notebooksTroubleshootingCitationsHow to contributeChangelogAboutOver the last few years, Data-Independent Acquisition (DIA) coupled with Parallel Accumulation – Serial Fragmentation (PASEF) has been gaining interest among proteomics researchers. The scan mode dia-PASEF offers comprehensive proteome coverage, a high degree of reproducibility, and quantitative accuracy while utilizing a much larger ion beam proportion than conventional DIA methods. Its successor, synchro-PASEF, enables the creation of methods with even shorter cycle times, improving quantitative accuracy while also being highly specific due to the linking of fragment signals with precursor masses. Existing tools generate dia-PASEF and synchro-PASEF methods with equidistant isolation widths and necessitate manual adjustment of the window design to the precursor density cloud.We present py_diAID, a Python-based package for Data-Independent Acquisition providing Automated Isolation Design. py_diAID optimally generates dia-PASEF and synchro-PASEF methods and places them optimally within the m/z – ion mobility (IM) plane. Additionally, it can generate variable isolation widths aligned to the precursor density in m/z, facilitating short acquisition cycles while covering virtually the entire m/z-IM-range. Our findings indicate that methods created with py_diAID are advantageous for studying deep proteomes from cell lines, clinical samples with regular and very low sample input, as well as for exploring post-translational modifications such as phosphorylation.py_diAID is an open-source Python package and also offers a Graphical User Interface (GUI). It was developed by theMann Labs at the Max Planck Institute of Biochemistry. py_diAID is designed to generate dia-PASEF and synchro-PASEF methods with an optimal window design. Furthermore, it aids in quality control by assessing the precursor distribution in the m/z-IM plane and evaluating existing dia-PASEF and synchro-PASEF methods.Licensepy_diAID was developed by theMann Labs at the Max Planck Institute of Biochemistryand is freely available with anApache License 2.0. External Python packages (available in therequirementsfolder) have their own licenses, which can be consulted on their respective websites.Installationpy_diAID can be installed and used on the Windows operating system.
There are three different types of installation possible:One-click GUI installer:Choose this installation if you only want the GUI and/or keep things simple.Pip installer:Choose this installation if you want to use py_diAID as a Python package in an existing Python 3.8 environment (e.g. a Jupyter notebook). If needed, the GUI and CLI can be installed with pip.Developer installer:Choose this installation if you are familiar with CLI tools,conda, and Python. This installation allows access to all available features of py_diAID and even allows to modify its source code directly. Generally, the developer version of py_diAID outperforms the precompiled versions making this the installation of choice for high-throughput experiments.One-click GUIThe GUI of py_diAID is a stand-alone tool that requires no knowledge of Python or CLI tools. Click on the link below to download the latest release for:WindowsOlder releases remain available on therelease page, but no backward compatibility is guaranteed.IMPORTANT: Please refer to theGUI manualfor detailed instructions on installing and using the stand-alone py_diAID GUI.Pippy_diAID can be installed in an existing Python 3.8 environment with a singlebashcommand.Thisbashcommand can also be run directly from within a Jupyter notebook by prepending it with a!:pipinstallpydiaidInstalling py_diAID like this avoids conflicts when integrating it in other tools, as this does not enforce strict versioning of dependencies. However, if new versions of dependencies are released, they are not guaranteed to be fully compatible with py_diAID. While this should only occur in rare cases where dependencies are not backward compatible, you can always force py_diAID to use dependency versions that are known to be compatible with:pipinstall"pydiaid[stable]"NOTE: You might need to runpip install pip==21.0before installing py_diAID like this. Also, note the double quotes".For those who are adventurous, it is also possible to directly install any branch (e.g.@development) with any extras (e.g.#egg=pydiaid[stable,development-stable]) from GitHub with e.g.pipinstall"git+https://github.com/MannLabs/pydiaid.git@development#egg=pydiaid[stable,development-stable]"Developerpy_diAID can also be installed in editable (i.e. developer) mode with a fewbashcommands. This allows to fully customize the software and even modify the source code to your specific needs. When an editable Python package is installed, its source code is stored in a transparent location of your choice. While optional, it is advised to first (create and) navigate to e.g. a general software folder:mkdir~/folder/where/to/install/softwarecd~/folder/where/to/install/softwareThe following commands assume you do not perform any additionalcdcommands anymore.Next, download the py_diAID repository from GitHub either directly or with agitcommand. This creates a new py_diAID subfolder in your current directory.gitclonehttps://github.com/MannLabs/pydiaid.gitFor any Python package, it is highly recommended to use a separateconda virtual environment, as otherwisedependency conflicts can occur with already existing packages.condacreate--namepydiaidpython=3.8-y
condaactivatepydiaidFinally, py_diAID and all itsdependenciesneed to be installed. To take advantage of all features and allow development (with the-eflag), this is best done by also installing thedevelopment dependenciesinstead of only thecore dependencies:pipinstall-e"./pydiaid[development]"By default this installs loose dependancies (no explicit versioning), although it is also possible to use stable dependencies (e.g.pip install -e "./pydiaid[stable,development-stable]").By using the editable flag-e, all modifications to thepy_diAID source code folderare directly reflected when running py_diAID. Note that the py_diAID folder cannot be moved and/or renamed if an editable version is installed.UsageThere are two ways to use py_diAID:GUIPythonNOTE: The first time you use a fresh installation of py_diAID, it is often relatively slow because some functions might still need compilation on your local operating system and architecture. Subsequent executions should be a lot faster.GUIIf the GUI was not installed through a one-click GUI installer, it could be activated with the followingbashcommand:pydiaidguiNote that this needs to be prepended with a!when you want to run this from within a Jupyter notebook. When the command is run directly from the command-line, make sure you use the right environment (activate it with e.g.conda activate pydiaidor set an alias to the binary executable (can be obtained withwhere pydiaidorwhich pydiaid)).IMPORTANT: Please refer to theGUI manualfor detailed instructions on installing, troubleshooting, and using the stand-alone py_diAID GUI.Python and Jupyter notebookspy_diAID can be imported as a Python package into any Python script or notebook with the commandimport pydiaid.An ‘nbs’ folder in the GitHub repository contains Jupyter Notebooks as tutorials on using py_diAID as a Python package.TroubleshootingIn case of issues, check out the following links:FAQ: This section provides answers to issues of general interest.Issues: Try a few different search terms to find out if a similar problem has been encountered before.Discussions: Check if your problem or feature request has been discussed earlier.FAQWhere to find test libraries? The py_diAID package includes test libraries for quick workflow testing. These can be found at: py_diAID installation directory\pydiaid\diapasef\static\AlphaPept_results.csv for dia-PASEF and py_diAID installation directory\pydiaid\synchropasef\static\evidence_MaxQuant_270223.txt for synchro-PASEF.What is the best input for py_diAID method generation? In general, the best input for py_diAID method generation is dda-PASEF acquired with a wide ion mobility range, for instance, from 0.6-1.6. It provides a complete and unbiased view of the precursor cloud in m/z and the ion mobility plane. In contrast, the data collected with dia-PASEF will present a precursor cloud that is influenced by the position of their isolation windows. The dda-PASEF runs may be an analysis of a single-run representative of the study, or a fractionated peptide library. Both these approaches have yielded comparable isolation window schemes. Regardless of the strategy used, the most critical aspect is a precise ion mobility calibration.Using DIA-NN results as input for py_diAID: Regular DIA-NN output information, which does not contain m/z information for precursors, is not suitable as an input for py_diAID. However, we have now included an option to load DIA-NN libraries. These libraries, generated during the analysis of single-runs, can serve as possible input for py_diAID.How to specify multiple PTMs? The initial versions of py_diAID could only process one PTM or string input at a time. We have now updated it to allow for filtering of the input library for multiple PTMs. To do this, all PTMs need to be specified in a list of strings, for instance ["STY", "GlyGly"].CitationsCheck out thedia-PASEF publicationandsynchro-PASEF publication.How to contributeIf you like this software, you can give us astarto boost our visibility! All direct contributions are also welcome. Feel free to post a newissueor clone the repository and create apull requestwith a new branch. For even more interactive participation, check out thediscussionsandthe Contributors License Agreement.ChangelogSee theHISTORY.mdfor a complete overview of the changes made in each version.