Giter Club home page Giter Club logo

tripal_jbrowse's Introduction

PHPUnit GitHub release (latest by date) Documentation Status

DOI

Tripal JBrowse Integration

This package of modules integrates GMOD JBrowse into your Tripal site providing

  • Tripal page integration via Tripal JBrowse Page and
  • a user interface for JBrowse instance creation and management via Tripal JBrowse Management.

This powerful combination allows you to provide seamless genome browsing to your users in an administrator-friendly manner.

Quick Start

  1. Download and install JBrowse in a web accessible location (e.g. DRUPAL_ROOT/tools/jbrowse).
  2. Download and unpack this package in your Drupal modules directory (i.e sites/all/modules).
  3. Enable "Tripal JBrowse Management" submodule through http://[your site]/admin/modules.
  4. Create a JBrowse instance for your species of interest using the Admin > Tripal > Tripal JBrowse Management user interface.
  5. Enable "Tripal-JBrowse Page Integration" submodule through http://[your site]/admin/modules.
  6. Embedded versions will be created for all your instances created in step 4.

Documentation

Please visit our online documentation to learn more about installation, usage and features.

License & Acknowledgements

This module is open-source and licensed under GPLv3. Read full license.

Authors:

Copyright 2018 University of Saskatchewan and University of Tennessee Knoxville.

Citation:

Lacey-Anne Sanderson, Abdullah Almsaeed, Joe West, & Yichao Shen. (2019). tripal/tripal_jbrowse: Tripal JBrowse 3.0 (Version 7.x-3.0). Zenodo. http://doi.org/10.5281/zenodo.3564724.

tripal_jbrowse's People

Contributors

almasaeed2010 avatar carolyncaron avatar dependabot[bot] avatar dsenalik avatar jiu9shen avatar jwest60 avatar laceysanderson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tripal_jbrowse's Issues

List in tripal_jbrowse_page not link to proper instance

The list in tripal_jbrowse_page can show info of each jbrowse instance properly but won't link to righ instances. A bug cause in issue #35 .

Also, need to fix:

  1. warning message: Notice: Undefined index: type in tripal_jbrowse_mgmt_instance_page() (line 99 of /your_site/tripal_jbrowse/tripal_jbrowse_mgmt/includes/tripal_jbrowse_mgmt_instance.page.inc).

  2. after Edit Json, able to redirect back to Home » Administration » Tripal » Extensions » Tripal JBrowse » Instance not Home » Administration » Tripal » Extensions » Tripal JBrowse Management

Slight iteration on the README docs needed?

I'm told through the grapevine that the Drupal Link module is already integrated with Tripal v3.x.

Perhaps this fact can be noted in the README for tripal_jbrowse, so that the uninitiated users of this module don't panic about installing Link?

Truely Embed JBrowse

With JBrowse release 1.14.1, it should now be possible to embed JBrowse in a Drupal page without an iFrame! This was my original design goal back when this module was created and thanks to git, the code is still there! 36e5015

Here is the original template: 36e5015#diff-536353ccb1e44f0c85ac43303aa53fdc
and the original module file: 36e5015#diff-75d77511f4513b21d1a231432afdd006

Ideally we would use the libraries api this time around and have a single source of the jbrowse code to make updates easier.

Analysis needs to be a link!

The analysis includes important information like attribution which currently cannot be easily accessed despite being linked!

No warning message if file upload fails

Currently if file upload fails for whatever reason when trying to create an instance, the form simply refreshes with no messages to the user and no instance created...

Problem making instance with Tripal JBrowse Management sub-module

While attempting to make a new JBrowse instance through the Tripal JBrowse Management sub-module, I get the following error:

2019-05-07 16:29:07: Calling: tripal_jbrowse_mgmt_create_instance_files(2)
mkdir(): Permission denied tripal_jbrowse_mgmt_commands.inc:19       [warning]
Job execution failed: Unable to make data directory! Please make sure[error]
the directory 
      at  exists and is writable by the current user.

The error suggests that line 14 of the tripal_jbrowse/tripal_jbrowse_mgmt/includes/tripal_jbrowse_mgmt_commands.inc
file isn't finding the correct directory. When I try to launch a new JBrowse instance, I am redirected to my site home page (invalid path).

I have changed the permissions of the tripal_jbrowse directory

cd /var/www/html/sites/all/modules/tripal_jbrowse
sudo find . -type d -exec chmod 755 {} \; && sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chown ubuntu:ubuntu {} \; && sudo find . -type f -exec chown ubuntu:ubuntu {} \;

Any other suggestions?

Embedded pages broken when you clone your Tripal site

When you set-up Tripal JBrowse Management there are settings that require the URL and full path to your Tripal site. When you clone that Tripal site and/or change the URL/directory your JBrowse instances will be unavailable and show a screen like this:
Screen Shot 2021-05-26 at 3 51 37 PM

This is caused by the settings in Tripal JBrowse being very specific to a particular JBrowse installation and is not actually a bug.

Solution:

Go to Admin toolbar > Tripal > Extensions > Tripal JBrowse Management > Settings (admin/tripal/extension/tripal_jbrowse/management/configure) and change all the directories and paths to match your new site location.

Create Symbolic link as copy of upload file

A copy of upload file will be saved in your_site/tools/jbrowse/data/your_instance/data when a instance or a track is added using tripal_jbrowse.
The issue related is that all the copies can use too much storage space on server, specially for large files. One solution for this issue is creating symbolic links rather than actual copies.

To deal with this issue, I would like to make some changes in this module. My plan is creating a Fork of tripal_jbrowse in my account and send back for review when ready.

Unable to edit JBrowse instance when there is more than one JBrowse for an organism of the same species

I have 2 JBrowses for the same organism; one for an older version of the genome and a recently added one with an updated genome assembly. I'd like to change the description for the newest one (by going to Admin menu -> Tripal -> Extensions -> Tripal JBrowse Management -> my instance I want to change -> Edit Instance) but whenever I click on Save Changes, the Organism field is highlighted red and I get the following error at the top of the page:

A JBrowse instance for the selected organism already exists. You can edit the instance from the instances page.

This occurs on the latest version of this module from Github (commit 4a8bbd8)

Compatibility with JBrowse2

Does the Tripal-JBrowse module work with JBrowse2?

I have noticed, for instance, that the JBrowse2 installation does not create a bin folder which is required by Tripal JBrowse Management.

JBrowse page needs to show more than just Organism

Since the module can handle multiple JBrowses for one organism now, only Organism name as title for JBrowse page is not enough.
For example, two JBrowses (v1, and v2) exist for Lens culinaris but their page will be same as:

Screenshot from 2020-02-25 13-12-42

Need to include more information (?? analysis name / description) to separate the two.

Maxlength of textfield needs change

Screenshot from 2019-12-12 11-31-08

Since this textfiled requires user to fill in a path to file on server, which can be very long, the default maxlength of 128 is not engouth in some cases.

Working towards a more cohesive package

The plan is for "Tripal JBrowse Page Integration" to use instances created by "Tripal JBrowse Management" instead of nodes. A migration path will be provided to current users.

This will be done by:

  1. Extending "Tripal JBrowse Management" to keep track of start location and initial tracks to display.
  2. Extend "Tripal JBrowse Management" to allow registering of existing instances and importing of existing track information.
  3. Create "Tripal JBrowse Page Integration" version 2.x
    • Provides a public listing of existing "Tripal JBrowse Management" instances.
    • Provides an embedded JBrowse page for each "Tripal JBrowse Management" instances.
    • Provides optional menu links.
    • Administration for choosing which instances should have pages/menu links. Supports public instance linking to full JBrowse rather then embedded one.
  4. Upgrade path creates "Tripal JBrowse Management" instances for existing nodes.

Error found in Instance Edit page

Screenshot from 2020-02-19 10-42-23
Found error while making changes in INSTANCE PAGE SETTINGS(Start Location, Tracks to Display) in instance edit page.

Also, this error doesn't alway occur while editing instance settings.

Clear cache after creating JBrowse instance with management module

From the main menu (not-a-real-site.com/jbrowse) I couldn't get any of my urls to work (provides correct address; no redirect/stays on main menu). Took me a long while to figure out that it's necessary to clear cache after each instance is created to get the urls working. Might be worthwhile to include this in documentation.

Related: I vaguely remember main menu links failing occasionally. Maybe issue could be resolved with a daily clear cache cron job? Any idea why the urls are failing?

Need functionality of editing json in Track Manage

Screenshot from 2019-12-04 13-43-01
As shown, track manage is available for making changes in certain ways.
However, we need the flexibility to edit whole track info in json file to have all the options for configuring a track.

Like issue #36, I will develp in fork and commit when its ready.

Support data directive in URL

Currently the tripal_jbrowse submodule requires all URL path parameters be entered through the interface. However, there is no field available for indicating the data directory so the module currently only supports JBrowse installations with a single data directory configured to be the default.

Infraspecific nomenclature

  1. Sites using the chado 1.3 infraspecific nomenclature for organisms (e.g. subspecies) will have difficulty selecting the correct organism when adding a JBrowse instance as subspecies are currently not displayed.
  2. Organism list is in database order, it should be sorted

I will propose an appropriate fix for this.

Difficulties with module usage

hi!
I have just download the tripal_jbrowse branch 7.x-3.x using git clone,
but I cannot see the option JBrowse Instance in Add content menu.
On the other hand, I see in my modules list, that I have in category Other, something called Hardwoods jbrowse: Create JBrowse instance.
Shall I enable that and then go on following documentation? or in the other hand this is due to downloading a wrong version of this module?

Thanks a lot in advance,
Cirenia.

Tripal Field: embedded JBrowse on Feature pages showing region

It would be nice to have an embedded version of a JBrowse on a feature-based page. This should be able to be specific to the organism at the least (e.g. Show the Lentil JBrowse if on a Lentil Marker page and show a Chickpea JBrowse if on a Chickpea page).

compatibility with Drupal 10 and jbrowse2

Hi,
I there any work/time frame if this project will be updated for Drupal 10 and jbrwose2. I understand jbrowse2 compatibility has been in the works since 2021, wondering if that is close to completion. I tried to install this package with Drupal 10 but failed, uploading the tar.gz using "Add Module" didn't work and saving the folder under sites/all/modules/custom didn't give me any options under admin page.

Thanks
Jaysheel

Make Tripal v3 compatible

To be made Tripal v3 compatible this module simply needs the dependency in the .info file changed from tripal_core to tripal.

This is due to the main change between Tripal v2 and Tripal v3 being Nodes => Entities and this module does not interact with Tripal Nodes. The actual pages for JBrowse instances should remain as nodes.

Ensure page Query parameters are reflected in embedded JBrowse instance.

I would like to suggest an improvement for the template node--jbrowse-instance.tpl.php to take into account the query parameter (location or tracks).
Thanks in advance
Gaetan

<?php
  // Determine the URL of the JBrowse based on the node properties
  $url = $node->field_jburl['und'][0]['url'];
  $parts = array();
  //$parts['loc'] = (!empty($node->field_jbloc['und'][0])) ? 'loc='.$node->field_jbloc['und'][0]['safe_value'] : '';
  //$parts['tracks'] = (!empty($node->field_jbtracks['und'][0])) ? 'tracks='.$node->field_jbtracks['und'][0]['safe_value'] : '';
  $parts['data'] = (!empty($node->field_datadir['und'][0])) ? 'data='.$node->field_datadir['und'][0]['safe_value'] : '';
  
  // Get query parameters
  $params = drupal_get_query_parameters();
  $loc = ''; 
  $tracks = array();
  $query_tracks = array();
  $default_tracks = array();
  
  // Case for loc parameters
  if (isset($params['loc'])) {
    $parts['loc'] = 'loc='.$params['loc'];
    unset($params['loc']);
  }
  elseif (!empty($node->field_jbloc['und'][0])) {
    $parts['loc'] = 'loc='.$node->field_jbloc['und'][0]['safe_value'];
  }
    
  if (!empty($node->field_jbtracks['und'][0])){ 
    $default_tracks = explode("," , $node->field_jbtracks['und'][0]['safe_value']) ; 
  }
  // Case for tracks parameters
  if (isset($params['tracks'])) {
    $query_tracks = explode("," , $params['tracks']) ; 
    unset($params['tracks']);
  }
  // Merge array for tracks param
  $tracks = array_unique (array_merge ($default_tracks, $query_tracks));
  
  $parts['tracks'] = 'tracks='.implode(',',$tracks); 
  
  // Case for all other parameters
  foreach ($params as $key => $value) {
    $parts[$key] = $key ."=". rawurlencode($value);
  }
  // Reconstruct URL
  if ($parts) {
    $url = "$url/?" . implode('&', $parts);
  } 
?>

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.