Nesvilab / IonQuant

A label free quantification tool.
Other
15 stars 8 forks source link

IonQuant parameters #4

Closed tobiasko closed 4 years ago

tobiasko commented 4 years ago

Hi IonQuant developers,

my issue relates to the IonQuant parameters on the linux command line. In short, I am trying to run IonQuant on top of philosopher pipeline. Philosopher leaves this nicely organizsed workspace:

tobiasko@fgcz-r-033:/scratch/tobiasko/DSXXXXX$ ls -la
total 1222084
drwxr-xr-x 10 tobiasko SG_Employees       4096 Apr 27 18:03 .
drwxrwxr-x 12 tobiasko SG_Employees        272 Apr 27 08:15 ..
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 18:19 A_1
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 18:33 A_2
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 16:28 A_3
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 16:34 B_4
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 16:39 B_5
drwxr-xr-x  4 tobiasko SG_Employees       4096 Apr 27 16:44 B_6
-rw-r--r--  1 tobiasko SG_Employees        187 Apr 27 18:03 IonQuant.bash
-rw-r--r--  1 tobiasko SG_Employees 1106274199 Apr 27 15:34 combined.pep.xml
-rw-r--r--  1 tobiasko SG_Employees  127761175 Apr 27 16:12 combined.prot.xml
-rw-r--r--  1 tobiasko SG_Employees    9795903 Apr 27 16:46 combined_peptide.tsv
-rw-r--r--  1 tobiasko SG_Employees    6814865 Apr 27 16:56 combined_protein.tsv
drwxr-xr-x  3 tobiasko SG_Employees        247 Apr 27 10:51 database
drwxr-xr-x  2 tobiasko SG_Employees         71 Apr 27 08:55 parameters
-rw-r--r--  1 tobiasko SG_Employees     532742 Apr 27 16:56 reprint.int.tsv
-rw-r--r--  1 tobiasko SG_Employees     188790 Apr 27 16:56 reprint.spc.tsv

But since it can't call IonQuant yet I need to do this manually. What works is using:

java -Xmx64G -jar /usr/local/nesvilab/IonQuant-1.0.0.jar --threads 64 /scratch/tobiasko/DSXXXXX/*_*/*.d /scratch/tobiasko/DSXXXXX/*_*/*.pepXML

But as soon as I start adding additional parameters like --psm I am running into problems:

java -Xmx64G -jar /usr/local/nesvilab/IonQuant-1.0.0.jar --threads 64 --psm /scratch/tobiasko/DSXXXXX/*_*/psm.tsv /scratch/tobiasko/DSXXXXX/*_*/*.d /scratch/tobiasko/DSXXXXX/*_*/*.pepXML

Java reports unrecognized parameters. Could it be that the unamed parameters like path to raw files or pepXMLs are parsed differently than named ones? Do you really need to add one -psm <path> for each file? That would be a real pain for big multi experiments.

A randomly selected dry run log looks as if the FragPipeGUI does it this way:

java -Xmx64G -Dbruker.lib.path=/usr/local/nesvilab/ext/bruker -cp /tmp/fragpipe/batmass-io-1.17.2.jar:/tmp/fragpipe/ionquant-1.0.0.jar ionquant.IonQuant --threads 64 --mztol 10 --imtol 0.05 --rttol 0.4 --minfreq 0.50 --plot 0 --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/base_3/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/base_1/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/base_4/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/base_2/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/ratio_6/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/ratio_7/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/ratio_8/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/base_5/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/ratio_10/psm.tsv --psm /scratch/tobiasko/DS32125/FragPipeGUI_output/ratio_9/psm.tsv --multidir /scratch/tobiasko/DS32125/FragPipeGUI_output /scratch/tobiasko/DS32125/ratio_6/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_1_C2_01_2868.d ratio_7/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_1_C2_01_2868.pepXML /scratch/tobiasko/DS32125/base_3/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_3_C1_01_2865.d base_3/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_3_C1_01_2865.pepXML /scratch/tobiasko/DS32125/base_4/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_4_C1_01_2866.d base_4/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_4_C1_01_2866.pepXML /scratch/tobiasko/DS32125/ratio_9/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_4_C2_01_2871.d ratio_10/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_4_C2_01_2871.pepXML /scratch/tobiasko/DS32125/ratio_10/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_5_C2_01_2872.d ratio_6/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_5_C2_01_2872.pepXML /scratch/tobiasko/DS32125/base_5/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_5_C1_01_2867.d base_5/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_5_C1_01_2867.pepXML /scratch/tobiasko/DS32125/base_1/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_1_C1_01_2863.d base_1/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_1_C1_01_2863.pepXML /scratch/tobiasko/DS32125/ratio_7/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_2_C2_01_2869.d ratio_8/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_2_C2_01_2869.pepXML /scratch/tobiasko/DS32125/ratio_8/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_3_C2_01_2870.d ratio_9/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Ratio_50cm_120min_100ms_11CT_3_C2_01_2870.pepXML /scratch/tobiasko/DS32125/base_2/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_2_C1_01_2864.d base_2/20180903_TIMS2_12-2_AnBr_SA_HeLa_EColi_Base_50cm_120min_100ms_11CT_2_C1_01_2864.pepXML

Best, Tobi

fcyu commented 4 years ago

Hi Tobi,

One --psm for one psm.tsv. If you have multiple psm.tsv, need to use multiple --psm like what FragPipe does. Your command won't work because --psm /scratch/tobiasko/DSXXXXX/*_*/psm.tsv will be expanded to something like --psm /scratch/tobiasko/DSXXXXX/A_1/psm.tsv /scratch/tobiasko/DSXXXXX/A_2/psm.tsv /scratch/tobiasko/DSXXXXX/A_3/psm.tsv ...

Best,

Fengchao

tobiasko commented 4 years ago

Ok. Not ideal. Why does the expansion work for the other parameters?

fcyu commented 4 years ago

The expansion only works for the spectral files and pepXML files because there is no ambiguity (no need to specify what they are because their extension already gives such information). For psm.tsv, IonQuant need to know it is psm.tsv from Philosopher rather than other types of tsv files.

tobiasko commented 4 years ago

I am just re-running the command as you suggested and it looks like he is not using results from the previous execution, but starting all over again. Really?

fcyu commented 4 years ago

Does "results from the previous execution" mean the *_quant.csv file from IonQuant? If so, you can replace your pepXML paths with those *_quant.csv.

tobiasko commented 4 years ago

And the rest of the command stays the same?

fcyu commented 4 years ago

Yes.

tobiasko commented 4 years ago

Great! THX for your help! But one request: I think you should expand the README.md in this respect. The java -jar IonQuant.jar <options> <.d/.mzML/.mzXML/.pepXML/_quant.csv files> is maybe a little brief, especially for multi experiment cases. Maybe some examples would help.

Best, Tobi

fcyu commented 4 years ago

Yes, I totally agree. I am going to add more explanations and examples later.

Best,

Fengchao