rrwick / bandage Goto Github PK
View Code? Open in Web Editor NEWa Bioinformatics Application for Navigating De novo Assembly Graphs Easily
Home Page: http://rrwick.github.io/Bandage/
License: GNU General Public License v3.0
a Bioinformatics Application for Navigating De novo Assembly Graphs Easily
Home Page: http://rrwick.github.io/Bandage/
License: GNU General Public License v3.0
Hi,
I'm trying to build Bandage on OSX (10.12) as per the instructions on https://github.com/rrwick/Bandage. At step 7 (Build the program: make), I get an error:
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [qmake.app/Contents/MacOS/qmake] Error 1
I used homebrew to install Qt5.
Thanks!
Hi, Ryan. Have you had a chance to look at the nearly finalized GFA 2 spec?
See https://github.com/thegenemyers/GFA-spec/blob/master/GFA2-spec.md
and GFA-spec/GFA-spec#48
Working under Ubuntu 16.04 and following the installation instructions for Ubuntu.
The build crashers with a "collect2: error: ld returned 1 exit status" and undefined references. I understand this could be typos in the code.
I also ran a "make clean" + "make" with the same result.
Below is the last part of the screen output (just before failing):
g++ -Wl,-O1 -Wl,-rpath,/home/gbonilla/Software/BioTools/Anaconda/lib -o Bandage main.o settings.o globals.o graphlayoutworker.o debruijnnode.o debruijnedge.o graphicsitemnode.o graphicsitemedge.o mainwindow.o graphicsviewzoom.o settingsdialog.o mygraphicsview.o mygraphicsscene.o aboutdialog.o enteroneblastquerydialog.o blasthit.o blastqueries.o blastsearchdialog.o infotextwidget.o assemblygraph.o verticalscrollarea.o myprogressdialog.o nodewidthvisualaid.o verticallabel.o load.o image.o commoncommandlinefunctions.o mytablewidget.o buildblastdatabaseworker.o colourbutton.o blastquery.o runblastsearchworker.o blastsearch.o path.o pathspecifydialog.o graphlocation.o tablewidgetitemint.o tablewidgetitemdouble.o tablewidgetitemshown.o memory.o querypathspushbutton.o querypathsdialog.o blastquerypath.o blasthitfiltersdialog.o scinot.o changenodenamedialog.o querypathsequencecopybutton.o querypaths.o info.o reduce.o Graph.o GraphAttributes.o FMMMLayout.o geometry.o ClusterGraphAttributes.o FruchtermanReingold.o NMM.o GmlParser.o simple_graph_alg.o basic.o XmlParser.o String.o Hashing.o PoolMemoryAllocator.o GraphCopy.o CombinatorialEmbedding.o OgmlParser.o ClusterGraph.o Math.o EdgeAttributes.o NodeAttributes.o MAARPacking.o Multilevel.o numexcept.o Set.o Ogml.o DinoXmlParser.o DinoXmlScanner.o DinoTools.o DinoLineBuffer.o System.o QuadTreeNM.o QuadTreeNodeNM.o Constraint.o MultilevelGraph.o graphinfodialog.o tablewidgetitemname.o changenodedepthdialog.o qrc_images.o moc_graphlayoutworker.o moc_mainwindow.o moc_graphicsviewzoom.o moc_settingsdialog.o moc_mygraphicsview.o moc_mygraphicsscene.o moc_aboutdialog.o moc_enteroneblastquerydialog.o moc_blastquery.o moc_blastsearchdialog.o moc_infotextwidget.o moc_assemblygraph.o moc_verticalscrollarea.o moc_myprogressdialog.o moc_nodewidthvisualaid.o moc_verticallabel.o moc_mytablewidget.o moc_buildblastdatabaseworker.o moc_colourbutton.o moc_runblastsearchworker.o moc_pathspecifydialog.o moc_querypathspushbutton.o moc_querypathsdialog.o moc_blasthitfiltersdialog.o moc_changenodenamedialog.o moc_querypathsequencecopybutton.o moc_graphinfodialog.o moc_changenodedepthdialog.o -L/usr/lib -lQt5Svg -L/home/gbonilla/Software/BioTools/Anaconda/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread ClusterGraphAttributes.o: In function
void std::__cxx11::basic_string<char, std::char_traits, std::allocator >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.87]':
ClusterGraphAttributes.cpp:(.text+0x109): undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)' ClusterGraphAttributes.o: In function
ogdf::ClusterGraphAttributes::writeOGML(std::ostream&)':
ClusterGraphAttributes.cpp:(.text+0x7404): undefined reference to VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x7429): undefined reference to
vtable for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x7481): undefined reference to vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x74aa): undefined reference to
vtable for std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x7564): undefined reference to vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x75bc): undefined reference to
vtable for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x75e5): undefined reference to vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x82c3): undefined reference to
std::__cxx11::basic_string<char, std::char_traits, std::allocator >::swap(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)'
ClusterGraphAttributes.cpp:(.text+0x840a): undefined reference to vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x8423): undefined reference to
vtable for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x8435): undefined reference to vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x847e): undefined reference to
VTT for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x84ba): undefined reference to vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x84d3): undefined reference to
vtable for std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >'
ClusterGraphAttributes.cpp:(.text+0x84e5): undefined reference to vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.cpp:(.text+0x8936): undefined reference to
std::__cxx11::basic_string<char, std::char_traits, std::allocator >::swap(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)'
ClusterGraphAttributes.cpp:(.text+0x89a6): undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ClusterGraphAttributes.cpp:(.text+0x89d2): undefined reference to
std::__cxx11::basic_ostringstream<char, std::char_traits, std::allocator >::~basic_ostringstream()'
ClusterGraphAttributes.cpp:(.text+0x89da): undefined reference to std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()' ClusterGraphAttributes.o: In function
std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >::~basic_stringbuf()':
ClusterGraphAttributes.cpp:(.text._ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev[_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED5Ev]+0x3): undefined reference to vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' ClusterGraphAttributes.o: In function
std::__cxx11::basic_stringbuf<char, std::char_traits, std::allocator >::~basic_stringbuf()':
ClusterGraphAttributes.cpp:(.text._ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev[_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED5Ev]+0x3): undefined reference to vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >' NMM.o: In function
ogdf::NMM::init_binko(int)':
NMM.cpp:(.text+0x709d): undefined reference to __cxa_throw_bad_array_new_length' NMM.o: In function
ogdf::NMM::form_multipole_expansion_of_subtree(ogdf::NodeArrayogdf::NodeAttributes&, ogdf::QuadTreeNM&, ogdf::Listogdf::QuadTreeNodeNM*&)':
NMM.cpp:(.text+0xb0e4): undefined reference to __cxa_throw_bad_array_new_length' NMM.cpp:(.text+0xb0fc): undefined reference to
__cxa_throw_bad_array_new_length'
simple_graph_alg.o: In function ogdf::topologicalNumbering(ogdf::Graph const&, ogdf::NodeArray<int>&)': simple_graph_alg.cpp:(.text+0x20da): undefined reference to
__cxa_throw_bad_array_new_length'
simple_graph_alg.o: In function ogdf::strongComponents(ogdf::Graph const&, ogdf::NodeArray<int>&)': simple_graph_alg.cpp:(.text+0x3473): undefined reference to
__cxa_throw_bad_array_new_length'
simple_graph_alg.o:simple_graph_alg.cpp:(.text+0x3783): more undefined references to __cxa_throw_bad_array_new_length' follow collect2: error: ld returned 1 exit status Makefile:603: recipe for target 'Bandage' failed make: *** [Bandage] Error 1
I'd like to specify the random seed value for Bandage image
, so that I can reproducibly get the same image for a given graph. For example, if I create both a PNG file and a SVG file, I'd like them to be the same. A workaround for this example is to generate the SVG file and convert it to PNG.
First,: Thanks for creating this and so many other software that I use on a regular basis. My work has been made easier by these software.
I have been using bandage to visualize canu assemblies and it seems that the overlap length always show up as 0. I have been using the last release 0.81 version. Is this intentional or am i missing something. I did look at the commits made since that release but none looked like a fix for this issue.
Thanks
DB
Hi Ryan,
Thanks for your exited Bandage! It is really helpful when the first time someone shown me on a Mac system. But the problem is that I cannot use the function 'Save visible graph to GFA' on Windows or Ubuntu. I tried on four different computers including 32 bit and 64 bit of Windows 7 and Windows 10, and Ubuntu 14. Every time when I edited the graph, 'Merge all possible nodes', 'Save visible graph to GFA' and re-load the saved GFA file, the graph is just what it original is and cannot save what I edited. So I cannot output the sequence as one complete genome. While, the same data can be well edited in a Mac system. I do read all information in yoru website, but still cannot figure out how deal with this problem. Do you know what possible the reason is and what should I do?
Besides, I tried the version 0.7.1, but the the total length of my contigs reading in is shorter than it should be. It seems the nodes length are incorrect. However, the version 0.7.1 can save the edited fastg file into gfa file using ‘Save visible graph to GFA'.
Hi Ryan,
First of all many I'd like to thanks you for this awesome tool. Now to the issue, while working on a LastGraph to GFA parser, when utilizing Bandage 7.1 to corroborate the specification of the connected components reported by the parser, we noticed that when exporting selected nodes from LastGraph file to GFA, the output file generated by Bandage reports appears to be an incorrect value in the GFA sequence's read count optional header.
From what I could gather the GFA sequence's read count (RC:i:###) is being retrieved using LastGraph's $COV_SHORT1 value from the NODE header, instead of the $NUMBER_OF_SHORT_READS value from the NR header.
LastGraph
NODE $NODE_ID $COV_SHORT1 $O_COV_SHORT1 $COV_SHORT2 $O_COV_SHORT2
NR $NODE_ID $NUMBER_OF_SHORT_READS
GFA
S RC i # reads assembled into the segment
L/S RC i # reads that support the segment/link
I'm an undergrad student currently working on my first semester of Bioinformatics research, so I might be mistaking the terms used in the documentation for the file formats. Anyways, I hope this is a useful contribution.
I associated the GFA file type with Bandage.app. I double clicked a GFA file. Bandage opens, but the selected graph is not loaded. I suspect this is because the Bandage.app/Contents/MacOS/Bandage
executable needs to be launched with the Bandage load foo.gfa
command, whereas macOS is probably launching it with simply Bandage foo.gfa
(unconfirmed). open foo.gfa
similarly does not work. Bandage load foo.gfa
works as expected.
Using GCC 6.3.1 and Qt 5.8.0 on ArchLinux, compilation failed with :
fatal error: stdlib.h: No such file or directory
The error is related to QTBUG-53367. The bug report mention GCC 6.1.0 and Qt 5.6.0. The conclusion is that :
the problem are the broken qmake-based build systems of 3rd party applications, which somehow end up adding /usr/include to INCLUDEPATH. report bugs against these applications.
fix for them:
MY_EXTERNAL_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS
INCLUDEPATH += $$MY_EXTERNAL_INCLUDES
note that -L switches added to LIBS also need filtering based on QMAKE_DEFAULT_LIBDIRS.
A quick git blame on the .pro reported no obvious reason for adding /usr/include to INCLUDEPATH (it's there since the initial commit)
Hi!
Is it possible to add support for scaffold paths that contain gaps? E.g. SPAdes outputs .paths files in the following format:
NODE_1_length_237713_cov_242.866931
15366-;
13368-,15368-,13368-,14744+;
15696+,13092-,15690+,13092-;
15694+
where semicolon corresponds to a gap (consecutive edges may not be adjacent).
Thanks in advance!
When doing a click and drag 'rubber band' in the Bandage viewport, items may not be correctly selected if the view has been rotated. Items can become selected before the selection box reaches them.
Hi,
is there a way to get the graph drawn without booting up GUI?
I usually run assemblies on server machines without GUI installed and I'd like to have it as part of a pipeline.
Hi Ryan,
We'll release a software around next month where we'll need a feature that is present in the development branch of Bandage. By any chance, do you plan on making a Bandage release for a future version that includes changes in this branch? It'd help us to have released binaries because compiling Bandage from source is a bit difficult on some machines.
Best,
Rayan
The sequences of a GFA file may optionally be stored in an associated FASTA file. See https://github.com/pmelsted/GFA-spec/blob/master/GFA-spec.md#segment-line
ABySS for example stores the graph in scaffolds.gfa
and the sequences in scaffolds.fa
. The sequences of the segment records are *
. I would like to be able to load the sequences from the associated FASTA file to support BLAST searches.
I don't know off the top of my head of a utility to load the GFA and FA files into a single GFA file with sequences, but I'll look.
Also other properties, but I'm most interested in the CIGAR string to determine the amount by which two sequences overlap. It would also but neat to visualize the amount of overlap, but I'd be happy with a text display for now.
Bandage has been great with a few GFA graphs. Nonetheless, there is a small inconvenience in my case. My graphs don't contain sequences, but instead write the contig lengths to the LN:i:
tag on the segment lines. For now, Bandage ignores the LN tag and considers all contigs to be 1bp. It would be good to recognize the LN tag. Thanks in advance.
I have NCBI BLAST installed locally on my Linux computer, but Bandage can't find it.
$ which makeblastdb
/home/es249628/bin/ncbi-blast-2.4.0+/bin/makeblastdb
$ which blastn
/home/es249628/bin/ncbi-blast-2.4.0+/bin/blastn
Everytime I click 'Build BLAST database' button in the BLAST search window of Bandage, it gives me an error message: "The program makeblastdb was not found. Please install NCBI BLAST to use this feature."
I'm using Bandage_Ubuntu_static_v0_8_1.
Would be great is Bandage could remember the folder of the last opened file, so that File->Load directly goes to it, instead of $HOME. Alternatively, "./Bandage file.fasta" could work too. Right now, it's a time-waster to navigate to the right folder whenever I want to reload a file.
Hi Ryan,
I just wanted to let you know that when you select a few consecutive nodes the "Total length" reported under "selected nodes" reflects the sum of the lengths of node labels, whereas it should be less - specifically you should deduct the overlap sizes. It looks like this is done correctly when such paths are copied to the clipboard, so I just wanted to suggest having these lengths match up to avoid confusion. I'm seeing this on 0.7.0, so hopefully it's not something you already took care of.
Thanks, R
Hi,
I just noticed thst copy node to clipboard/save to fasta have disappeared. It was really useful to have and see them visually. Only after diggin in menus I noticed that I could use short cuts.
Please bring buttons back. It was really useful to have them visible on the right pane.
Not sure whether this is a 'bug' but it has caused me issues. A FASTG file with multiple nodes with the same id causes Bandage to silently pick its favorites for inclusion (the last one read?). This means you can't just 'cat' multiple graph files together without renaming the nodes. One solution could be to warn the user if there are non-unique ids. Another would be to generate unique internal ids based on the unique combinations of length and coverage. Thanks
In this example, Bandage only loads the 26933 edge with length 155 but it is linked to 32917
EDGE_26933_length_1108_cov_2.35066:EDGE_26933_length_1108_cov_2.35066;
EDGE_26933_length_1108_cov_2.35066':EDGE_26933_length_1108_cov_2.35066',EDGE_32917_length_1362_cov_1.4664';
EDGE_32917_length_1362_cov_1.4664:EDGE_26933_length_1108_cov_2.35066;
EDGE_26933_length_155_cov_6.89286:EDGE_26933_length_155_cov_6.89286;
EDGE_26933_length_155_cov_6.89286':EDGE_26933_length_155_cov_6.89286';
On 0.5.6 binaries for Linux over X11 connection, the "Node" text boxes (jump to, or build graph around) don't accept text, typed or pasted.
I'm attempting to generate an image for a moderate-sized graph. I've stripped the sequences out to try to make it easier.
I was able to render the graph on my laptop, but Bandage crashed when trying to save the image as an svg. I moved to a remote server but it seems like the problem persists:
-> % time Bandage image cerevisiae.no_seqs.gfa cerevisiae.no_seqs.gfa.svg
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
[2] 24897 abort Bandage image cerevisiae.no_seqs.gfa cerevisiae.no_seqs.gfa.svg
Bandage image cerevisiae.no_seqs.gfa cerevisiae.no_seqs.gfa.svg 2140.16s user 31.24s system 99% cpu 36:12.28 total
Writing a .png seems to result in a blank image of the correct size but no error.
I'm happy to share the graph.
Hi There,
I have installed Bandage in my Ubuntu machine and on my Mac.
It works fine on the Mac but when I launch the executables in Ubuntu the top menu bar with File and View options is missing.
I didn't get any errors while building the tool and QT5 seems to be installed fine too.
Any help would be appreciated.
Sej
eg. when using MOSH instead of SSH
% Bandage
QXcbConnection: Could not connect to display localhost:10.0
Aborted (core dumped)
When I change the colour of a single segment using the Set colour button, the colours of all the other segments change to grey. I'd prefer that they retain their original random colours.
To obtain the current behaviour, I'd prefer to Select all then Set colour to grey, then select a single segment, and Set colour to a different colour.
This is a GFA produced by SGA on a small test set:
S 3 GGGTAGACACCACACCACAATGACCCGTTTGACAGCACCACACCAGTTGACAGTAGACGT
S 4 ACCACACCAGTTGACAGTAGACGTACCACCACACAGTGACGATGGGCGTTAGACGTAACAACCAGATTGAGACGGATGGGGACACCAGT
S 6 CAACCAGATTGAGACGGATGGGGACACCAGTGTCCCATTACAGTGACACGATTACCCCAGTAGACGATAGGACGATAGAGACGATAGGACAG
S 5 CAACCAGATTGAGACGGATGGGGACACCAGTATCCCATTACAGTGACACGATTACCCCAGTAGACGATAGGACGATAGAGACGATAGGACAG
S 2 GGGTAGACACCACACCACAATGACCCGTTTGACAGTACCACACCAGTTGACAGTAGACGT
S 7 TCCCATTACAGTGACACGATTACCCCAGTAGACGATAGGACGATAGAGACGATAGGACAGTCCGGTGTTTCCAGATGACGATGGCAGATGAACCACAGTAGACAGATTAGGATAG
S 1 ACGGGGTAGATTAGACGATTAGGACGATAGGACGGTTGAAAACAGTGGACGAGTAGACGATAGGAAAGGGGCGGGTAGACACCACACCACAATGACCCGTTTGACAG
L 3 + 4 + 24M
L 4 + 5 + 31M
L 4 + 6 + 31M
L 6 + 7 + 60M
L 5 + 7 + 60M
L 2 + 3 - 4M
L 2 + 4 + 24M
L 1 + 2 + 35M
L 1 + 3 + 35M
When visualized in bandage, you get this:
This hides an important feature of this graph. One of the two SNPs actually includes an inverting edge between its internal nodes.
vg's ugly but utilitarian viz demonstrates the problem. (Killing node labels to make it fit on screen.)
vg view -Fv graph.gfa | vg mod -K - | vg view -d - | dot -Tpng -o graph.png
There is an inversion between nodes 2 and 3. vg shows this by switching from the top of the node to the bottom.
Could bandage provide a default way to see these inverting edges? This issue caused us a lot of confusion.
When running Bandage
from the command line, using a symlink does not work. It gives the error message:
This application failed to start because it could not find or load the Qt platform plugin "cocoa".
Hi Ryan,
Thanks for this great tool! This is more of a feature request than an issue. I was wondering how difficult it would be to draw a scale bar in the graphs exported from Bandage. This would be really useful comparing multiple assemblies, where the zoom level is changing dependent on the drawn orientation of the visualization. It doesn't have to be fancy, just a solid bar depicting the length of say 10kb. Is there a setting I am missing? How difficult would this be?
Hi Ryan,
Do you have plans to implement a graphical way to visualize e.g. a contig as a line that goes along multiple nodes? e.g. using CSV information.
Hello
Having successfully installed bandage on windows, I then attempted the same on my Linux (Ubuntu) box.
$ ./Bandage
QXcbConnection: XCB error: 145 (Unknown), sequence: 158, resource id: 0, major code: 139 (Unknown), minor code: 20
The GUI opens and looks as it does in Windows except there is no top menu.
Any suggestions?
Thanks
Mark
Is it possible to create a user configuration file under the Bandage working directory (hence it does not depend on any specific OS) to store defaults such as a user's working directory, colour scheme and graphic parameters from the settings menue? Given frequent routine use by users for each project, this enhancement could benefit users in efficiency.
Thanks.
I'm using Bandage v0.8.1 with the file assembly_graph_with_scaffolds.gfa
(formerly assembly_graph.gfa
) produded by SPAdes (don't know when this file was introduced).
At the end of the file, the names of the contigs are listed in conjuction with the node numbers:
P NODE_12_length_48543_cov_29.129936_1 2247097+,602318+,2267759+,2267751- *
P NODE_13_length_44834_cov_76.398234_1 2268031+ *
Unfortunately, I can search only for the node numbers (i. e. 2268031
) but not for the node name (i. e. NODE_13_
). It is a bit hard to match the graph with the assembly.
It would be great, if node names are searchable and can be shown on the graph, but only the prefix till length.
As an intermediate solution, I've created a CSV file for it.
I installed the latest version on OS X (El Capitan) and it all works great but right mouse button doesn't do anything. Should it be?
I wonder what value is expected from the assembler in the KC field of GFA1 format.
We were planning to report the total number of kmers, falling inside the edge, but it seems that it will break the current average coverage calculation in Bandage.
Moreover, the particular value of K will be necessary to get proper average value.
What do you think?
Maybe we should consider adding an "average coverage" field to GFA1?
Hi,
Would it be possible to draw self loops in assemblies? This would help us a lot in bacterial assemblies to distinguish coverage limited partial assemblies from plasmids.
For example if I have the following GFA
H VN:Z:1.0
S 1 CGATGCAA
L 1 + 1 + 0M
The visualisation I seem to get is
I was wondering if it would be possible to make these into a circular contig in such situations?
Thanks,
Govinda.
Would be helpful to be able to get taxonomy outputs from BLAST searches within Bandage for metagenomes, mainly. This would allow easy selection of contigs by taxonomic assignment but also detection of contaminants from the assembly.
Thanks!
Does Bandage support P records in GFA format?
Hi Ryan,
I love bandage, so thanks for that!
However, sometimes it can be quite difficult to see what is going on. e.g.
what would be great is if there were an 'explode' or 'repel' function that made the nodes all spread apart, kind of like this
I have no idea how difficult it would be to do that, but i think it would be quite useful.
Thanks again for developing a great tool.
This small FastG crashes Bandage with a segfault when I draw the graph. Is it malformed? (assembled with k=21, exact overlaps of length 20)
>NODE_0_length_415_cov_0_ID_0;
CTCTAATAGGACCTCTTGCCCATCCGAGGCTTAAGCAGCGACTCCACATGGAGCGATGGGTCCTCAAGGC
AGTATAAAATGGACTGCTATCTAGGCGTTAAAGTAGTAGAACGAGGGTCGGGCGATTTGTTTTGGTAGTG
GTTATCGCATTGCAAGAACGTACGGACGGACAAAATGTCGGACACCGCCTTATCGGCTATACTAGTTAGA
GCCTCGCTTGGGTCTCTACATCCGCTGATACGCGCGAGCTCTCACCCACGACTGTACCCCGGTTAAGATT
TATAAACCATACATTTAACCCTTAGTCATAAGATGATACTTCATCTGCATGCGCGCATCTTCCTATTTTA
TGGTCTTAATTGAGTGTTCAGAGTTGGGGGTCACAGATGAGCGTTCCGATTGTCCTTTCCCAGGC
>NODE_0_length_415_cov_0_ID_0':NODE_29_length_41_cov_0_ID_29';
GCCTGGGAAAGGACAATCGGAACGCTCATCTGTGACCCCCAACTCTGAACACTCAATTAAGACCATAAAA
TAGGAAGATGCGCGCATGCAGATGAAGTATCATCTTATGACTAAGGGTTAAATGTATGGTTTATAAATCT
TAACCGGGGTACAGTCGTGGGTGAGAGCTCGCGCGTATCAGCGGATGTAGAGACCCAAGCGAGGCTCTAA
CTAGTATAGCCGATAAGGCGGTGTCCGACATTTTGTCCGTCCGTACGTTCTTGCAATGCGATAACCACTA
CCAAAACAAATCGCCCGACCCTCGTTCTACTACTTTAACGCCTAGATAGCAGTCCATTTTATACTGCCTT
GAGGACCCATCGCTCCATGTGGAGTCGCTGCTTAAGCCTCGGATGGGCAAGAGGTCCTATTAGAG
>NODE_29_length_41_cov_0_ID_29:NODE_0_length_415_cov_0_ID_0;
ATTTAGACCGTTCACTGAACCCTCTAATAGGACCTCTTGCC
>NODE_29_length_41_cov_0_ID_29';
GGCAAGAGGTCCTATTAGAGGGTTCAGTGAACGGTCTAAAT
Is it possible to load a GFF3 with the annotation of the assembly into Bandage? The idea would be to analyze regions in the graph corresponding to certain genomic features. Thanks
It would be useful to be able to filter by contig length, or by connections e.g. to avoid plotting singletons, or combined, to avoid plotting short singletons.
The FASTQ parsing is currently tightly coupled with spades output. Simple nodes with no intra-sequence branching fail to load. It appears this is due to shapes-specific parsing of node names and explicit checks for + and - in assemblygraph.cpp
#FASTG:begin:version=1.0;
>ACCCTAACCCTAACCCTAACCCTAA_10020:CCCTAACCCTAACCCTAACCCTAAC_10021:start=10020,end=10020,weight=38,reference=1;
ACCCTAACCCTAACCCTAACCCTAA
>CCCTAACCCTAACCCTAACCCTAAC_10021:start=10021,end=10021,weight=38,reference=1;
CCCTAACCCTAACCCTAACCCTAAC
#FASTG:end;
Are there any plans to support any additional file formats (such as paired .fasta/.dot as used by ABySS )? What format would you recommend new assemblers export to?
Cheers
Daniel
Hi! Thanks for this very nice piece of software.
Bandage really needs a "undo" action. Whenever I delete a node by mistake, or move a node by mistake, etc..
...during command line usage of blast on MacOSX.
It's not clear whether the blast databases can be recognized and re-used. In my case I wouldn't mind keeping them around since I'm BLASTing multiple assemblies against multiple reference genomes. But if they are not re-used it makes more sense to delete them or generate them in a tmp folder where they will be auto-cleaned up.
an example invocation:
Bandage reduce assembly_graph.fastg output.gfa --scope aroundblast --distance 10 --query blastfile.fna --evfilter 1e-100
Hi,
Bandage is a great tool.
I'd like to request one useful feature to be added for easier viewing: in case P-lines are specified in a GFA file, it would really come in handy to have an option to assign the same color to the nodes belonging to the same path, and different paths would be colored differently.
This would really help to e.g. visualize contig boundaries, as produced by an assembler.
Best regards,
Ivan.
Due to university ActiveDirectory, students have usernames $USER
like STUDENT\janedoe
.
Some systems set TMPDIR=/tmp/$USER
.
The system libraries you are using for temporary BLAST files use this variable.
But it needs to be treated literally, or the backslash escaped, otherwise it will become STUDENTanedoe
and other inconsistencies will occur.
When BLASTing a bacterial reference against a large set of contigs, Bandage will report by default only 250 hits per chromosome, which might be a small subset of the contigs.
One way to get around that is to specify "-max_target_seqs N" to capture all hits (up to N contigs per chromosome).
When trying to use a complete bacterial genome as the BLAST query against an assembled genome, Bandage only finds a maximum of 400 hits per query sequence. I don't know if this is a BLAST thing or a Bandage thing, but it would be useful to raise that to a much higher number. My workaround now is to split the query into artificial contigs so that no single contig is saturated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.