bpipe icon indicating copy to clipboard operation
bpipe copied to clipboard

bpipe-0.9.8.6: bpipe segments don't support "*" operator

Open gdevenyi opened this issue 10 years ago • 1 comments

Here's my pipeline:

beastnormalize = {
    branch.origname = "$input"
    exec "beast_normalize $input.mnc $output.mnc $output.xfm -modeldir $TEMPLATE_DIR"
}

beastmask = {
    exec "mincbeast -clobber -verbose $LIBRARY_DIR $input.mnc $output.mnc -fill -median -conf $LIBRARY_DIR/default.2mm.conf"
}

beastresample = {
    from("xfm", "mnc") {
        exec "mincresample -invert_transformation -like $origname -transformation $input.xfm $input.mnc $output.mnc"
    }
}

beastextract = {
    exec "minccalc -expression A[0]*A[1] $origname $input.mnc $output.mnc"
}

beast = segment {
    beastnormalize + beastmask + beastresample + beastextract
}

This works

Bpipe.run {
    "%.mnc" * [beastnormalize + beastmask + beastresample + beastextract]
}

This doesn't:

Bpipe.run {
   "%.mnc" * beast
}

With error:

====================================================================================================
|                              Starting Pipeline at 2014-11-03 15:34                               |
====================================================================================================
=========================================== Bpipe Error ============================================

An error occurred executing your pipeline:

No signature of method: java.lang.String.multiply() is applicable for argument types: (bpipe.PipelineCategory$_plus_closure1) values: [bpipe.PipelineCategory$_plus_closure1@7b0b23cf]
Possible solutions: multiply(java.lang.Number), multiply(java.lang.Number)


Please see the details below for more information.

========================================== Error Details ===========================================

groovy.lang.MissingMethodException: No signature of method: java.lang.String.multiply() is applicable for argument types: (bpipe.PipelineCategory$_plus_closure1) values: [bpipe.PipelineCategory$_plus_closure1@7b0b23cf]
Possible solutions: multiply(java.lang.Number), multiply(java.lang.Number)
    at mincbeast.pipe$_run_closure6.doCall(mincbeast.pipe.groovy:31)
    at mincbeast.pipe$_run_closure6.doCall(mincbeast.pipe.groovy)
    at bpipe.Pipeline$_diagram_closure18.doCall(Pipeline.groovy:1029)
    at bpipe.Pipeline$_diagram_closure18.doCall(Pipeline.groovy)
    at bpipe.Pipeline.diagram(Pipeline.groovy:1028)
    at bpipe.Pipeline$diagram$5.callCurrent(Unknown Source)
    at bpipe.Pipeline.execute(Pipeline.groovy:618)
    at bpipe.Pipeline.execute(Pipeline.groovy)
    at bpipe.Pipeline.this$2$execute(Pipeline.groovy)
    at bpipe.Pipeline$this$2$execute$3.call(Unknown Source)
    at bpipe.Pipeline.run(Pipeline.groovy:475)
    at bpipe.Pipeline$run$2.callStatic(Unknown Source)
    at bpipe.Pipeline.run(Pipeline.groovy:435)
    at mincbeast.pipe.run(mincbeast.pipe.groovy:30)
    at mincbeast.pipe$run.call(Unknown Source)
    at bpipe.Runner.main(Runner.groovy:375)


====================================================================================================

More details about why this error occurred may be available in the full log file .bpipe/bpipe.log

And bpipe.log

bpipe.Runner    [10]    INFO    |3:34:04 Starting 
bpipe.Runner    [10]    INFO    |3:34:04 OS: Linux (3.10.39-i686-64-smp) Java: 1.6.0_26 Vendor: Sun Microsystems Inc. 
bpipe.Runner    [10]    INFO    |3:34:04 Initializing plugins ... 
bpipe.Config    [10]    INFO    |3:34:04 No plugins directory found: /home/cic/devgab/mincbeast_bpipe/.bpipe/plugins 
bpipe.Runner    [10]    INFO    |3:34:04 Reading user config ...  
bpipe.Config    [10]    INFO    |3:34:04 No configuration file found in same dir as pipeline file 
bpipe.Config    [10]    INFO    |3:34:04 No local configuration file found 
bpipe.Utils [11]    INFO    |3:34:04 Read config from /opt/quarantine/bpipe/0.9.8.6/build/bpipe-0.9.8.6/bin/../bpipe.config executed in 0.381 seconds 
bpipe.Utils [10]    INFO    |3:34:04 Read user config executed in 0.583 seconds 
bpipe.Runner    [10]    INFO    |3:34:04 Loading tool database ...  
bpipe.NotificationManager   [12]    INFO    |3:34:04 Configuring notifications 
bpipe.Concurrency   [13]    INFO    |3:34:04 Creating thread pool with 32 threads to execute parallel pipelines 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Trying class name file for notification channel file 
bpipe.ToolDatabase  [14]    INFO    |3:34:04 Loading tool database from user configuration 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool samtools 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool bwa 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool bowtie 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool fastqc 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool coverageBed 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool fastx_clipper 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool convert2annovar.pl 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool summarize_annovar.pl 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool bowtie2 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool GenomeAnalysisTK 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool MarkDuplicates 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool signalp 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool variant_effect_predictor.pl 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool igvtools 
bpipe.Tool  [14]    INFO    |3:34:04 Configured meta data about tool ls 
bpipe.Runner    [10]    INFO    |3:34:04 No CLI parameters specified 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Unable to create notification channel using class file: java.lang.ClassNotFoundException: file 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Trying class name bpipe.FILENotificationChannel for notification channel file 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Unable to create notification channel using class bpipe.FILENotificationChannel: java.lang.ClassNotFoundException: bpipe.FILENotificationChannel 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Trying class name bpipe.file for notification channel file 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Unable to create notification channel using class bpipe.file: java.lang.ClassNotFoundException: bpipe.file 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Trying class name bpipe.FileNotificationChannel for notification channel file 
bpipe.NotificationManager   [12]    INFO    |3:34:04 Successfully created notification channel using class bpipe.FileNotificationChannel 
bpipe.Runner    [10]    INFO    |3:34:04 Parsing script ...  
bpipe.Runner    [10]    INFO    |3:34:05 Run ...  
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastnormalize 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastmask 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastresample 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastextract 
bpipe.Pipeline  [10]    WARNING |3:34:05 Pipeline folder /home/cic/devgab/bpipes could not be found 
bpipe.Pipeline  [10]    INFO    |3:34:05 Running with input [input/1.mnc, input/2.mnc] 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastnormalize 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastmask 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastresample 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beastextract 
bpipe.PipelineCategory  [10]    INFO    |3:34:05 Found closure variable beast 
bpipe.Pipeline  [10]    WARNING |3:34:05 Pipeline folder /home/cic/devgab/bpipes could not be found 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: args 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference args is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: TEMPLATE_DIR 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference TEMPLATE_DIR is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: LIBRARY_DIR 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference LIBRARY_DIR is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: beastnormalize 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference beastnormalize is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: beastmask 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference beastmask is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: beastresample 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference beastresample is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: beastextract 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference beastextract is overridden by local reference 
bpipe.Pipeline  [10]    INFO    |3:34:05 Loaded external reference: beast 
bpipe.Pipeline  [10]    INFO    |3:34:05 External reference beast is overridden by local reference 
bpipe.Runner    [10]    SEVERE  |3:34:05 Reporting exception to user:  
bpipe.Runner    [10]    SEVERE  |3:34:05 Reporting exception to user 

gdevenyi avatar Nov 03 '14 20:11 gdevenyi

Update,

This didn't work

beast = segment {
    [beastnormalize + beastmask + beastresample + beastextract]
}

Bpipe.run {
   "%.mnc" * beast
}

But this did:

beast = segment {
    beastnormalize + beastmask + beastresample + beastextract
}

Bpipe.run {
   "%.mnc" * [beast]
}

gdevenyi avatar Nov 03 '14 20:11 gdevenyi