-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Secondary channel for long reads #157
Comments
The However, your case requires a bit more than just specifying parameters. In this case, what would be the expected behavior of unicycler when no long reads have been provided? Or when only long reads were provided? I'm assuming that the correct behavior would be for the unicycler component to evaluate the types of input it has and, depending on that, it either assembles only short reads, only long reads, or a mixture of both? |
Unicycler is able to assemble only short reads, only long reads, or a hybrid assembly of both short and long reads. Ideally the
|
Let's move this discussion over to PR #158. |
Right, so we can solve those shortcoming but we'll need to make some additions to flowcraft, some of which we already wanted to do for some time:
In the components that can receive more than 1 input, we would have to write the code to handle the possible input combinations, since this would be highly software specific. With these additions, assuming the new
And the workflow could be executed with A pipeline like:
Could be executed with only long reads, if the To use
In the last example, unicycler would fetch the latest process with a Does this overall setup sound good to you? |
This all sounds great! I changed the name in PR #158 from
This syntax doesn't seem intuitive to me. The syntax |
A typical hybrid assembly pipeline might look like |
Hmm, yes the problem of simplifying the pipeline orchestration with a single raw string is that you also don't have many simple options to build it. Changing to the syntax you proposed should be possible, but will require a re-working of the parser. I really feel this would be a very useful feature to add in flowcraft, the ability to merge the output of different components into a single one. However, we would need some time to think about the overall strategy so that it can be generally implemented. For instance, in the last example that you provided, it would be difficult to plug the output of trimmomatic to other assemblers that don't handle long reads. Right now I'm on a tight deadline, but should be able to return to this shortly. |
Cool. Let's think on it and talk more. |
I'm bringing this issue back to life and adding my input as I'm planning on implementing long read components to flowcraft relatively soon. 😄 |
I believe most long read assemblers can handle either type (unverified), so Flowcraft need not care what the file type is, and pass it straight through to the assembler. FASTQ is definitely more common though, and if we pick just one, that'd handle >90% of cases. |
A better name for the reads parameter than |
I'd like to add a parameter
--long-fastq
for use byporechop
andunicycler
. Whenporechop
is used, it consumes the raw long reads, and its outputs is the input to thelong_fastq
secondary channel ofunicycler
. Whenporechop
is not used,unicycler
consumes the raw long reads. The behaviour that I want seems handled byset_secondary_inputs
, but I'm not entirely sure from where or how to call this function. Could you please point me in the right direction?flowcraft/flowcraft/generator/process.py
Lines 726 to 727 in 2173530
The text was updated successfully, but these errors were encountered: