Nesvilab / philosopher

PeptideProphet, PTMProphet, ProteinProphet, iProphet, Abacus, and FDR filtering
https://philosopher.nesvilab.org
GNU General Public License v3.0
109 stars 18 forks source link

panic: runtime error: index out of range [1] with length 1 #353

Closed seongminlab closed 2 years ago

seongminlab commented 2 years ago

Dear developers

i have issues during philosopher pipeline running

here is the log


INFO[12:12:33] Executing report on set42
INFO[12:12:43] Creating reports
INFO[12:12:45] Executing abacus
INFO[12:12:45] Processing combined file
INFO[12:19:03] Converged to 1.00 % FDR with 89629 Peptides decoy=904 threshold=0.678218 total=90533 INFO[12:19:04] Restoring peptide results
INFO[12:20:19] collecting data from individual experiments
INFO[12:20:21] summarizing the quantification
INFO[12:28:25] Processing combined file
INFO[12:28:49] Converged to 1.01 % FDR with 11827 Proteins decoy=120 threshold=0.9888 total=11947 INFO[12:33:37] Restoring protein results
panic: runtime error: index out of range [1] with length 1

goroutine 1 [running]: philosopher/lib/aba.getLabelNames(0xc2f08814e0, 0x14, 0x0) /home/prvst/workspace/philosopher/lib/aba/aba.go:51 +0x3ac philosopher/lib/aba.proteinLevelAbacus(0xc03a55f890, 0x24, 0xc03a582dc0, 0x3a, 0xc03a55f8c0, 0x29, 0xc03a4f5360, 0x49, 0xc03a582e00, 0x40, ...) /home/prvst/workspace/philosopher/lib/aba/pro.go:67 +0x1509 philosopher/lib/aba.Run(0xc03a55f890, 0x24, 0xc03a582dc0, 0x3a, 0xc03a55f8c0, 0x29, 0xc03a4f5360, 0x49, 0xc03a582e00, 0x40, ...) /home/prvst/workspace/philosopher/lib/aba/aba.go:33 +0xba philosopher/lib/pip.Abacus(0xc03a55f890, 0x24, 0xc03a582dc0, 0x3a, 0xc03a55f8c0, 0x29, 0xc03a4f5360, 0x49, 0xc03a582e00, 0x40, ...) /home/prvst/workspace/philosopher/lib/pip/pip.go:744 +0x1fd philosopher/cmd.glob..func13(0x894f1a0, 0xc000161600, 0x2a, 0x2c) /home/prvst/workspace/philosopher/cmd/pipeline.go:132 +0x620 github.com/spf13/cobra.(Command).execute(0x894f1a0, 0xc000161340, 0x2c, 0x2c, 0x894f1a0, 0xc000161340) /home/prvst/go/pkg/mod/github.com/spf13/cobra@v0.0.6/command.go:844 +0x2aa github.com/spf13/cobra.(Command).ExecuteC(0x894fc20, 0x0, 0x0, 0x0) /home/prvst/go/pkg/mod/github.com/spf13/cobra@v0.0.6/command.go:945 +0x317 github.com/spf13/cobra.(*Command).Execute(...) /home/prvst/go/pkg/mod/github.com/spf13/cobra@v0.0.6/command.go:885 philosopher/cmd.Execute() /home/prvst/workspace/philosopher/cmd/root.go:35 +0x2d main.main() /home/prvst/workspace/philosopher/main.go:22 +0x6e


i'm used current version of philosopher & msfragger on Linux/UbuntuOS

i think this errors on Abacus

how can i solve the issues & can i running pipeline with partially?? when i stopped?

Sincerely,

prvst commented 2 years ago

Hi @seongminlab, we have a possible fix for this issue in the latest release. Would you like to try the pre-release version?

seongminlab commented 2 years ago

@prvst Thanks!

i running the Abacus with this commands

philosopher abacus --protein set01 set02 set03 set04 set05 set06 set07 set08 set09 set10 set11 set12 set13 set14 set15 set16 set17 set18 set19 set20 set21 set22 set23 set24 set25 set26 set27 set28 set29 set30 set31 set32 set33 set34 set35 set36 set37 set38 set39 set40 set41 set42

and i get the combined_proteon.tsv file now

but each setXX data is TMT10 plex data sets.

how can i get the quantification results of each channels?

i need using --labels parameters? how can i using? OR

That combined_proteins.tsv can put in the TMT-integrator ?

Thanks.

prvst commented 2 years ago

Did you run the labelquant command before the abacus ? Run the labelquant first, then run TMT-Integrator.

seongminlab commented 2 years ago

Sure, i was using philosopher pipeline! before kernel panic

i had protein.tsv, peptide.tsv, ion.tsv file of each setXX files.

Each SetXX files were 12fractionation TMT-10plex experiment.

I wanna integrative 42 TMT 10plex experimental data sets

how can i file integrative? TMTintegrative.yml files was not working.

prvst commented 2 years ago

Run TMT-Integrator on all sets. If that fail, please send the error message you're getting.

seongminlab commented 2 years ago

Here is my command, on LinuxOS java -jar -Xmx64g /home/seongmin/seongmin/toolbox/TMT_Integrater/TMTIntegrator-v3.1.0.jar tmt-i_param-v3.1.0.yml set*/psm.tsv

set*/psm.tsv files means each set01 ~ set42 directory of each labelquant results.

and this is my tmt-i_param-v3.1.0.yml files

tmtintegrator: path: /home/toolbox/TMT_Integrater/TMTIntegrator-v3.1.0.jar # path to TMT-Integrator jar memory: 100 # memory allocation, in Gb protein_database: /home/raw/raw/database/2022-04-29-decoys-contam-merge.fa.fas # protein fasta file output: /home/raw/raw/TMT_Integrator_output # the location of output files channel_num: 10 # number of channels in the multiplex (e.g. 10, 11) ref_tag: pool # unique tag for identifying the reference channel (Bridge sample added to each multiplex) groupby: -1 # level of data summarization(0: PSM aggregation to the gene level; 1: protein; 2: peptide sequence; 3: multiple PTM sites; 4: single PTM site; 5: multi-mass (for glycosylation); -1: generate reports at all levels) psm_norm: false # perform additional retention time-based normalization at the PSM level outlier_removal: true # perform outlier removal prot_norm: -1 # normalization ( -1: generate reports with all normalization options; 0: None; 1: MC (median centering); 2: GN (median centering + variance scaling)) min_pep_prob: 0.9 # minimum PSM probability threshold (in addition to FDR-based filtering by Philosopher) min_purity: 0.5 # ion purity score threshold min_percent: 0.05 # remove low intensity PSMs (e.g. value of 0.05 indicates removal of PSMs with the summed TMT reporter ions intensity in the lowest 5% of all PSMs) unique_pep: false # allow PSMs with unique peptides only (if true) or unique plus razor peptides (if false), as classified by Philosopher and defined in PSM.tsv files unique_gene: 0 # additional, gene-level uniqueness filter (0: allow all PSMs; 1: remove PSMs mapping to more than one GENE with evidence of expression in the dataset; 2:remove all PSMs mapping to more than one GENE in the fasta file) best_psm: true # keep the best PSM only (highest summed TMT intensity) among all redundant PSMs within the same LC-MS run prot_exclude: none # exclude proteins with specified tags at the beginning of the accession number (e.g. none: no exclusion; sp|,tr| : exclude protein with sp| or tr|) allow_overlabel: true # allow PSMs with TMT on S (when overlabeling on S was allowed in the database search) allow_unlabeled: false # allow PSMs without TMT tag or acetylation on the peptide n-terminus mod_tag: none # PTM info for generation of PTM-specific reports (none: for Global data; S(79.9663),T(79.9663),Y(79.9663): for Phospho; K(42.0106): for K-Acetyl; M(15.9949): for M-Oxidation; N-glyco: for N-glycosylation; O-glyco: for O-glycosylation) min_site_prob: -1 # site localization confidence threshold (-1: for Global; 0: as determined by the search engine; above 0 (e.g. 0.75): PTMProphet probability, to be used with phosphorylation only) ms1_int: true # use MS1 precursor ion intensity (if true) or MS2 reference intensity (if false) as part of the reference sample abundance estimation top3_pep: true # use top 3 most intense peptide ions as part of the reference sample abundance estimation print_RefInt: false # print individual reference sample abundance estimates for each multiplex in the final reports (in addition to the combined reference sample abundance estimate) add_Ref: -1 # add an artificial reference channel if there is no reference channel or export raw abundance (-2: export raw abundance; -1: don't add the reference; 0: use summation as the reference; 1: use average as the reference; 2: use median as the reference) max_pep_prob_thres: 0 # the threshold for maximum peptide probability min_ntt: 0 # minimum allowed number of enzymatic termini aggregation_method: 0 # the aggregation method from the PSM level to the specified level (0: median, 1: weighted-ratio)

Finally running the cmd i got the this error messages

UpdateColumns--- 1.43810 min. Error at: /var2/raw/raw/set01/psm.tsv java.lang.NullPointerException

how can i running TMT integrator with commands?

prvst commented 2 years ago

This set*/psm.tsv does not work. Pass each folder's psm table at a time

seongminlab commented 2 years ago

Still, i can understand that means...

What is psm table?

for test running set01/psm.tsv change to set01_psm.txt and set02/psm.tsv change to set02_psm.txt

that file on same directory - psm_tables

and i was using same yml files and running with this commands java -jar /home/seongmin/seongmin/toolbox/TMT_Integrater/TMTIntegrator-v3.1.0.jar tmt-i_param-v3.1.0.yml psm_tables/*_psm.tsv

but i got the same error!!

UpdateColumns--- 0.10293 min. Error at: /var2/seongmin/massive.ucsd.edu/MSV000085836/raw/ver2_raw/psm_tables/set01_psm.tsv java.lang.NullPointerException

how can i solve the problem?? can i have example running script or vignette? thank you

prvst commented 2 years ago

A PSM table is a file containing the basic information about the spectrum-to-peptide matching that got identified and validated by the search engine and the validating software.

Perhaps you should read our tutorials before trying the program. It looks like you would profit from learning about the basics of proteomics first. If you search for the May institute videos on YouTube, you'll find a recording we did showing the basic usage, and configuration of FragPipe.