Skip to content
/ ga4gh Public

This repository implements the Protobuf and Avro schemas from GA4GH available at http://ga4gh.org/#/schemas

License

Notifications You must be signed in to change notification settings

opencb/ga4gh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCB implementation of GA4GH Schemas

This OpenCB repository implements the Protobuf and Avro data models from GA4GH schemas. These are available at http://ga4gh.org/#/schemas. This Java library will be versioned as the GA4GH schema version used.

Code generation

This version implements GA4GH version 0.6.0a5. GA4GH Schemas are stored in src/main in proto and avro folders. Protocol buffers schemas are taken from GA4GH 0.6.0a5 and Avro schemas from GA4GH 0.6.0a4. At the moment protocol buffers 3.0.0-beta-3 and Avro 1.7.7 are used. We will try to keep them updated and sync.

We have respected the schemas package configuration and therefore the protobuf code has been generated in src/main/java/ga4gh and avro code is available at src/main/java/org/ga4gh.

Currently, Java code for both Proto and Avro are generated using the following Maven plugins:

        <plugin>
            <groupId>org.xolstice.maven.plugins</groupId>
            <artifactId>protobuf-maven-plugin</artifactId>
            <version>0.5.0</version>
            <configuration>
                <!--
                  The version of protoc must match protobuf-java. If you don't depend on
                  protobuf-java directly, you will be transitively depending on the
                  protobuf-java version that grpc depends on.
                -->
                <protocArtifact>com.google.protobuf:protoc:3.0.0-beta-3:exe:${os.detected.classifier}</protocArtifact>
                <pluginId>grpc-java</pluginId>
                <pluginArtifact>io.grpc:protoc-gen-grpc-java:0.15.0:exe:${os.detected.classifier}</pluginArtifact>
                <clearOutputDirectory>false</clearOutputDirectory>
                <outputDirectory>src/main/java</outputDirectory>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>compile-custom</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        
        <plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>1.7.7</version>
            <executions>
                <execution>
                    <id>schemas</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>schema</goal>
                        <goal>protocol</goal>
                        <goal>idl-protocol</goal>
                    </goals>
                    <configuration>
                        <fieldVisibility>private</fieldVisibility>
                        <stringType>String</stringType>
                        <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
                        <outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

How to use it

You can use this repository in two different ways. First, all OpenCB libraries are deployed to Maven Central Repository as you can see at http://search.maven.org/#search%7Cga%7C1%7Copencb. So you only need to add this dependency to your pom.xml:

        <dependency>
            <groupId>org.opencb</groupId>
            <artifactId>ga4gh</artifactId>
            <version>0.6.0a5</version>
        </dependency>

Second, you can clone this project using Git and use maven to build and install it in your local repository:

        git clone https://github.com/opencb/ga4gh.git
        mvn clean install

Image
Image

About

This repository implements the Protobuf and Avro schemas from GA4GH available at http://ga4gh.org/#/schemas

Resources

License

Stars

Watchers

Forks

Packages

No packages published