veidenberg / wasabi Goto Github PK
View Code? Open in Web Editor NEWWasabi is a web-based tool for evolutionary sequence analysis. Homepage: http://wasabiapp.org
License: GNU Affero General Public License v3.0
Wasabi is a web-based tool for evolutionary sequence analysis. Homepage: http://wasabiapp.org
License: GNU Affero General Public License v3.0
With the sample alignment above re-hiding gaps after showing some columns does not work unless the slider in dialog is moved.
Steps to reproduce:
click on the link above
click on tools->hide gaps, then on Apply
reveal some of the hidden columns (e.g. two columns at position 18,19)
click on tools->hide gaps
the revealed columns are not marked for hiding again (and clicking on apply does not hide them) unless the slider is moved either left or right.
The problems presents itself each time hidden columns are revealed.
Steps to reproduce:
Load an alignment file (no tree)
Click on a sequence name (delete menu appears)
Click on delete
move the mouse on the sequence names past the deleted sequences
The sequence highlight bar appears one sequence below the one pointed by the mouse pointer. Sequences above the deleted one are correctly highlighted
Removing further sequences make the highlight further out of sync for sequences following them
Is there an online manual or rather a tutorial for wasabi explaining its features and the tasks that one can perform with it? Some features are rather intuitive but others need a bit of clarification for the user.
Hello,
I don't know if this is the place to do this, but I'm gonna give it a try. I was reading this page, http://wasabiapp.org/software/prank/prank_differences/ , which is very informative but sadly all of the linked images are missing:
http://wasabiapp.org/download/data/topology1.png
http://wasabiapp.org/download/data/topology2.png
http://wasabiapp.org/download/data/subst_plots.png
That's it, hope somebody know where those images are :)
Cheers
I'm using PAGAN to do a codon alignment with nucleotide sequences, but I`m get this messagge error,
Computing BppDist guidetree for the initial alignment.terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorboost::bad_any_cast >'
what(): boost::bad_any_cast: failed conversion using boost::any_cast
Abort trap: 6
I have a multifasta file with aprox 95 nucleotide sequences
I would like to associate a URL, e.g. a local Wasabi server,
that loads an XML aln/tree file that has been created. E.g.
http://localhost:port?file=xyz.xml
Is this the best way to have a new tab appear that opens a Wasabi session with the aln/tree info loaded?
Thx in advance.
Hi
the link between tree leaves and fasta sequences is not done when the fasta header contains description (separated from the id by a space delimiter).
e.g.
>XXX description of XXX
does not link with XXX leaf in tree.
The tree shows the different branch lengths but there is no scale bar at which the user can get an idea of the actual meaning of the visualized branch lengths. A scale bar would greatly improve usability of the tool.
With the demo dataset click on a tree node and select export subtree. The export window shows up without any option to download the tree as a file.
It should be possible to download the tree as a file instead.
If repeated data exports are made, the generated file name gets a suffix of underscore and a sequential number at the end of it, after the extension. I think the filename should either remain the same (delegating name conflicts resolution to the browser's download manager) or the suffix be put before the file extension, so that the file can be properly handled by the system once downloaded.
I try to load a tree and an msa file at the same time following http://wasabiapp.org/rest/ documentation but it fails.
It works perfectly with a single url=source but I cannot get two url sources loaded (tree and msa).
I tried with %26 and & but for both the import panel opens itself and runs indefinitely.
Hello eveyone,
I'am aligning my protein sequences using prank. But when I was reading the document of the software prank, I was confused about the option of -F and +F. If I want to obtain a more accurate alignment result, which parameter should I choose, -F or +F ? And should I add the opetion '-protein' ?
Thanks in advance
According to the initial comment in wasabi_server.py
Wasabi should be compatible with Python 3+. However, for me it crashes when using Python 3. I tried 3.10 locally and 3.11 down to 3.2 via the official Docker images, older versions are not available - the oldest officially supported Python 3 version is 3.7.
The first error I get is
File "/Users/jgerken/Documents/Projects/GitHub/wasabi-orig/wasabi_server.py", line 1005
print "Got OSError"
^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
After adding the missing parentheses, I get a different error (error message from Python 3.11, messages differ a bit between Python version) when accessing the server via a browser
root@d4906725a16d:/wasabi# python wasabi_server.py
/wasabi/wasabi_server.py:172: SyntaxWarning: "is not" with a literal. Did you mean "!="?
if(useraccounts and testdir is datadir and uid is not 'skip'):
/wasabi/wasabi_server.py:175: SyntaxWarning: "is" with a literal. Did you mean "=="?
if(d is 'skip' or path.startswith(testdir)): return path
/wasabi/wasabi_server.py:9: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
import cgi
03.11.22 13:33:59 - Starting server...
03.11.22 13:33:59 - Wasabi HTTP server started at port 8000
03.11.22 13:33:59 - Press CRTL+C to stop the server.
Exception in thread Thread-5 (process_request_thread):
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.11/threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "/wasabi/wasabi_server.py", line 1370, in process_request_thread
self.finish_request(request, client_address)
File "/usr/local/lib/python3.11/socketserver.py", line 361, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/lib/python3.11/socketserver.py", line 755, in __init__
self.handle()
File "/usr/local/lib/python3.11/http/server.py", line 431, in handle
self.handle_one_request()
File "/usr/local/lib/python3.11/http/server.py", line 419, in handle_one_request
method()
File "/wasabi/wasabi_server.py", line 557, in do_GET
self.wfile.write(filecontent)
File "/usr/local/lib/python3.11/socketserver.py", line 834, in write
self._sock.sendall(b)
TypeError: a bytes-like object is required, not 'str'
Before I try to fix this (and potentially other problems), I would like to ask to which Python 3 version is Wasabi compatible.
I used the following settings:
[server_settings]
datadir = ./data
logfile = NO
debug = NO
serverport = 8000
workerthreads = 0
cputime = 0
datalimit = 0
autoupdate = NO
useraccounts = NO
userexpire = 30
local = NO
browser = NO
linuxdesktop = NO
Hi everyone,
I want to run prank to align my protein sequences. I notice that PRANK requires a phylogenetic tree as input or it can also calculate tree automatically using mafft. Now I have a species tree, can I use the species tree as an input? Does it need a gene tree?
Thanks in advance
Hi
Wasabi contains external javascript libraries. Two of them have known vulnerabilities according to webhint:
Could you update Wasabi with the last version of both libraries?
See https://webhint.io/scanner/f9f46df1-28a2-4db6-8498-1a21217b0880#category-security
(I scanned http://was.bi/)
Is there a way to run prank using the -showanc option and generate ancestral alignments that have consistent numbering? For example, if one alignment is missing a few species is there a way to ensure that the number given to an inferred ancestral sequences will match up with numbers given to inferred ancestral sequences when there are no missing species? Thank you!
Hi
Our institute web security officer found a potential security issue with the url parameter that can be used with any URL such as https://google.com
An attacker could use this vulnerability to deceive end users by redirecting them to replica sites (and hide his malicious URL by using google short URL, for example) or cause misleading pop-ups to appear in order to harvest personal details. This attack variant is commonly known as “phishing”.
In a phishing attack, users redirected to a replica website could be tricked into downloading Trojans, key loggers and other malware. These scenarios could result in reputational or regulatory damage through identity theft.
Furthermore, an attacker could also potentially inject malicious “fas” and “nhx” files to, maybe, compromise your application.
Is there a configuration option to limit the url usage to the same/only domain that runs wasabi?
Thanks
For what I look in the javascript code I wonder how is the https support in wasabi?
When ladderizing a subtree, the following error shows up in the console and the action is not added to the history:
TypeError: this.getRoot is not a function: jsphylosvg.rebuild.js:323:53
Looks like the "this" in the deferred function should be replaced with "node" to avoid it being assigned to the window object.
Even with the correction though, it seems the action cannot actually be undone: the tree remains ladderized (tested with own not ladderized tree file).
When a tree is loaded which has more nodes than sequences in the fasta file a warning window appears asking to "delete all sequences", "prune empty leaves" or just go on ("ok" button).
If you just click on the ok button, the hide gaps tool is now broken. It should ignore the missing data columns instead and work as if they where not there at all.
Attached some sample files for reproducing (.txt suffix added to upload them)
bug_hidegaps.fasta.txt
bug_hidegaps.tree.txt
On line 74 of index.html file, the attribute style is badly written.
stye instead of style
Hello,
I'm trying to view some alignments from Ensembl:
wasabi.js:1045 Uncaught ReferenceError: touchHandler is not defined
at Wasabi.w.init (wasabi.js:1045)
at new Wasabi (wasabi.js:856)
at onload (?wasabiURL=https%3A%2F%2Frest.ensembl.org%2Fgenetree%2Fid%2FENSGT00390000003602%3Fcontent-type%3Dtext%2Fjavascript%26aligned%3D1%26subtree_node_id%3D18887758%26:17)
w.init @ wasabi.js:1045
Wasabi @ wasabi.js:856
onload @ ?wasabiURL=https%3A%2F%2Frest.ensembl.org%2Fgenetree%2Fid%2FENSGT00390000003602%3Fcontent-type%3Dtext%2Fjavascript%26aligned%3D1%26subtree_node_id%3D18887758%26:17
(Chromium v65)
and
[Show/hide message details.] ReferenceError: touchHandler is not defined[Learn More] wasabi.js:1045:448
w.init
http://wasabiapp.org/ensembl/wasabi.js:1045:448
Wasabi
http://wasabiapp.org/ensembl/wasabi.js:856:354
initTree
http://www.ensembl.org/wasabi/wasabi.htm:74:17
load/<
http://www.ensembl.org/wasabi/wasabi.htm:60:11
u
http://wasabiapp.org/ensembl/wasabi.js:73:130
fireWith
http://wasabiapp.org/ensembl/wasabi.js:74:430
d
http://wasabiapp.org/ensembl/wasabi.js:146:411
b/<
http://wasabiapp.org/ensembl/wasabi.js:157:1
(Firefox v61)
My laptop does have a touch-screen. Is it related ?
On my phone (Firefox on Android) it also hangs, although I don't even see the blue dots
Hi
Is there a way to change the default colour scheme without changing scheme order in the javascript/script.js file?
In the default_settings.cfg file for example.
When clicking on "data -> export" then on "make file", the export data window shows a download button as expected. If we now close the export data window and click on a tree node, then on export subtree, the export window shows a download button which downloads the previously created (fasta) file instead of the tree file.
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.