Coder Social home page Coder Social logo

pathvisio / pathvisio Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 21.0 185.18 MB

PathVisio - pathway editor, visualization and analysis software

Home Page: http://www.pathvisio.org

License: Apache License 2.0

Shell 0.53% HTML 1.17% CSS 0.02% JavaScript 0.71% Java 97.47% Batchfile 0.01% Inno Setup 0.10%

pathvisio's Introduction

Build Status


PROJECT STRUCTURE


File/Folder Description
apidoc/ (autogenerated) contains autogenerated documentation
build/ (autogenerated) contains generated class files
release/ (autogenerated) output: jnlp, jar and zip package.
lib/ contains the external libraries that PathVisio needs.
example-data/ mapp and gpml files for quick testing
modules/ the java source code for each of the different modules
pathvisio.sh shortcut for running PathVisio from the command line (Linux/MacOSX)
pathvisio.bat shortcut for running PathVisio from the command line (Windows)
readme.md this file
build.xml ant build file (see below)
pathvisio.iss inno-setup script, to generate installer

HOW TO IMPORT IN ECLIPSE


For detailed instructions, please see: https://github.com/PathVisio/pathvisio/wiki/PathVisio-setup-in-Eclipse


HOW TO BUILD WITH ANT


Using the ant build file, you can build the project from the command line. You can also use ant to generate the apidocs and to create an executable jar.

It is also possible to set up eclipse to build ant targets.

First make sure ant is set up properly. It comes with eclipse, but you'll have to check if the path is set correctly if you want to run it from the command line.

The ant build file provides the following targets, which you can invoke it from the directory which contains build.xml with

ant <target>

where is one of:

compile:   just compile all classes
docs:      generate all apidocs
exe:       generate executable jar file
clean:     remove all generated files
dist:      generate zip package and windows installer. 
           The zip package only includes files needed to *run* not compile.
all:       clean, then compile, jar, dist and docs.

HOW TO RUN FROM THE TERMINAL


If you have managed to build the classes with ant or with eclipse, you can use pathvisio.bat to start java from the command line.

pathvisio's People

Contributors

alexanderpico avatar amarillion avatar andrawaag avatar denisesl22 avatar egonw avatar jonathanmelius avatar khanspers avatar larsgw avatar markwoon avatar mkutmon avatar nunogit avatar pennatula avatar thomaskelder avatar

Stargazers

 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

pathvisio's Issues

Hrefs in labels pathvisio

I heard that it was possible to put a direct link in a label in PathVisio. How do we do that? According to @DeniseSl22 , this was mentioned during the last WP TC. This would be very useful for linking to diseases (Denise) and Key Events (for me).

Copy/pasting to new pathway

Ticket submitted by Thomas:

When copying something into a new pathway fails with a NullPointerException.
Reproduce:

  • Open/create a pathway
  • Select all (CTRL-A)
  • Copy (CTRL-C)
  • Create a new pathway
  • Paste (CTRL-V)

Expected behavior: the contents of the original pathway should appear in the new patwhay.

Suggestions for Legend improvements

Here are some comments from an email by Kristina

  1. The layout of the legend:
    • For the representative node rectangle in the top left, I would suggest moving it a little so that it's not as close to the corner, it looks a little crowded.
    • It would also be nice if the rectangle was labeled somehow, in the GenMAPP legend it is labled "Gene" which is probably not ideal, but maybe "Data node"? I'm not sure, but right now the rectangle kind of disappears next to the color sets, since it is unlabeled and uncolored.
    • It would look really nice to have the color set boxes (with color) be justified at the position as the empty representative rectangle. Right now the color set name is, but the actual rectangles are offset. That looks makes the legend look kind of busy.
    • Include more space between the representative rectangle and the color sets.
  2. Have the legend show only those color sets that are being displayed, to avoid confusion. Right now it's showing all of them.
  3. Possible bug: Sometimes when clicking on the legend tab in the side panel, the entire PV window becomes greyed out, even the toolbar disappears. If I click randomly in the toolbar the icon that should be in the position I'm clicking appears again. I think this is related to clicking on the legend when no data (or at least no visualization ) is selected. I will investigate and file a ticket.

Nicer visualisation of dataset with multiple visualisation needs.

For the current dataset we are working on, we want to visualise multiple items in Pathvisio:

  1. %occurrence in sick group
  2. %occurrence in healthy group
  3. Up/down regulated metabolite
  4. significance

See image below:

image

However, the visualisation of point 1 and 2 are hard to separate from each other. Is it perhaps possible to do something like this (sorry for the self made paint image):

image

This means extending the node (if there is data for it), to visualise the dataset below the node name, and perhaps with lines between the different visualisation options.

Algorithm for Curved Lines

Some of our Interactions and GraphicalLines use the line type Curved, and these generally look good, but occasionally they're a bit awkward.

For one example, this curve extracted from WP2447 overlaps the corner of the NO DataNode:
wp2447a
The movable midpoint only allows movement in the y direction, and moving it down also doesn't look quite right:
wp2447b

For another example, you can see the curve at the bottom, which I've extracted one from WP3676. You'll notice several points where the sharpness of the curve abruptly changes. There are multiple algorithms for this use case, with different trade-offs for factors like aesthetics and difficulty to compute.

A commonly-used algorithm that could address both of these issues is the centripetal Catmull–Rom spline. Like our current implementation, it allows for curved lines through specified points, but it would allow for moving the curve off the DataNode in WP2447 and also might look nicer. It is already implemented in Java.

Is there interest in using a new algorithm, possibly the centripetal Catmull–Rom spline, for our curved Interactions and GraphicalLines?
lumpy-curve

Export of unified xref lists

It would be useful to be able to export a list of unified xrefs for an open pathway. The user should be able to choose which datasource should be used.

new GroupStyles

With GPML2017 we will define a set of new groupStyles and PV needs to be updated.

  • default groupStyle: Group (no visual representation - as "Group" is implemented at the moment)
  • Complex (no change to GPML2013a)
  • Pathway (no change to GPML2013a)
  • Analogs (protein families - current visualization style "None")
  • Paralogs (pair of genes that derives from the same ancestral gene - new visualization style needed)

Current groupStyle "None" will be removed - all groups annotated with "None" will need to be converted to "Group" (manual checking needed to know which groupStyle should be used)

Data import - not enough space for pgex file - show error

If the destination of the pgex file does not have enough disk space, the import seems to work fine and does not report any errors. However the import progress is a lot slower.
Happens on e.g. student computers with limited disk space.

Update Templates in PV

Reported by AlexanderPico (http://developers.pathvisio.org/ticket/1824)

PV interaction templates should be updated:

  • The reaction template should have a mim-conversion arrow between metabolites.
  • And the other template (for undirected interactions?) should probably be removed.
  • Maybe add templates for:
    • molecule binding a receptor complex
    • activating transcription
    • phosphorylation

Library position on screen

  1. The library opens up very low on the screen, in order to accept a found compound name+info, one has to scroll down all the time.

Include file being read in NPE message

I'm getting on Jenkins a NPE when reading BioPAX from one of the GPML files:

Exception in thread "main" org.pathvisio.core.model.ConverterException: class java.lang.NullPointerException: null
  at org.pathvisio.core.model.GpmlFormat2013a.mapBiopax(GpmlFormat2013a.java:925)
  at org.pathvisio.core.model.GpmlFormat2013a.mapElement(GpmlFormat2013a.java:442)
  at org.pathvisio.core.model.GpmlFormatAbstract.readFromRoot(GpmlFormatAbstract.java:589)
  at org.pathvisio.core.model.GpmlFormat.readFromXmlImpl(GpmlFormat.java:182)
  at org.pathvisio.core.model.GpmlFormat.readFromXml(GpmlFormat.java:121)
  at org.pathvisio.core.model.Pathway.readFromXml(Pathway.java:723)
  at org.wikipathways.wp2rdf.WPREST2RDF.main(WPREST2RDF.java:149)
Caused by: java.lang.NullPointerException
  ... 7 more

I'm trying to figure out: 1. which files has the problematic GPML (I think it may be WP3322), 2. determine where it should be fixed (seems in GPML reader)...

@mkutmon, do you think this might be a good moment to migrate the GPML2RDF code to use the new library? Or should this be fixed in the old code?

website has confusing license info on the website frontpage

Which now lists CC-BY but that is just the license of the website, but some interpret it as the license for the software too (actually feedback).

I updated the BridgeDb.org website, clarifying the license and added Bioschema's annotation, improving the FAIRness of PathVisio. For BridgeDb I listed the project as Organization, and created two Product's. I can show you how, when you have a few minutes time.

Uploading Illumina data set

Dears,

Probably I am writing about something that has been discussed in the past. I have checked all of the relevant topics but could not find any useful information that might help me solving the issue I am facing at the moment.

I am trying to analyse data obtain from Illumina microarray beatchip. The accessions are annotated with ILMN_ prefix for each gene with additional numeric code (proprietary annotation) which unfortunately are not recognized by PathVisio when I am trying to import the file. I am getting a message that all of lines are unrecognized (ecceptions - while reading the data).
The gene list is Hs_Derby_Ensemble downloaded from the PathVisio homepage. I am using System Code Il - relevent to the Illumina chip. The rest of the columns are A, B and Fold change.
Does anyone have any idea, why I cannot import my data successfully?

Thank you for your help in advance.

Unsorted library (also ontology issue)

  1. The library is not sorted; found some problems in the WP academy regarding glucose-6-phosphate and glucose 6-phosphate (where one bar is missing). Think that the library where one searches for a compound, should be ordered in some way (preferably alphabetical). In this way, one can see if a compound exists more often, and which names are acceptable.​ (Perhaps the double names should be combined/deleted to overcome further annotation problems?)

Open specific pathway from WikiPathways when starting PV

To provide PathVisio directly from a pathway page on WikiPathways, the application should allow the WikiPathways identifier as a command line argument. If the WP plugin is loaded, the argument will be read by the plugin and the pathway will be automatically opened.

3 things are necessary:

  1. Adapt PV to allow a command line argument (-wp)
  2. Adapt WP plugin so it reads the provided argument and opens the pathway if it is not null
  3. JNLP file needs to be generated on the specific pathway page with the correct attribute.

Bug: ouroboros pathway leads to infinite recursion

Reported by Martijn:

How to reproduce:

  • Draw two DataNodes and two Elbow Connectors, with an anchor on each connector.
  • Connect the start of each connector to a DataNode.
  • Connect the end of each connector to the Anchor on the other connector.

In ASCII art:

AAAAA-------*-----|
           / \    |
            |    \ /
            |-----*---------BBBBBB

Infinite recursion will lead to exceptions in the log.

Relationship between LineThickness, LineStyle and Width/Height

For GPML, how should LineThickness and LineStyle be related to Width and Height?

For simplicity and ease of use, I propose that we define GPML Width and Height to mean actual width and height (from outer edge of border on one side to outer edge of border on the opposite side). In CSS terms, this is equivalent to box-sizing: border-box;, and in SVG terms, this matches the proposed attribute stroke-position="inside".

In PathVisio-Java right now, actual width and height vary depending on zoom level, LineThickness and LineStyle (Double or not). For the following examples, the orange line represents the Width and Height specified in the GPML for the rectangles, and the pink lines are attached to the anchors of the rectangles. The equations for height are analogous to the ones for width. Note that for the Solid rectangles below, LineThickness="20", but for the Double rectangles below, LineThickness="3".

Zoomed Out

  • LineStyle="Solid" (or Dashed) and
    actual width ≈ GPML Width + LineThickness
  • LineStyle="Double"
    actual width ≈ GPML Width + 3 * LineThickness
    border-zoomed-out

Zoomed In

actual width ≈ GPML Width

  • LineStyle="Solid" (same for Dashed)
    border-zoomed-in-solid-all

  • LineStyle="Double" (zoom level may not exactly match the one above)
    border-zoomed-in-double-all

Here's the GPML I used:

<?xml version="1.0" encoding="UTF-8"?>
<Pathway xmlns="http://pathvisio.org/GPML/2013a" Name="New Pathway" Version="20171009">
  <Graphics BoardWidth="683.2341642401634" BoardHeight="510.0" />
  <Interaction GraphId="d668d">
    <Graphics ZOrder="32815" LineThickness="1.0" Color="ff0099">
      <Point X="120.0" Y="30.0" GraphRef="e4375" RelX="0.0" RelY="-1.0" />
      <Point X="120.0" Y="130.0" GraphRef="e4375" RelX="0.0" RelY="1.0" />
    </Graphics>
    <Xref Database="" ID="" />
  </Interaction>
  <Interaction GraphId="bef15">
    <Graphics ZOrder="32816" LineThickness="1.0" Color="ff0099">
      <Point X="20.0" Y="80.0" GraphRef="e4375" RelX="-1.0" RelY="0.0" />
      <Point X="220.0" Y="80.0" GraphRef="e4375" RelX="1.0" RelY="0.0" />
    </Graphics>
    <Xref Database="" ID="" />
  </Interaction>
  <Interaction GraphId="dcd06">
    <Graphics ZOrder="32866" LineThickness="1.0" Color="ff0099">
      <Point X="120.0" Y="150.0" GraphRef="aec20" RelX="0.0" RelY="-1.0" />
      <Point X="120.0" Y="250.0" GraphRef="aec20" RelX="0.0" RelY="1.0" />
    </Graphics>
    <Xref Database="" ID="" />
  </Interaction>
  <Interaction GraphId="a8778">
    <Graphics ZOrder="32867" LineThickness="1.0" Color="ff0099">
      <Point X="20.0" Y="200.0" GraphRef="aec20" RelX="-1.0" RelY="0.0" />
      <Point X="220.0" Y="200.0" GraphRef="aec20" RelX="1.0" RelY="0.0" />
    </Graphics>
    <Xref Database="" ID="" />
  </Interaction>
  <Shape GraphId="aec20">
    <Attribute Key="org.pathvisio.CellularComponentProperty" Value="Cell" />
    <Attribute Key="org.pathvisio.DoubleLineProperty" Value="Double" />
    <Graphics CenterX="120.0" CenterY="200.0" Width="200.0" Height="100.0" ZOrder="16384" FontSize="10" Valign="Middle" ShapeType="RoundedRectangle" LineThickness="3.0" Color="c0c0c0" Rotation="0.0" />
  </Shape>
  <Shape GraphId="e4375">
    <Graphics CenterX="120.0" CenterY="80.0" Width="200.0" Height="100.0" ZOrder="32814" FontSize="10" Valign="Middle" ShapeType="Rectangle" LineThickness="20.0" Rotation="0.0" />
  </Shape>
  <Shape GraphId="e729a">
    <Graphics CenterX="120.0" CenterY="80.0" Width="200.0" Height="100.0" ZOrder="32864" FontSize="10" Valign="Middle" ShapeType="Rectangle" LineStyle="Broken" LineThickness="0.5" Color="ff9900" Rotation="0.0" />
  </Shape>
  <Shape GraphId="fd544">
    <Graphics CenterX="120.0" CenterY="200.0" Width="200.0" Height="100.0" ZOrder="32872" FontSize="10" Valign="Middle" ShapeType="RoundedRectangle" LineStyle="Broken" LineThickness="0.5" Color="ff6600" Rotation="0.0" />
  </Shape>
  <InfoBox CenterX="0.0" CenterY="0.0" />
  <Biopax />
</Pathway>

Copy/pasting of connected elements not working on Windows/Mac

Copying multiple datanodes or lines is fine, but if the elements are connected then copy/pasting doesn't work (only occurs on Windows).

Reproduce:

  • Open new pathway
  • Draw catalytic reaction template
  • Select whole reaction and try to copy/paste (works on Linux but not on Windows/Mac)
Error: Unable to paste pathway data
java.lang.NullPointerException?: null
java.lang.NullPointerException?
at org.pathvisio.core.model.PathwayElement?$MPoint.getAbsolute(PathwayElement?.java:351) 
at org.pathvisio.core.model.PathwayElement?$MPoint.unlink(PathwayElement?.java:461) 
at org.pathvisio.core.model.Pathway.forceRemove(Pathway.java:402)
at org.pathvisio.core.model.Pathway.remove(Pathway.java:388) 
at org.pathvisio.core.model.Pathway.forceAddObject(Pathway.java:266) 
at org.pathvisio.core.model.Pathway.add(Pathway.java:262) 
at org.pathvisio.core.gui.PathwayTransferable?.getTransferData

Add anchor to all interactions by default

Reported by AlexanderPico (http://developers.pathvisio.org/ticket/1823)

A common beginner mistake is to not add anchors to interactions. Connecting the ends of interactions to nodes is very intuitive with the existing anchors. But when you drag an end over an interaction, you see nothing. If we had one anchor on each interaction by default, then this would solve most situations and teach users that interactions can have anchors too.

Library and secondary IDs

Hi all, (again about the library, sorry about that ;)....)

In the Pathvisio library, secondary identifiers of ChEBI are included as well (Marvin found this for bicarbonate). I think for a new Pathvisio release, we should remove these secondary IDs as a option; and replace all secondary ChEBIs with primary in WPs. Since the secondary IDs are not mapped via bridgeDB.

@marvinm2
@egonw
@mkutmon

dialog hangs when recent pathway cannot be found

Reported by Lars:

File -> Open Recent

when a recent pathway cannot be found (moved or deleted), the 'Importing pathway' dialog hangs and cannot be closed anymore (and as such PathVisio can't be accessed).

Adding of nodes more user friendly

  1. Adding data nodes is not extremely user friendly. I think that people are use to click on a node and then drag them to the place where one needs them. Clicking on the datanode and then clicking on the canvas seems counterintuitive to me.

total element count does not seem to exclude duplicates

Reported by Lars:
The attached screenshot shows that PathVisio does not seem to take into account duplicate items when it computes the total number of elements on the pathway.

The number of items on this (old) version of the Cholesterol Biosynthesis pathway is 33, but one is a duplicate (FDPS, bottom lower corner - both boxes are properly annotated with NCBI gene ID 2224). So the total should be 32, not 33. At least, when the intention is to count the number of unique elements, which I expected.

When considering the measured (n) column, PathVisio does correctly count 17 (the 18 boxes with data again include the pair of duplicates).

Visualization Legend in PV

Very often it is not possible to add a legend to the pathway or part of it gets lost during export. Investigate if there is a way to fix this and make it more stable.

Editing text label in properties tab - newlines are removed

Ticket submitted by Leonth:

When editing text labels of nodes that contain the newline character in the Properties tab in PathVisio, all newlines mysteriously disappear even when no changes to the text label were made.

It works when editing in the DataNodeDialog, though.

Data import - option to ignore quotes

Reported by Lars:
Pathvisio does not seem to be able to import quoted text files, for example:

"ID" "FC" "P"

"gene1" 2.23 0.05

"gene2" 1.23 0.01

(where the separator was a tab in my case).

Especially when values in a certain column contain special characters or spaces, many tools automatically add quotes to the fields. Of course, one can remove the quotes from the input file, but people using Excel or any spreadsheet software as a viewer will generally not be aware that they are there. So it may be helpful to allow import of such files. Now, import runs without errors, but the numeric data are not recognized as being numeric.

Improve visualization dialog

There are a few things that could be improved in the current visualization dialog:

  1. Separate setup for gradients and color rules - possibilities to add as many color-sets as a user wants to (simple just means one color-set while advanced allows the user to select more than one) - should be less confusing
  2. Allow the user to specify the colors of a gradient.

Anchor new attributes x and y to calculated refX and refY in connecting line

In GPML2017a we will add x and y for Anchor elements. This will allow us to define refX and refY for lines connecting to those anchors to define how the arrowhead needs to be aligned.
PathVisio needs to calculate the x and y for all anchors (currently only percentage position on the line known) and then calculate refX and refY for the connecting lines.

Reverse reaction

Could a double arrow be added to the MIM interactions?
This would portray a reverse reaction (not only visualise a reverse reaction), making the directionality both ways (including the enzyme connected in both ways).
Now, I have to add two arrows, and let them face in opposite directions, add two anchors, add two enzyme conversion interactions and then overlay everything.
See as an example PW on pyrimidine metabolism.

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.