These are chat archives for nextflow-io/nextflow

Jan 2018
Martin Šošić
Jan 20 2018 18:00

Hi! I already asked the question as an issue in github, but I think it is actually more appropriate to ask it here.
I have channels with alignment tasks and I have aligners. I am doing performance comparison, therefore I want certain aligners to perform certain tasks.
For example, let's say I have A1, A2, ... to A5 tasks (5 total) and also B1, B2, ... to B6 tasks (6 total) . I have aligners X, Y and Z.
I want to execute A? tasks with X, Y and Z, but I want to execute B? tasks only with X and Y (no Z, because it does not support such type of tasks).

What I did is make channel A that has tasks from A1 to A5. I also made channel B that has tasks from B1 to B6.
Next, I did A.into{X; Y; Z}, where I created X, Y and Z before that as empty channels.
Then, I did B.into{X; Y}.
X channel is plugged as input into process alignWithX, and same goes for other aligners.

However, what I got is that only B tasks were executed with X and Y, no A tasks, so I conclude that into operation does not add to channel, but instead it writes over it / direct exclusively to it. Is that correct?

What would be the best way to achieve this in elegant way, without creating intermediate channels?