Git Product home page Git Product logo

campagnelaboratory / nextflowworkbench Goto Github PK

View Code? Open in Web Editor NEW
22.0 6.0 4.0 55.35 MB

An implementation of Nextflow.io with Language Workbench Technology. The project helps create computational pipelines that run with the Nextflow.io middleware. Includes dockerfile language and IDE-like support for docker.

Home Page: http://campagnelab.org/software/nextflow-workbench/

License: Other

Shell 24.22% Java 75.78%

nextflowworkbench's Introduction

The Nextflow workbench is a set of languages developed with the Jetbrains MPS Language Workbench that make it easier to write data analysis workflows with Nextflow.

The Nextflow Workbench has several features that complement the Nextflow middleware:

  • It enables the reuse and composition of Nextflow processes across workflows.
  • It provides a custom typesystem that detects incompatible type assignments and reports them directly in the editor.
  • It provides seamless language composition as an effective extension and customization mechanism.
  • It provides a WYSIWYG editor to write analysis workflows meant to be deployed in docker containers (this feature was introduced in feature 1.2).
  • It provides a WYSIWYG editor to create docker images (since 1.2) and to declare which set of popular bioinformatics tools and genome indices should be pre-installed in each image (this feature will be introduced in release 1.3).

See http://campagnelab.org/software/nextflow-workbench/ for details about this project.

Join the chat at https://gitter.im/CampagneLaboratory/NextflowWorkbench

nextflowworkbench's People

Contributors

fac2003 avatar gitter-badger avatar jpk244 avatar manuelesimi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nextflowworkbench's Issues

IllegalModelAccessError when trying to run workflow

I moved some of the samples into a writeable model and adjusted to run. The model includes a logger I found in the sample.
jetbrains.mps.smodel.IllegalModelAccessError: You can write model only inside write actions
at jetbrains.mps.smodel.ModelAccess.checkWriteAccess(ModelAccess.java:115)
at jetbrains.mps.smodel.ModelAccessBase.checkWriteAccess(ModelAccessBase.java:48)
at jetbrains.mps.smodel.AttachedNodeOwner.assertLegalChange(AttachedNodeOwner.java:81)
at jetbrains.mps.smodel.SNode.assertCanChange(SNode.java:109)
at jetbrains.mps.smodel.SNode.insertChildBefore(SNode.java:751)
at jetbrains.mps.smodel.SNode.addChild(SNode.java:799)
at jetbrains.mps.lang.smodel.generator.smodelAdapter.AbstractSNodeList$ChildrenSNodesList.doAddReference(AbstractSNodeList.java:163)
at jetbrains.mps.lang.smodel.generator.smodelAdapter.AbstractSNodeList.addReference(AbstractSNodeList.java:38)
at jetbrains.mps.lang.smodel.generator.smodelAdapter.AbstractSNodeList.add(AbstractSNodeList.java:140)
at jetbrains.mps.lang.smodel.generator.smodelAdapter.AbstractSNodeList$ChildrenSNodesList.add(AbstractSNodeList.java:150)
at jetbrains.mps.internal.collections.runtime.AbstractCollectionSequence.addElement(AbstractCollectionSequence.java:20)
at org.campagnelab.logger.behavior.Logger__BehaviorDescriptor.add_id1EUvP1fLbE6(Unknown Source)
at org.campagnelab.logger.behavior.Logger__BehaviorDescriptor.invokeSpecial0(Unknown Source)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeSpecial(BaseBHDescriptor.java:346)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeNonVirtualCommon(BaseBHDescriptor.java:294)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeNonVirtual(BaseBHDescriptor.java:270)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invoke(BaseBHDescriptor.java:231)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke0(SMethodImpl.java:151)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke(SMethodImpl.java:126)
at org.campagnelab.docker.behavior.ExecuteDockerCommands.log(ExecuteDockerCommands.java:655)
at org.campagnelab.docker.behavior.ExecuteDockerCommands.executeLsWithCache(ExecuteDockerCommands.java:731)
at org.campagnelab.docker.bash.behavior.DockerPath__BehaviorDescriptor.doesPathExist_id2h_fDmyfOCy(DockerPath__BehaviorDescriptor.java:126)
at org.campagnelab.docker.bash.behavior.DockerPath__BehaviorDescriptor.invokeSpecial0(DockerPath__BehaviorDescriptor.java:194)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeSpecial(BaseBHDescriptor.java:346)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeVirtual(BaseBHDescriptor.java:305)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invoke(BaseBHDescriptor.java:229)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke0(SMethodImpl.java:151)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke(SMethodImpl.java:126)
at org.campagnelab.docker.bash.typesystem.FileDoesNotExist_NonTypesystemRule.applyRule(FileDoesNotExist_NonTypesystemRule.java:21)
at jetbrains.mps.newTypesystem.context.typechecking.IncrementalTypechecking.applyRuleToNode(IncrementalTypechecking.java:151)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent$3.run(NonTypeSystemComponent.java:343)
at jetbrains.mps.newTypesystem.context.typechecking.IncrementalTypechecking.runApplyRulesTo(IncrementalTypechecking.java:163)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyNonTypesystemRulesToNode(NonTypeSystemComponent.java:323)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyRulesToRoot(NonTypeSystemComponent.java:312)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.access$000(NonTypeSystemComponent.java:41)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent$2.compute(NonTypeSystemComponent.java:295)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent$2.compute(NonTypeSystemComponent.java:292)
at jetbrains.mps.languageScope.LanguageScopeExecutor.execWithModelScope(LanguageScopeExecutor.java:35)
at jetbrains.mps.newTypesystem.context.component.NonTypeSystemComponent.applyNonTypeSystemRulesToRoot(NonTypeSystemComponent.java:292)
at jetbrains.mps.newTypesystem.context.typechecking.IncrementalTypechecking.applyNonTypesystemRulesToRoot(IncrementalTypechecking.java:231)
at jetbrains.mps.newTypesystem.context.typechecking.BaseTypechecking.applyNonTypesystemRulesToRoot(BaseTypechecking.java:140)
at jetbrains.mps.newTypesystem.context.IncrementalTypecheckingContext.applyNonTypesystemRules(IncrementalTypecheckingContext.java:197)
at jetbrains.mps.newTypesystem.context.SimpleTypecheckingContext.checkRootAndGetErrors(SimpleTypecheckingContext.java:261)
at jetbrains.mps.typesystemEngine.checker.TypesystemChecker$1.run(TypesystemChecker.java:34)
at jetbrains.mps.typesystem.inference.TypeContextManager$Executor.doExecute(TypeContextManager.java:266)
at jetbrains.mps.typesystem.inference.TypeContextManager$Executor.execute(TypeContextManager.java:243)
at jetbrains.mps.typesystem.inference.TypeContextManager.runTypeCheckingAction(TypeContextManager.java:118)
at jetbrains.mps.typesystemEngine.checker.TypesystemChecker.getErrors(TypesystemChecker.java:32)
at jetbrains.mps.typesystemEngine.checker.TypesystemChecker.check(TypesystemChecker.java:45)
at jetbrains.mps.typesystemEngine.checker.TypesystemChecker.check(TypesystemChecker.java:26)
at jetbrains.mps.checkers.IteratingChecker.check(IteratingChecker.java:86)
at jetbrains.mps.checkers.IChecker$AbstractModelChecker$2.check(IChecker.java:63)
at jetbrains.mps.checkers.IChecker$AbstractModelChecker$2.check(IChecker.java:53)
at jetbrains.mps.checkers.CategoryShowingChecker.check(CategoryShowingChecker.java:39)
at jetbrains.mps.checkers.FilteringChecker.check(FilteringChecker.java:27)
at jetbrains.mps.checkers.CatchingChecker.check(CatchingChecker.java:25)
at jetbrains.mps.checkers.AggregatingChecker.check(AggregatingChecker.java:26)
at jetbrains.mps.checkers.SkippingChecker.check(SkippingChecker.java:21)
at jetbrains.mps.checkers.ModelCheckerBuilder$1.check(ModelCheckerBuilder.java:142)
at jetbrains.mps.checkers.ModelCheckerBuilder$1.check(ModelCheckerBuilder.java:114)
at jetbrains.mps.ide.modelchecker.platform.actions.ModelCheckerIssueFinder$1.compute(ModelCheckerIssueFinder.java:62)
at jetbrains.mps.ide.modelchecker.platform.actions.ModelCheckerIssueFinder$1.compute(ModelCheckerIssueFinder.java:54)
at jetbrains.mps.util.ComputeRunnable.compute(ComputeRunnable.java:32)
at jetbrains.mps.util.AbstractComputeRunnable.run(AbstractComputeRunnable.java:27)
at jetbrains.mps.smodel.WorkbenchModelAccess.lambda$runReadAction$0(WorkbenchModelAccess.java:77)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:902)
at jetbrains.mps.smodel.WorkbenchModelAccess.runReadAction(WorkbenchModelAccess.java:74)
at jetbrains.mps.smodel.ModelAccessBase.runReadAction(ModelAccessBase.java:53)
at jetbrains.mps.smodel.ModelAccessHelper.runReadAction(ModelAccessHelper.java:44)
at jetbrains.mps.ide.modelchecker.platform.actions.ModelCheckerIssueFinder.execute(ModelCheckerIssueFinder.java:54)
at jetbrains.mps.ide.findusages.view.UsagesView$RerunAction$1.run(UsagesView.java:332)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:750)
at com.intellij.openapi.progress.impl.CoreProgressManager$5.run(CoreProgressManager.java:434)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$null$10(ApplicationImpl.java:565)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

docker native has been released

Now that docker native has been released we can release the latest changes in NW required for compatibility with this version.

Plugin for MPS 2017

I would love to give Nextflow Workbench a try, but the installation instructions no longer work, and it looks like the latest version of the plugin is not compatible with the current release. Do you intend to update the plugin?

Run the test script

Hi,

I tried to run the example from the tutorial but I can not start it.

You see here the configuration:
nextflow

The MPS IDE reports the following nullpointer exception:

[1918549]  ERROR - llij.ide.plugins.PluginManager - null 
java.lang.NullPointerException
    at org.campagnelab.workflow.run.plugin.NextFlow_RunParameters_Configuration$1.run(Unknown Source)
    at jetbrains.mps.ide.smodel.WorkbenchModelAccess$2.run(WorkbenchModelAccess.java:118)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:896)
    at jetbrains.mps.ide.smodel.WorkbenchModelAccess.runReadAction(WorkbenchModelAccess.java:113)
    at jetbrains.mps.smodel.ModelAccessBase.runReadAction(ModelAccessBase.java:52)
    at org.campagnelab.workflow.run.plugin.NextFlow_RunParameters_Configuration.getAdditionalLibPath(Unknown Source)
    at org.campagnelab.workflow.run.plugin.NextFlow_Configuration_RunProfileState.execute(Unknown Source)
    at com.intellij.execution.runners.DefaultProgramRunner.doExecute(DefaultProgramRunner.java:33)
    at com.intellij.execution.runners.GenericProgramRunner$1.execute(GenericProgramRunner.java:43)
    at com.intellij.execution.RunProfileStarter.execute(RunProfileStarter.java:39)
    at com.intellij.execution.impl.ExecutionManagerImpl$2.run(ExecutionManagerImpl.java:203)
    at com.intellij.openapi.project.DumbServiceImpl.runWhenSmart(DumbServiceImpl.java:125)
    at com.intellij.execution.impl.ExecutionManagerImpl$1$1.run(ExecutionManagerImpl.java:168)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:748)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:577)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:384)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

NPE when trying to build a docker image

Clicking on the Build image button yields this exception (tested in 2018.1.1 with version 1.8.0 of the NW plugin):
null
java.lang.NullPointerException
at jetbrains.mps.lang.smodel.generator.smodelAdapter.SModelOperations.getModuleStub(SModelOperations.java:128)
at org.campagnelab.docker.behavior.ExecuteDockerCommands.getMessageViewTool(ExecuteDockerCommands.java:675)
at org.campagnelab.docker.behavior.ExecuteDockerCommands.log(ExecuteDockerCommands.java:648)
at org.campagnelab.docker.behavior.ExecuteDockerCommands.build(ExecuteDockerCommands.java:553)
at org.campagnelab.docker.behavior.Dockerfile__BehaviorDescriptor.build_id5BbChSjHB1p(Dockerfile__BehaviorDescriptor.java:67)
at org.campagnelab.docker.behavior.Dockerfile__BehaviorDescriptor.invokeSpecial0(Dockerfile__BehaviorDescriptor.java:117)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeSpecial(BaseBHDescriptor.java:346)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeNonVirtualCommon(BaseBHDescriptor.java:294)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invokeNonVirtual(BaseBHDescriptor.java:270)
at jetbrains.mps.core.aspects.behaviour.BaseBHDescriptor.invoke(BaseBHDescriptor.java:231)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke0(SMethodImpl.java:151)
at jetbrains.mps.core.aspects.behaviour.SMethodImpl.invoke(SMethodImpl.java:126)
at org.campagnelab.docker.editor.Dockerfile_EditorBuilder_a$1.process(Dockerfile_EditorBuilder_a.java:126)
at org.campagnelab.ui.code.Swing.ButtonCallback.run(Unknown Source)
at jetbrains.mps.smodel.WorkbenchModelAccess$CommandRunnable.lambda$run$0(WorkbenchModelAccess.java:449)
at jetbrains.mps.smodel.WriteActionDispatcher.run(WriteActionDispatcher.java:39)
at jetbrains.mps.smodel.WorkbenchModelAccess.lambda$runWriteAction$1(WorkbenchModelAccess.java:105)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1010)
at jetbrains.mps.smodel.WorkbenchModelAccess.runWriteAction(WorkbenchModelAccess.java:113)
at jetbrains.mps.smodel.WorkbenchModelAccess$CommandRunnable.run(WorkbenchModelAccess.java:446)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:137)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:95)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
at jetbrains.mps.smodel.WorkbenchModelAccess.runWriteActionInCommand(WorkbenchModelAccess.java:311)
at jetbrains.mps.smodel.WorkbenchModelAccess.executeCommand(WorkbenchModelAccess.java:307)
at jetbrains.mps.project.ProjectModelAccess.executeCommand(ProjectModelAccess.java:43)
at org.campagnelab.ui.code.Swing.Button$1.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6541)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
at java.awt.Component.processEvent(Component.java:6306)
at java.awt.Container.processEvent(Container.java:2237)
at java.awt.Component.dispatchEventImpl(Component.java:4897)
at java.awt.Container.dispatchEventImpl(Container.java:2295)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
at java.awt.Container.dispatchEventImpl(Container.java:2281)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4719)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:779)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:716)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:395)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Workflow name must escape spaces

I created a workflow called 'Split by Species'. When I tried to run the workflow, the run config failed with:
BUILD FAILED
Target "by" does not exist in the project "nextflow-local".

As a workaround I will remove the spaces from the name of the workflow.
A fix is needed to escape the spaces with underscore in the workflow name.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.