Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting up a nonspecific search without GUI #2082

Closed
MKoesters opened this issue Jul 12, 2021 · 4 comments
Closed

Setting up a nonspecific search without GUI #2082

MKoesters opened this issue Jul 12, 2021 · 4 comments

Comments

@MKoesters
Copy link
Contributor

Hi all,

I'm trying to do a non-specific search and configure the toml by hand, since I don't have access to a windows machine.
Since the wiki has only tutorial for the GUI version, I'm using these as an Orientation.
However I'm not sure how to change to the Non-specific search mod.

changing SearchModeType = "Full" to SearchModeType="Non-specifc" does not work, however I found out that SearchModeType = "Semi" would work.
What is the right argument I need to use?

Also, are there some example tomls for a non-specific search which I could adapt (I'm planning to do a calibration, search and quantification using FlashLFQ)

Best,
Manuel

@MKoesters
Copy link
Contributor Author

Found out that the correct line would be

SearchModeType = None

@zrolfs
Copy link
Contributor

zrolfs commented Jul 13, 2021

Hi Manuel,
Thanks for reaching out. We've been leaning into the GUI for a while and we certainly need to add more command line documentation for non-windows users. Until that happens, I've attached a few example tomls for calibration and search/quant and given you some notes. If you have any more questions, we'll get back to you ASAP.

Notes:
IMPORTANT: I changed the extension on these files from "toml" to "txt" because Github won't let me upload files with weird extensions. Just change the extensions back to "toml" before you use them

Maybe Important: The parameter "MaxMissedCleavages" should always be equal to "MaxPeptideLength" - 1. If not, you might get some unexpected results.

Calibration: Non-specific calibration is typically super slow, so we typically calibrate on a subset of data. I sent you a calibration toml I use for HLA-I peptides. These peptides are overwhelmingly 9 amino acids long, so it saves time to only calibrate on 9-mers rather than search for peptides with 7-25 amino acids.

Search: There are two search modes for doing non-specific searches. The first is the traditional method, "SlowNonSpecific_SearchAndQuant", which is generally slow because the search time scales with the number of allowed peptide lengths. If you're only looking for 9-mer peptides, this method will be pretty fast. If you're looking for peptides with lengths of 7-25, then use "SpeedyNonSpecific_SearchAndQuant". This method uses a neat trick to search all peptides simultaneously.

SpeedyNonSpecific_SearchAndQuant.txt
CalibrateTask-HLA1.txt
SlowNonSpecific_SearchAndQuant.txt
.

@MKoesters
Copy link
Contributor Author

Thank you for the fast reply, thats exactly what I was looking for.
Out of curiosity, could you point me to the part of the code, where the parameters are parsed and validated?
This would make it easiert for me next time I'm trying to find valida parameter values

Best,
Manuel

@zrolfs
Copy link
Contributor

zrolfs commented Jul 14, 2021

For sure.
We use a nuget package called "Nett" to read/write toml files. This package cleverly reads/writes all the properties of an object. Although clever, it's not super transparent.

An example of reading a search toml is found in Program.cs, line 209

When that line is called, Nett creates a new SearchTask object (SearchTask.cs)
which has properties of CommonParameters and SearchParameters. You can look at the file for CommonParameters.cs and SearchParameters.cs.

This is quite a few layers, but lets say you were interested in figuring out what the SearchModeType parameter should be (as per your original question). This parameter is located under the line "CommonParameters.DigestionParams", so we know the property is stored in DigestionParams.cs . You're then looking for "SearchModeType" (located on line 39) to find out it's a "CleavageSpecificity" object type. If you then go to CleavageSpecificity.cs, you'll see all the possible options for this parameter.

That's pretty complicated, but we've found it to be an effective way for to handle long term stability/maintenance in the program.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants