Skip to content

Latest commit

 

History

History
120 lines (93 loc) · 5.08 KB

README.md

File metadata and controls

120 lines (93 loc) · 5.08 KB

libGPML

Java CI with Mavencodecov DOI Maven Central

libGPML is an open-source Java library for working with GPML (Graphical Pathway Markup Language).

How to cite

If you use this software, please cite the article in JOSS:

In progress...

Table of contents

Introduction

libGPML is a Java programming library that helps you read, write, validate, manipulate, and convert files and data streams in the GPML (Graphical Pathway Markup Language) format.

Why not simply use a generic XML parsing library? A specialized library such as libGPML offers many advantages over using a generic XML library directly. Here are some:

  • Java object model. libGPML's object model and API are designed around GPML and the operations that are commonly needed when working with GPML.

  • Validation. libGPML implements all the validation rules defined in the GPML specifications.

  • Conversion: libGPML can convert between GPML2013a and GPML2021. Conversions between GPML2013a and older

libGPML works on Linux, Windows, and MacOS X, and other operating systems.

Dependencies

You need the following tools:

  • Computer with Windows, Mac, or Linux
  • JDK 11
  • Maven 3 (Tested with 3.8.1)

Usage

Documentation is available online at libGPML Java Documentation.

Library Architecture

libGPML uses an object oriented Java model. In the libGPML Java model, GPML Pathway Elements are represented by Java Classes. Pathway Element types are represented by Enum Java Classes.


Figure 1: libGPML Java Object Model

libGPML consists of several packages:

  • org.pathvisio.libgpml.debug - Debugging and logging utility classes
  • org.pathvisio.libgpml.io - Import and export classes
  • org.pathvisio.libgpml.model - Classes representing the pathway "model". Also includes classes for reading and writing.
  • org.pathvisio.libgpml.model.connector - Line connectors classes
  • org.pathvisio.libgpml.model.shape - Shape defining classes
  • org.pathvisio.libgpml.model.type - Enum type classes
  • org.pathvisio.libgpml.prop - Properties classes
  • org.pathvisio.libgpml.util - Utility classes

Getting help

You can report issues, suggestions and requests using the GitHub issue tracker.

Contributing

We welcome contributions to libGPML! Please read our contribution guidelines, and also feel free to contact the developers to coordinate your efforts.

License

libGPML is available for free under the terms of the Apache License, Version 2.0.

Authors and history

libGPML's main authors are Finterly Hu, Martina Summer-Kutmon, with contributions from many others. We especially thank the following (in alphabetical order):

  • Alex Pico
  • Anders Riutta
  • Chris Evelo
  • Denise Slenter
  • Egon Willighagen
  • Friederike Ehrhart
  • Kristina Hanspers
  • Luc de Meyer
  • Nhung Pham
  • Susan Coort

Acknowledgments

The development of libGPML was supported in largely by funding from WikiPathways-COVID19 ZonMW project.