Giter Site home page Giter Site logo

veidenberg / wasabi Goto Github PK

View Code? Open in Web Editor NEW
16.0 16.0 6.0 14.64 MB

Wasabi is a web-based tool for evolutionary sequence analysis. Homepage: http://wasabiapp.org

License: GNU Affero General Public License v3.0

HTML 1.10% JavaScript 81.92% CSS 7.59% Python 9.39%

wasabi's People

Contributors

veidenberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

wasabi's Issues

Tree drawing error: rendering overflow

With the attached dataset, the tree drawing produces a weird result (see orange circle in attached image). It seems hel4 sequence does not even belong to tree. I suspect somehow a portion of the tree gets drawn off the right border and is hence not shown.

tree_bug

re-hiding gaps defective with silva alignment

http://wasabiapp.org:8000/?url=http://wasabi-beta.arb-silva.de/test.fasta&url=http://wasabi-beta.arb-silva.de/test.tree

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.

Deleting dequences causes highlight out of sync

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

Online manual/tutorial

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.

PAGAN; failed conversion using boost::any_cast

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

Scale bar for branch lenghts

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.

No download button when exporting subtree

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.

File name problem on repeated exports

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.

prank -F and +F options

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

Python 3 compatibility?

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

prank phylogeny tree

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

Consistently named internal nodes

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!

Potential phishing with the url parameter

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

Error adding ladderize action to history - undo not working

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).

hidegaps not working when some sequences missing

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

Can't view an Ensembl alignment

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

Change default colour scheme

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.

Data -> export does not clear buttons on next export

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.