Comments (12)
This is the one that I couldn't remember, but found it again: https://github.com/gbouras13/dnaapler
This one might do the trick
from dragonflye.
Looks great! I wasn't aware of dnaapler. One other feature that unicycler includes is to put the start-gene (repA) on the positive strand. We've also seen some plasmids coming out of our hybrid assemblies that are the reverse-complement of plasmids from other assemblies. I just took a quick look at dnaapler and didn't see if it supports that but I hope that could be included.
from dragonflye.
Hi @dfornika,
I added support for dnaapler
in the latest commit of Dragonflye. If you want to give it a try go for it, otherwise I can push a version release.
Cheers,
Robert
from dragonflye.
Yo! @incoherentian
Easiest would be to build a dragonflye env with dnaapler, then download the latest commit from here.
mamba create -n dragonflye-dev202311 -c rpetit3 -c bioconda -c conda-forge dragonflye dnaapler
conda activate dragonflye-dev202311
# Download latest commit
wget https://raw.githubusercontent.com/rpetit3/dragonflye/main/bin/dragonflye
# Replace conda version with latest commit version
chmod dragonflye
mv dragonflye $(which dragonflye)
I'll have to think about Unicycler, most likely use dnaapler by default with an option to fall back on Unicyler's method, or the opposite.
from dragonflye.
Hi Dan,
Thanks for reaching out! I think this is definitely within the scope of Dragonflye. Maybe as a optional step.
I saw they recommend circulator, any other stand-alone tools come to mind for you? I know Trycycler has a step as well but it depends on the previous steps.
I can also look into this on my end
Robert
from dragonflye.
Oh great, I'm glad to hear you're open to the idea. I'm not aware of any other stand-alone tools. I did notice that the circlator repo says it's no longer maintained, and honestly I haven't tried it out. We've had generally good experience with unicycler's plasmid rotation, but for overall quality and completeness of hybrid assemblies we've seen that dragonflye is giving better results. So if dragonflye could do the plasmid rotation step too, it would be the best of both worlds!
from dragonflye.
wasn't aware of dnaapler
Nor I! Looks like a great addition though. Agree that mirroring the Unicycler-implemented functionality in flye assemblies (preferably using same start IMO) would be great.
from dragonflye.
Hi @rpetit3 that's great, thanks for implementing that. I'm not sure how quickly I'll be able to set up a test run so please don't let me block you from pushing out a release if you're satisfied with the results you're seeing.
from dragonflye.
Thought I'd have a go testing from your dev channel using the new changelog version 1.2.0 (since I gave my two cents here) but this didn't work:
mamba create -n dragonflye-dev202311 -c rpetit3 -c bioconda -c conda-forge dragonflye=1.2.0
When this hits the bactopia assembler, do you think you'll disable unicycler rotation and process both outputs with dnaapler for unified no_rotate = false
or no_rotate = true
params?
from dragonflye.
Thanks for the mini-tutorial! Was not aware I could just download and chmod a change like that without confusing conda.
Dragonflye actively logs dnaapler progress after polypolish:
[...]
[dragonflye] Writing final assembly file => 'contigs.fa'
[dragonflye] Reorienting contigs with dnaapler
[dragonflye] Running: dnaapler all --input contigs.fa --output flye/reorient --threads 12 --prefix contigs --force 2>&1 | sed 's/^/[dnaapler] /' | tee -a dragonflye.log
[dnaapler] 2023-11-13 15:34:26.192 | INFO | dnaapler.utils.validation:instantiate_dirs:23 - Checking the output directory flye/reorient
[dnaapler] 2023-11-13 15:34:26.205 | INFO | dnaapler.utils.util:begin_dnaapler:71 - You are using dnaapler version 0.4.0
[...]
& dnaapler summary highlighting relevant useful info
$ cat /scratch/c.medib/bactopia_out/d57_jing_trimgalore_merged/JING1_merged_ont_dflye-dev_out_job64418956/contigs.dnaapler.summary.tsv
Contig Gene_Reoriented Start Strand Top_Hit Top_Hit_Length Covered_Length Coverage Identical_AAs Identity_Percentage
contig00001 len=4685696 cov=37.0 origname=contig_1_polypolish polish=racon:1 round(s);medaka:2 round(s);polypolish:short_reads,1 round(s); sw=dragonflye-flye/1.2.0 date=20231113 circular=Y dnaA 821920 forward sp|Q3YWB2|DNAA_SHISS 467 467 100.0 466 99.79
contig00002 len=252722 cov=34.0 origname=contig_2_polypolish polish=racon:1 round(s);medaka:2 round(s);polypolish:short_reads,1 round(s); sw=dragonflye-flye/1.2.0 date=20231113 circular=Y repA 221900 reverse UniRef90_A0A077W3J7 291 291 100.0 290 99.66
Appears to be working perfectly :)
from dragonflye.
Hi all!
I finally got around to a proper release, v1.2.0 is now available with this feature: https://github.com/rpetit3/dragonflye/releases/tag/v1.2.0
Going to close this for now, please feel free to reopen!
from dragonflye.
Dear @rpetit3
I went through your code a bit and have a question: what happens if there is a linear contig? Does dragonflye use Dnaapler to reorient that, too?
from dragonflye.
Related Issues (20)
- Failed to run medaka consensus. - ModelStoreTF exception <class 'NotImplementedError'> HOT 14
- Memory default HOT 5
- Memory calculation HOT 3
- Medaka v1.7.3 HOT 8
- Feature request: dragonflye 1.1.N default to flye 2.9.2? HOT 3
- mismatch between model names valid for dragonflye 1.1.0 and medaka 1.8.0 HOT 14
- medaka fails to open model file for r1041_e82_400bps_sup_g615 HOT 9
- Niche QoL inquiry: polypolish acceptance of nonstandard file affixes? HOT 4
- flye log HOT 4
- Coverage of "0"? HOT 3
- Polypolish error HOT 6
- Citation HOT 2
- Typo HOT 1
- Citation for Nanoq in readme - suggested update HOT 1
- Polypolish error HOT 7
- Missed plasmid in reoriented.fa
- Execution error with Rasusa v1.0.0 in conda environment HOT 2
- how to check software in dragonflye?
- Can't locate FindBin.pm in @INC HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dragonflye.