Giter Site home page Giter Site logo

beiko-lab / gengis Goto Github PK

View Code? Open in Web Editor NEW
27.0 27.0 13.0 1.35 GB

GenGIS (pronounced 'Genghis' like Genghis Khan) is a bioinformatics application that allows users to combine digital map data with information about biological sequences collected from the environment. GenGIS provides a 3D graphical interface in which the user can navigate and explore the data, as well as a Python interface that allows easy scripting of statistical analyses using the Rpy libraries.

License: GNU General Public License v3.0

Python 35.90% Shell 0.19% C 3.82% C++ 59.78% CSS 0.02% JavaScript 0.01% Fortran 0.08% MATLAB 0.01% Objective-C 0.18% Visual Basic 0.01% XSLT 0.01% ASP 0.01% ActionScript 0.01% Ada 0.01% Boo 0.01% OCaml 0.01% ColdFusion 0.01% C# 0.01% D 0.01% Eiffel 0.01%

gengis's People

Contributors

akeddy avatar donovan-h-parks avatar jjhoyt avatar justin-trainor avatar mlangill avatar rbeiko avatar tymmek avatar

Stargazers

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

Watchers

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

gengis's Issues

Location Merge

Location Merge can be enhanced with a description of what it does, options to remove combined layers from GenGIS as well as a link to the help page of the Wiki.

Properties

On colouring properties create a "Default" button so that "Evenly spaced colours" can be reverted from.

dynamic gridding

When using ShowSpread with Gridding some older grids will not get redrawn or refreshed, resulting in empty grid tiles with locations in them.

Behaviour of RCA plugin for sites with no sequence data

I tried running the RCA plugin on a set of locations, some of which had data and some of which did not. Richness and Shannon diversity make sense, but Simpson Index values are variable (?), Pielou is -0.000 and Berger-Parker is also variable.

Is there a way to clean this up? Can we set some default value for these sites that will cause them to produce no value and no bar on the map?

Losing the pointer in Windows

If a plugin is exited prior to its proper completion, it seems like the selection pointer in GenGIS is lost forever, replaced by the "busy" icon. It's still usable, but my busy icon is the default circle-y thing and it's difficult to select with any precision. Might there be an easy fix to this?

CCA

Plugin in is not properly shielded from being accessed if no sequence layer is present.

MGRAST sliders

sliders require text information so that users know what values they are setting, not just arbitrary positions.

2.41 Unstable with high detail, and vertical exageration, loading projects.

  1. On loading projects you get a DLL load followed by a bunch of wxWidgets problems
    241notusable1
    exception

  2. Vertical exaggeration still not working. Trying to set the vertical exaggeration to anything more than 0 with max detail causes the program to crash with code GL_NO_ERROR.
    If my DEM is in .tiff format (.asc seems worse) with <= 2048 terrain resolution, the program will still trow frequent exceptions and will only sometimes work with both high quality and non-zero vertical exaggeration (if I set the project's terrain resolution lower it will throw fewer exceptions, at higher resolutions it either crashes or will not increase the level of detail).

My GPU isn't breaking a sweat (<= 5% load, negligible memory usage) so I'm pretty sure it's not hardware related, maybe a limitation in openGL?

Tkinter

Python plugins using Tkinter do not currently work under the development version of Python.
Replacing the contents of the lib-tk folder seems to solve the problem. This issue will be resolved when I have done this under a stable branch and committed the change.

Compilation on arch linux

Can't compile the linux version.
It seems an ambiguity with the Font classes initialized in Font.hpp vs a given type in X11/X.h (typedef XID Font)

Any help would be appreciated, thanks.

../../../../src/core/../core/../utils/Font.hpp:153:55: error: reference to ‘Font’ is ambiguous
   inline void save_construct_data(Archive & ar, const Font * t, const unsigned int file_version)
                                                       ^
In file included from /usr/include/X11/Xlib.h:44:0,
                 from /usr/include/GL/glx.h:30,
                 from /usr/include/wx-3.0/wx/unix/glx11.h:13,
                 from /usr/include/wx-3.0/wx/gtk/glcanvas.h:14,
                 from /usr/include/wx-3.0/wx/glcanvas.h:192,
                 from ../../../../src/core/../core/Precompiled.hpp:149,
                 from ../../../../src/core/ChartView.cpp:22:
/usr/include/X11/X.h:100:13: note: candidates are: typedef XID Font
 typedef XID Font;
             ^
In file included from ../../../../src/core/../core/VisualLabel.hpp:31:0,
                 from ../../../../src/core/ChartView.cpp:35:
../../../../src/core/../core/../utils/Font.hpp:45:8: note:                 class GenGIS::Font
  class Font : private Uncopyable
        ^
../../../../src/core/../core/../utils/Font.hpp:153:55: error: ‘Font’ does not name a type
   inline void save_construct_data(Archive & ar, const Font * t, const unsigned int file_version)
                                                       ^
../../../../src/core/../core/../utils/Font.hpp:153:62: error: ISO C++ forbids declaration of ‘t’ with no type [-fpermissive]
   inline void save_construct_data(Archive & ar, const Font * t, const unsigned int file_version)
                                                              ^
../../../../src/core/../core/../utils/Font.hpp: In function ‘void boost::serialization::save_construct_data(Archive&, const int*, unsigned int)’:
../../../../src/core/../core/../utils/Font.hpp:156:13: error: request for member ‘m_fontFile’ in ‘t->’, which is of non-class type ‘const int’
    ar << t->m_fontFile;   // std::string
             ^
../../../../src/core/../core/../utils/Font.hpp:157:19: error: request for member ‘Size’ in ‘t->’, which is of non-class type ‘const int’
    uint size = t->Size(); // uint
                   ^
../../../../src/core/../core/../utils/Font.hpp: At global scope:
../../../../src/core/../core/../utils/Font.hpp:162:49: error: reference to ‘Font’ is ambiguous
   inline void load_construct_data(Archive & ar, Font * t, const unsigned int file_version)
                                                 ^
In file included from /usr/include/X11/Xlib.h:44:0,
                 from /usr/include/GL/glx.h:30,
                 from /usr/include/wx-3.0/wx/unix/glx11.h:13,
                 from /usr/include/wx-3.0/wx/gtk/glcanvas.h:14,
                 from /usr/include/wx-3.0/wx/glcanvas.h:192,
                 from ../../../../src/core/../core/Precompiled.hpp:149,
                 from ../../../../src/core/ChartView.cpp:22:
/usr/include/X11/X.h:100:13: note: candidates are: typedef XID Font
 typedef XID Font;
             ^
In file included from ../../../../src/core/../core/VisualLabel.hpp:31:0,
                 from ../../../../src/core/ChartView.cpp:35:
../../../../src/core/../core/../utils/Font.hpp:45:8: note:                 class GenGIS::Font
  class Font : private Uncopyable
        ^
../../../../src/core/../core/../utils/Font.hpp:162:49: error: ‘Font’ has not been declared
   inline void load_construct_data(Archive & ar, Font * t, const unsigned int file_version)
                                                 ^
../../../../src/core/../core/../utils/Font.hpp: In function ‘void boost::serialization::load_construct_data(Archive&, int*, unsigned int)’:
../../../../src/core/../core/../utils/Font.hpp:174:12: error: expected type-specifier before ‘Font’
    ::new(t)Font(fontFile, size);
            ^
../../../../src/core/../core/../utils/Font.hpp:174:12: error: expected ‘;’ before ‘Font’
Makefile:270: recipe for target 'BUILD/RELEASE/OBJECTS/ChartView.o' failed
make[1]: *** [BUILD/RELEASE/OBJECTS/ChartView.o] Error 1
make[1]: Leaving directory '/home/zorino/packages/bif/gengis/linux/i386/build/gcc'
Makefile:214: recipe for target 'release' failed
make: *** [release] Error 2

Mavericks

GenGIS will not currently compile on OS X 10.9.
This issue seems to be the head of it:
../../../i386/library3rd/wxPython/include/wx-2.8/wx/db.h:83:22: fatal error:
'sql.h' file not found
#include <sql.h>

GBIF

small maps ( approx 1 by 1 degree ) cause GBIF plugin to crash. Assume this is also a problem for MG-RAST

Pasting into the Python console

When I try to paste commands into the Python console using Ctrl-V, GenGIS attempts to open a vector file instead. Maybe resolve either by changing the hotkey for vector files, or only catching it when focus is outsied the Python console?

Cannot see # of crossings after restoring a session

A user emailed about a problem with viewing the number of subtree crossings in an optimized 2D phylogeny. This works fine when the datasets are initially loaded, but if you save and restore, then selecting a 2D tree node will not show the number of crossings.

I can confirm this behaviour on the GOS data set, as well as some of the Patagonian examples Daniel and I are working with.

Permutation tests still work, so I think all variables are being loaded correctly.

She also said that manipulating the tree caused this problem, but I cannot duplicate this and have asked for clarification.

Hexagons with bonus sides

If I select "hexagon" for a location marker, the result is an octagon. Either of the two possible resolutions is fine.

LinearRegression missing metadata choices for active locations

LinearRegression plugin can only include metadata from locations that have numeric data for ALL locations. However, if the locations missing the metadata are unchecked (made inactive) the metadata fields can still not be chosen.

Note, that the plugin does properly calculate the regression for only active location layers it is just the choice of metadata fields that is not working.

Metadata

Adding metadata to location layers in GenGIS currently only succeeds with all location layers selected. If any are not, the add fails.

Legend enhancements

We have had feedback from users that better legends would be desirable. Elements we might consider include:

  • A gradient representation of quantitative values, rather than squares showing each individual value.
  • A scale bar that can be shown on the map.
  • Other enhancements TBD

Reject non-numeric lat/long values

Non-numeric values for lat and long are somehow loaded for GenGIS, but they don't play nicely with some visualizations, such as 3D trees. GenGIS should reject a location file that has non-numeric lat/long values, and give an informative error.

Vector / location ordering

Loading vector data after locations appears to place the vectors on top of the locations. Can this be fixed?

Picture1

Plugin graphics not removable after saved session.

If a plugin (e.g. Linear Regression or RCA) creates visualizations such as bar plots on the GenGIS map, and the user saves a session before closing the plugin window, then loads from that session later there will be bar plots that can not be removed (opening and closing the plugin window does not help).

In fact even removing and re-adding the map will still show the graphics, which means the session is ruined and a new session must be used.

CABIN plugin

Deploy a plugin that can connect to the CABIN database and retrieve data according to a user query. This requires modifications both on the GenGIS client side (GUI, results parsing) and on the server side (an interface to accept queries from GenGIS, retrieve data from the database, and send them back to GenGIS).

Change diversity measure names in RCA plugin

The O/E diversity measures shown in the RCA plugin should be more obvious that they are ratios and not just regular diversity measures. This is especially important when these measures are exported to the main gengis metadata.

Gridding + Vector Map

Under certain conditions when a vector map is loaded in GenGIS using gridding will cause all borders (including those around location circles) will become invisible when seen through the grid layer. These borders become visible again when either the layer is removed, or the map is viewed through the gap between the tiles and the map surface.
Possibly due to a clash between OpenGL or memory.

metadata added with AddData not usable with LinearRegression plugin

I was working on issue #16, and had to be able to add location metadata for a subset of locations. Previously I was using:

GenGIS.layerTree.GetLocationSetLayer(0).GetController().AddMetadata(metric_name, data)

where data is a list with the same length as the number of all locations.

Therefore, I changed it to add each piece of metadata separately for each location:

for loc in locs:
          data = str(self.rca.results[metric,loc.GetName()])
          loc.GetController().AddData(metric,data)

However, LinearRegression plugin does not see the field (even after selecting only the locations with the data). Also Location Table Viewer plugin does not show the metadata at all.

Under the properties for the location it does show the metadata....so it is being added.

I am hoping @dparks1134 might have a suggestion :)

Alternative projections not working?

I have been trying to generate alternative projections for some of our example maps, but I have been getting errors in some cases, and just weird outcomes in others.

For example, setting projection to Albers Conic and then trying to load the influenza world map yields a failed assertion in shared_ptr.hpp, line 414. In other cases I just get a rectangular map with weird dimensions.

Has anyone else noticed this? Any ideas about what might be going wrong?

Gridding of locations

Add a user option to assign all locations to a grid of arbitrary granularity.

The user will need to specify the RESOLUTION (e.g., 0.5 degrees, 1 degree, 5 degrees) and a CORNER POINT (i.e., a location that sits at the corner of four grid cells).

Once grids are defined, a nice visual option would be to show a partially transparent heatmap of squares. Here is a small, fake example:

grid-example

exception ion Colour.cpp

When loading a saved project several errors pop up (they aren't fatal and can be ignored, but they are annoying). It seems to be an issue with RGBA in lines 31-34 of Colour.cpp

The error mesage is:
[Microsoft Visual C++ Runtime Library]
Assertion failed!
Program:...\GenGIS.exe
File:...\Colour.cpp
Expression m_alpha >= 0 && m_alpha <=1.0 (also does this with m_red, m_green, and m_blue)
[continues with generic error/debug message]

GBIF Liolaemus

Searching GBIF for "Liolaemus" at geo extents lat: -34 to -31 lon: -72 to -66 returns 2062 records. Only 1933 records should be returned. At this time an update has been released to fix some rounding induced problems with grid division. This fix reduced the number of records returned by 2.1.1 (which has 2078). I assume there are other cases where this bug comes into play

GBIF refinements

results list sorted in increasing order of latitude
(both output and in the GenGIS sidebar)

Also small changes to the rounding of query lat/long values.

Alternative projections do not work

Somewhere along the line many of the alternative projections (e.g., Mercator) stopped working. The choice of projection needs to be made before any maps are loaded, but even doing this correctly often leads to outright crashes or errors. This is probably repeatable with any current topo map.

Vector deletion in a raster-free session

When running a session with no raster, vector files can be added and deleted at will. However, deleting the only remaining vector file will also trigger the deletion of location and other data. This is fine, but the user should be warned that this is about to happen.

MGRAST headers

MGRAST headers need to be cumulative, so that multiple studies may belong to one layer.

Mac Interface

Properties are displayed behind the main frame when selected. Need to pop to front.

MGRast

some studies seem to fail to download. Something to do with parsing the JSON file, they seem to be missing expected keys.

Full screen view

It would be good to have an option in GenGIS to immediately go almost fullscreen with, say, Ctrl-Alt-F or a simpler key combination. This would entail the following:

  • Dismissing the Python console (currently Ctrl-Alt-C)
  • Dismissing the Layer panel (currently Ctrl-Alt-L)
  • Not showing text under toolbar icons (currently no hotkey)
  • Maybe dismissing the control elements at the right?

We could go even further to true fullscreen. Thoughts are welcome.

MapMaker / GenGIS 2.1 problem

I tried to export a subregion of the Hypsometric Tints map from MapMaker v1.0 and load it into GenGIS v2.1.

The resulting GeoTIFF is suitably large (~150MB) but when I load it into GenGIS, all I get is a gray rectangle with the appropriate extents but no color.

Any ideas what the problem might be?

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.