From 8391699c3002740a095a96c3231da5869de7eafa Mon Sep 17 00:00:00 2001 From: Felipe da Veiga Leprevost Date: Wed, 20 May 2020 15:02:20 -0400 Subject: [PATCH] restoring the pipeline functions --- Changelog | 8 +- Makefile | 2 +- cmd/pipeline.go | 35 +++++--- lib/pip/bindata.go.zip | Bin 11830 -> 12186 bytes lib/pip/pip.go | 198 +++++++++++++++++++++++++++-------------- philosopher.yml | 5 +- 6 files changed, 159 insertions(+), 89 deletions(-) diff --git a/Changelog b/Changelog index 2b714c2b..86c19e47 100644 --- a/Changelog +++ b/Changelog @@ -1,11 +1,5 @@ ### Added -- Added keepold flag for PTMProphet. - ### Changed -- Philosopher will ignore the interact file when interact.mod is present. -- Improved quantification mapping to all runs. The --mapmods option is only necessary to print mod reports. -- The number of tryptic ternmini is now determined by ProteinProphet. ### Fixed -- Error preventing iTRAQ quantification. -- Several formatting, typoes and Go-Vet issues were fixed. \ No newline at end of file +- Pipeline functions were restored. \ No newline at end of file diff --git a/Makefile b/Makefile index b074c208..bfa2ba4b 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ BINARY = philosopher VERSION = $(shell date +%Y%m%d) BUILD = $(shell date +%Y%m%d%H%M) -TAG = v3.2.4 +TAG = v3.2.5 LDFLAGS = -ldflags "-w -s -X main.version=${TAG} -X main.build=${BUILD}" diff --git a/cmd/pipeline.go b/cmd/pipeline.go index 21d4ffd8..071d28c8 100644 --- a/cmd/pipeline.go +++ b/cmd/pipeline.go @@ -10,6 +10,7 @@ import ( "philosopher/lib/met" "philosopher/lib/msg" "philosopher/lib/pip" + "philosopher/lib/sla" "philosopher/lib/sys" "github.com/sirupsen/logrus" @@ -77,34 +78,42 @@ var pipelineCmd = &cobra.Command{ meta = pip.DatabaseSearch(meta, p, dir, args) } - // PeptideProphet - PTMProphet - ProteinProphet - if p.PeptideProphet.Concurrent == true { - meta = pip.ParallelProphets(meta, p, dir, args) - } else { - meta = pip.Prophets(meta, p, dir, args) + // PeptideProphet + if p.Commands.PeptideProphet == "yes" { + meta = pip.PeptideProphet(meta, p, dir, args) + } + + // PTMProphet + if p.Commands.PTMProphet == "yes" { + meta = pip.PTMProphet(meta, p, dir, args) + } + + // ProteinProphet + if p.Commands.ProteinProphet == "yes" { + meta = pip.ProteinProphet(meta, p, dir, args) } // Abacus - combined pepxml - //meta = pip.CombinedPeptideList(meta, p, dir, args) + meta = pip.CombinedPeptideList(meta, p, dir, args) // Abacus - combined protxml - //meta = pip.CombinedProteinList(meta, p, dir, args) + meta = pip.CombinedProteinList(meta, p, dir, args) // Filter - Quantification - Clustering - Report - //meta = pip.FilterQuantifyReport(meta, p, dir, args) + meta = pip.FilterQuantifyReport(meta, p, dir, args) // Abacus - //meta = pip.Abacus(meta, p, dir, args) + meta = pip.Abacus(meta, p, dir, args) // TMT-Integrator - //meta = pip.TMTIntegrator(meta, p, dir, args) + meta = pip.TMTIntegrator(meta, p, dir, args) // Backup and Clean //pip.BackupAndClean(meta, p, dir, Version, Build, args) - // if len(p.SlackToken) > 0 { - // sla.Run("Philosopher", p.SlackToken, "Philosopher pipeline is done", p.SlackChannel, p.SlackUserID) - // } + if len(p.SlackToken) > 0 { + sla.Run("Philosopher", p.SlackToken, "Philosopher pipeline is done", p.SlackChannel, p.SlackUserID) + } met.CleanTemp(meta.Temp) diff --git a/lib/pip/bindata.go.zip b/lib/pip/bindata.go.zip index 629d7f105f1e9bbdd61f7ab5a13a5bc7a193b834..1783467108081f80c03ba1ca18bea12e200bcadc 100644 GIT binary patch literal 12186 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 R9=Z$W|0Vzaqr)#;_#cpBffE1# diff --git a/lib/pip/pip.go b/lib/pip/pip.go index 5eb71731..21756a81 100644 --- a/lib/pip/pip.go +++ b/lib/pip/pip.go @@ -273,95 +273,161 @@ func Prophets(meta met.Data, p Directives, dir string, data []string) met.Data { return meta } -// ParallelProphets execute the TPP Prophets -func ParallelProphets(meta met.Data, p Directives, dir string, data []string) met.Data { +// PeptideProphet executes PeptideProphet in Parallel mode +func PeptideProphet(meta met.Data, p Directives, dir string, data []string) met.Data { - var wg sync.WaitGroup - wg.Add(len(data)) + if p.PeptideProphet.Concurrent == false { + for _, i := range data { - meta.Restore(sys.Meta()) - meta.Database = p.Database + logrus.Info("Running the validation and inference on ", i) - if p.Commands.PeptideProphet == "yes" || p.Commands.ProteinProphet == "yes" || p.Commands.PTMProphet == "yes" { + // getting inside de the dataset folder + dsAbs, _ := filepath.Abs(i) + os.Chdir(dsAbs) - if p.Commands.PeptideProphet == "yes" { - for _, ds := range data { + // // reload the meta data + meta.Restore(sys.Meta()) - db := p.Database.Annot + // PeptideProphet + if p.Commands.PeptideProphet == "yes" { + logrus.Info("Executing PeptideProphet on ", i) + meta.PeptideProphet = p.PeptideProphet + meta.PeptideProphet.Database = p.Database.Annot + meta.PeptideProphet.Decoy = p.Database.Tag + meta.PeptideProphet.Output = "interact" + meta.PeptideProphet.Combine = true + gobExt := fmt.Sprintf("*.%s", p.PeptideProphet.FileExtension) + files, e := filepath.Glob(gobExt) + if e != nil { + msg.Custom(e, "fatal") + } + peptideprophet.Run(meta, files) + meta.Serialize() + } - go func(ds, db string) { - defer wg.Done() + // return to the top level directory + os.Chdir(dir) + } + } else { - logrus.Info("Running the validation and inference on ", ds) + var wg sync.WaitGroup + wg.Add(len(data)) - // getting inside de the dataset folder - dsAbs, _ := filepath.Abs(ds) - absMeta := fmt.Sprintf("%s%s%s", dsAbs, string(filepath.Separator), sys.Meta()) + meta.Restore(sys.Meta()) + meta.Database = p.Database - // reload the meta data - meta.Restore(absMeta) + for _, ds := range data { - // PeptideProphet - logrus.Info("Executing PeptideProphet on ", ds) - meta.PeptideProphet = p.PeptideProphet - meta.PeptideProphet.Database = p.Database.Annot - meta.PeptideProphet.Decoy = p.Database.Tag - meta.PeptideProphet.Output = "interact" - meta.PeptideProphet.Combine = true + db := p.Database.Annot - gobExt := fmt.Sprintf("%s%s*.%s", dsAbs, string(filepath.Separator), p.PeptideProphet.FileExtension) + go func(ds, db string) { + defer wg.Done() - files, e := filepath.Glob(gobExt) - if e != nil { - msg.Custom(e, "fatal") - } + logrus.Info("Running the validation and inference on ", ds) - peptideprophet.Run(meta, files) + // getting inside de the dataset folder + dsAbs, _ := filepath.Abs(ds) + absMeta := fmt.Sprintf("%s%s%s", dsAbs, string(filepath.Separator), sys.Meta()) - // give a chance to the execution to untangle the output - time.Sleep(time.Second * 1) + // reload the meta data + meta.Restore(absMeta) - }(ds, db) - } + // PeptideProphet + logrus.Info("Executing PeptideProphet on ", ds) + meta.PeptideProphet = p.PeptideProphet + meta.PeptideProphet.Database = p.Database.Annot + meta.PeptideProphet.Decoy = p.Database.Tag + meta.PeptideProphet.Output = "interact" + meta.PeptideProphet.Combine = true - wg.Wait() + gobExt := fmt.Sprintf("%s%s*.%s", dsAbs, string(filepath.Separator), p.PeptideProphet.FileExtension) + + files, e := filepath.Glob(gobExt) + if e != nil { + msg.Custom(e, "fatal") + } + + peptideprophet.Run(meta, files) + + // give a chance to the execution to untangle the output + time.Sleep(time.Second * 1) + + }(ds, db) } - // // PTMProphet - // if p.Commands.PTMProphet == "yes" { - // logrus.Info("Executing PTMProphet on ", i) - // meta.PTMProphet = p.PTMProphet - // var files []string - // files = append(files, "interact.pep.xml") - // meta.PTMProphet.InputFiles = files - // ptmprophet.Run(meta, files) - // meta.Serialize() - // } - - // // ProteinProphet - // if p.Commands.ProteinProphet == "yes" { - // logrus.Info("Executing ProteinProphet on ", i) - // meta.ProteinProphet = p.ProteinProphet - // meta.ProteinProphet.Output = "interact" - // var files []string - // if p.Commands.PTMProphet == "yes" { - // files = append(files, "interact.mod.pep.xml") - // } else { - // files = append(files, "interact.pep.xml") - // } - // proteinprophet.Run(meta, files) - // meta.Serialize() - // } + wg.Wait() + } - // return to the top level directory - //os.Chdir(dir) + os.Chdir(dir) + + return meta +} + +// PTMProphet execute the TPP PTMProphet +func PTMProphet(meta met.Data, p Directives, dir string, data []string) met.Data { + + for _, i := range data { + + logrus.Info("Running the validation and inference on ", i) + + // getting inside de the dataset folder + dsAbs, _ := filepath.Abs(i) + os.Chdir(dsAbs) // reload the meta data - //meta.Restore(sys.Meta()) - // /} + meta.Restore(sys.Meta()) + + // PTMProphet + if p.Commands.PTMProphet == "yes" { + logrus.Info("Executing PTMProphet on ", i) + meta.PTMProphet = p.PTMProphet + var files []string + files = append(files, "interact.pep.xml") + meta.PTMProphet.InputFiles = files + ptmprophet.Run(meta, files) + meta.Serialize() + } + + // return to the top level directory + os.Chdir(dir) } - os.Chdir(dir) + return meta +} + +// ProteinProphet execute the TPP ProteinProphet +func ProteinProphet(meta met.Data, p Directives, dir string, data []string) met.Data { + + for _, i := range data { + + logrus.Info("Running the validation and inference on ", i) + + // getting inside de the dataset folder + dsAbs, _ := filepath.Abs(i) + os.Chdir(dsAbs) + + // reload the meta data + meta.Restore(sys.Meta()) + + // ProteinProphet + if p.Commands.ProteinProphet == "yes" { + logrus.Info("Executing ProteinProphet on ", i) + meta.ProteinProphet = p.ProteinProphet + meta.ProteinProphet.Output = "interact" + var files []string + if p.Commands.PTMProphet == "yes" { + files = append(files, "interact.mod.pep.xml") + } else { + files = append(files, "interact.pep.xml") + } + proteinprophet.Run(meta, files) + meta.Serialize() + met.CleanTemp(meta.Temp) + } + + // return to the top level directory + os.Chdir(dir) + } return meta } diff --git a/philosopher.yml b/philosopher.yml index 340f72ee..3f7c5e75 100644 --- a/philosopher.yml +++ b/philosopher.yml @@ -257,7 +257,7 @@ abacus: uniqueOnly: false # report TMT quantification based on only unique peptides reprint: false # create abacus reports using the Reprint format -tmtintegrator: # v1.1.8 +tmtintegrator: # v1.1.10 path: # path to TMT-Integrator jar memory: 6 # memory allocation, in Gb output: # the location of output files @@ -282,4 +282,5 @@ tmtintegrator: # v1.1.8 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 (-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 \ No newline at end of file + max_pep_prob_thres: 0 # the threshold for maximum peptide probability + min_ntt: 0 # minimum allowed number of enzymatic termini \ No newline at end of file