mcupak / beacon-of-beacons Goto Github PK
View Code? Open in Web Editor NEWBeacon of Beacons.
Home Page: http://mcupak.github.io/beacon-of-beacons
Beacon of Beacons.
Home Page: http://mcupak.github.io/beacon-of-beacons
Not relying on a working internet connection and live beacons, faster and more fine-grained than current integration tests.
Add a page providing a list of beacons, their organizations and aggregate flag on a separate page in the client.
Beacon development kit for Node.js developers.
http://beacon.cafevariome.org/ (website)
http://beacon.cafevariome.org/query (API)
Allow beacons to sign up programmatically provided they implement the API requested by us.
We have e.g.:
/rest/responses?chrom=14&pos=106833421&allele=A
/rest/responses?chrom=14&pos=106833421&allele=A&beacon=amplab
We should also have something like:
/rest/responses?chrom=14&pos=106833421&allele=A&beacon=[amplab,kaviar]
Problem description:
BoB server returns a proper HTTP status code when a request to any of the beacons queries times out. The client hangs.
Expected behaviour:
Bob checks for timeouts on a per-beacon basis - if any of the beacons doesn't respond, Bob sets its response to null and the responses of the remaining beacons in query are still delivered properly. The client handles timeouts gracefully.
Adapter: https://github.com/mcupak/beacon-of-beacons/tree/master/beacon-adapters/beacon-java
Docs: http://mcupak.github.io/beacon-of-beacons/beacons.html#java
API 0.2: https://docs.google.com/document/d/1hFVqmPDKAs2Tacqta98oIPqUOKlHghmuJD8DtYLQFKw/edit?usp=sharing
Change /query and /info endpoints to generate data in the form according to the new API version.
Add an introductory/welcome page for / and /rest contexts.
When querying multiple beacons at once, aggregate beacons can result into the same query being executed multiple times against the same beacon. BoB should resolve beacon dependencies before the query is executed and cache the results to avoid duplicate requests.
Adapter: https://github.com/mcupak/beacon-of-beacons/tree/master/beacon-adapters/beacon-nodejs
Docs: http://mcupak.github.io/beacon-of-beacons/beacons.html#nodejs
API 0.2: https://docs.google.com/document/d/1hFVqmPDKAs2Tacqta98oIPqUOKlHghmuJD8DtYLQFKw/edit?usp=sharing
Change /query and /info endpoints to generate data in the form according to the new API version.
Change 0-based indexing to 1-based as it makes more sense on the genome.
Implement a full beacon bundle serving data from VCF files. Probably a beacon with an embedded server and DB monitoring a directory with VCF files.
They should default to "false" response.
Beacon development kit for Python developers.
Having the documentation in a single README.md is painful to maintain. The docs should be split into multiple pages and hosted separeately (GitHub wiki or GitHub pages).
Fix logging on the backend so that it works with our hosting, hook up Google Analytics to the frontend.
Implement JAX-RS endpoint providing human-readable plaintext responses.
BoB client is currently dependant on PHP to bypass the limitations of CORS. This has to be improved.
Rename the query allele tag “ALT” with “ALLELE” or some more specific term. “ALT” implies alternate loci in GRCh assembly.
Implement authentication and authorization support.
Generate beacon map in the client dynamically based on the beacons offered by the backend. This requires the backend to store and expose address/coordinates of the institutions as well as the number of beacons.
Move adapters to the beacon-quickstarts repo. This includes:
Adapter: https://github.com/mcupak/beacon-of-beacons/tree/master/beacon-adapters/beacon-python
Docs: http://mcupak.github.io/beacon-of-beacons/beacons.html#python
API 0.2: https://docs.google.com/document/d/1hFVqmPDKAs2Tacqta98oIPqUOKlHghmuJD8DtYLQFKw/edit?usp=sharing
Change /query and /info endpoints to generate data in the form according to the new API version.
ATM, we have a separate processor for more or less every beacon. The processors should be split to parsers, url constructors and query executors and assigned to beacon entities.
I was directed to this site by a collague after noting that his project wasn't shown on the ga4gh.org site as one of the beacon endpoints. He said that it is part of the beacon of beacons end points, but I'm unable to find a list in your code or on the site, as to which end points are queried. This could be useful if I want to present this project to DECIPHER, with the hope of implementing it on the DECIPHER site! =]
Add a new beacon:
Order of commands
For Linux: JBOSS_HOME/bin/standalone.sh -c standalone-full.xml
mvn clean install (inside root of the beacon-of-beacon)
cd bob-rest
mvn wildfly:deploy [Runs successfully]
mvn wildfly:undeploy [Throws the following errors]
Please tell me what's wrong.
Thanks!
~/Desktop/apps/ga4g/beacon-of-beacons/bob-rest(branch:master) » mvn test -Parq-wildfly-managed -e
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building bob-rest 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ bob-rest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ bob-rest ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.3:testResources (default-testResources) @ bob-rest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ bob-rest ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ bob-rest ---
[INFO] Surefire report directory: /home/shash/Desktop/apps/ga4g/beacon-of-beacons/bob-rest/target/surefire-reports
Running com.dnastack.bob.rest.IcgcResponseTest
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.653 sec <<< FAILURE!
Running com.dnastack.bob.rest.CuroverseBeaconizerResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.AmpLabResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.CafeVariomeResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.BobResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.EbiResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.BroadInstituteResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.NcbiResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.KaviarResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.UcscResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.WtsiResponseTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
Running com.dnastack.bob.rest.HelpTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.ItemTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.BeaconsTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Running com.dnastack.bob.rest.BeaconResponsesTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
Results :
Tests in error:
com.dnastack.bob.rest.IcgcResponseTest: The server is already running! Managed containers do not support connecting to running server instances due to the possible harmful effect of connecting to the wrong server. Please stop server before running or change to another type of container.
com.dnastack.bob.rest.CuroverseBeaconizerResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.AmpLabResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.CafeVariomeResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.BobResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.EbiResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.BroadInstituteResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.NcbiResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.KaviarResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.UcscResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.WtsiResponseTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.HelpTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.ItemTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.BeaconsTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
com.dnastack.bob.rest.BeaconResponsesTest: Arquillian has previously been attempted initialized, but failed. See cause for previous exception
Tests run: 15, Failures: 0, Errors: 15, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.440s
[INFO] Finished at: Sat Mar 07 01:54:12 IST 2015
[INFO] Final Memory: 19M/341M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project bob-rest: There are test failures.
[ERROR]
[ERROR] Please refer to /home/shash/Desktop/apps/ga4g/beacon-of-beacons/bob-rest/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project bob-rest: There are test failures.
Please refer to /home/shash/Desktop/apps/ga4g/beacon-of-beacons/bob-rest/target/surefire-reports for the individual test results.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.
Please refer to /home/shash/Desktop/apps/ga4g/beacon-of-beacons/bob-rest/target/surefire-reports for the individual test results.
at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.java:87)
at org.apache.maven.plugin.surefire.SurefirePlugin.writeSummary(SurefirePlugin.java:641)
at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:615)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:137)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:98)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
Beacon development kit for Java developers.
Both staging and production.
There seem to be problems with moxy and resteasy-jaxb-provider on Wildfly (everything is working fine on EAP 6).
15:23:38,568 WARN [org.jboss.resteasy.core.ExceptionHandler](default task-3) Failed executing GET /chromosomes: org.jboss.resteasy.plugins.providers.jaxb.JAXBMarshalException: javax.xml.bind.JAXBException:
Exception Description: Class [com.dnastack.bob.dto.ReferenceTo] not found.
The current version of DNAstack client is not written nicely and needs to be refactored. It should also catch up with the functionality offered by BoB and get included in the repo.
UCSC and AMPlab tests started failing, probably because the API of those beacons changed. Update BoB to account for these changes.
Based on Marc's parser.
Create UI allowing the administrators to manipulate beacons (CRUD, toggle visibility, aggregate etc.).
This includes links in:
Currently, beacons are pretty much hard-coded. Store them in a DB so that they can be updated during runtime and the changes persist.
Links:
Info:
In short, the url follows the documentation on your website with the [BEACON-URL] being https://dcc.icgc.org:443/api/v1/beacon/query
With an optional ‘dataset’ parameter as well.
The beacon follows the v0.2 specification but does not yet implement wildcards/overlap as we are waiting for finalization of the spec to ensure that is implemented properly.
Also note that the only currently supported reference is GRCh37 and the beacon will respond with a JSON object (as required by the v0.2 specification).
It should be possible to hide a beacon and expose its result through an aggregation point (essentially a fine-graned bob).
Example: Canadian cancer, US cancer, and UK cancer beacons all queried under a Cancer beacon.
E.g. return 404 if a beacon is not found etc.
The testsuite currently contains a few separate test classes testing different beacons, which involves a lot of redundancy and code duplication.
Normally, this is a kind of problem which could be solved by one of the following:
Unfortunaly, all of these require you to use a custom runner, which doesn't work with the Arquillian runner we're using. Figure out a way to run parametrized tests with Arquillian in client mode.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.