diff --git a/lib/alpn-boot-8.1.9.v20160720.jar b/lib/alpn-boot-8.1.9.v20160720.jar
new file mode 100644
index 0000000..817cbc2
Binary files /dev/null and b/lib/alpn-boot-8.1.9.v20160720.jar differ
diff --git a/pom.xml b/pom.xml
index d7cc2ad..61a0cda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
Google Genomics Utils for GATK
Common Java files for Google Genomics integrations with GATK/Picard/HTSJDK
https://github.com/googlegenomics/gatk-tools-java
- 1.5-SNAPSHOT
+ v1-0.6-SNAPSHOT
Google
@@ -55,7 +55,7 @@
https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
+
@@ -96,10 +96,11 @@
google-http-client-jackson2
${google.api.version}
+
com.google.apis
google-api-services-genomics
- v1beta2-rev9-1.19.0
+ ${google.api.genomics.version}
@@ -112,7 +113,7 @@
com.google.cloud.genomics
google-genomics-utils
- v1beta2-0.31
+ v1-0.6
@@ -195,6 +196,11 @@
jcommander
${jcommander.version}
+
+ io.grpc
+ grpc-all
+ ${io.grpc.version}
+
@@ -357,8 +363,9 @@
6.1.26
2.4.2
4.11
- 1.19.0
- v1beta2-rev7-1.19.0
+ 1.22.0
+ v1-rev87-1.22.0
+ 0.15.0
1.10.8
1.35
UTF-8
diff --git a/src/main/java/com/google/cloud/genomics/gatk/common/GA4GHUrl.java b/src/main/java/com/google/cloud/genomics/gatk/common/GA4GHUrl.java
index 6c672b8..f88d63c 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/common/GA4GHUrl.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/common/GA4GHUrl.java
@@ -21,7 +21,7 @@
/**
* Represents a GA4GH reads resource as a URL in the form of
* ga4gh:///readsets///[start-end],
- * e.g. ga4gh://www.googleapis.com/genomics/v1beta2/readgroupsets/CMvnhpKTFhD04eLE-q2yxnU/1/
+ * e.g. ga4gh://genomics.googleapis.com/v1/readgroupsets/CMvnhpKTFhD04eLE-q2yxnU/1/
*/
public class GA4GHUrl {
int rangeStart = 0;
diff --git a/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceBase.java b/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceBase.java
index ceefe69..7185970 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceBase.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceBase.java
@@ -23,6 +23,8 @@
import java.io.File;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.security.GeneralSecurityException;
import java.util.logging.Logger;
@@ -53,22 +55,30 @@ public GenomicsDataSourceBase(String rootUrl,
this.rootUrl = rootUrl;
}
- protected GenomicsFactory getFactory() throws GeneralSecurityException, IOException {
+ protected GenomicsFactory getFactory() {
if (factory == null) {
factory = initGenomicsFactory();
}
return factory;
}
- protected GenomicsFactory initGenomicsFactory() throws GeneralSecurityException, IOException {
- VerificationCodeReceiver receiver = noLocalServer ?
- new GooglePromptReceiver() : new LocalServerReceiver();
- return GenomicsFactory
- .builder("genomics_java_client")
- .setRootUrl(rootUrl)
- .setServicePath("/")
- .setVerificationCodeReceiver(Suppliers.ofInstance(receiver))
- .build();
+ protected GenomicsFactory initGenomicsFactory() {
+ // Remove any path component from the root url - the code expects
+ // e.g. https://genomics.googleapis.com
+ URL url = null;
+ try {
+ url = new URL(rootUrl);
+ } catch (MalformedURLException e) {
+ // Will not set url
+ }
+ GenomicsFactory.Builder builder = GenomicsFactory
+ .builder("genomics_java_client");
+ if (url != null) {
+ String rootUrlString = url.getProtocol() + "://" + url.getHost();
+ LOG.info("Initializing genomics factory with root url " + rootUrlString);
+ builder.setRootUrl(rootUrlString);
+ }
+ return builder.build();
}
static final String CLIENT_SECRETS_INSTRUCTIONS =
diff --git a/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceFactory.java b/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceFactory.java
index 4e19485..4a5f5d6 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceFactory.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/common/GenomicsDataSourceFactory.java
@@ -20,7 +20,7 @@
/**
* Creates GenomicsApiDataSource objects, one per each root url
- * (e.g. https://www.googleapis.com/genomics/v1beta2).
+ * (e.g. https://genomics.googleapis.com/v1).
* Allows configuring settings such as client secrets file on a per
* root url basis.
* This class is abstract and is later specialized for API vs. GRPC.
diff --git a/src/main/java/com/google/cloud/genomics/gatk/common/grpc/GenomicsDataSource.java b/src/main/java/com/google/cloud/genomics/gatk/common/grpc/GenomicsDataSource.java
index 5b44adf..4c49354 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/common/grpc/GenomicsDataSource.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/common/grpc/GenomicsDataSource.java
@@ -15,11 +15,11 @@
*/
package com.google.cloud.genomics.gatk.common.grpc;
-import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
-import com.google.api.client.googleapis.util.Utils;
-import com.google.auth.oauth2.UserCredentials;
import com.google.cloud.genomics.gatk.common.GenomicsDataSourceBase;
-import com.google.cloud.genomics.utils.GenomicsFactory.OfflineAuth;
+import com.google.cloud.genomics.utils.CredentialFactory;
+import com.google.cloud.genomics.utils.OfflineAuth;
+import com.google.cloud.genomics.utils.grpc.GenomicsChannel;
+import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -39,25 +39,14 @@
import com.google.genomics.v1.StreamReadsResponse;
import com.google.genomics.v1.StreamingReadServiceGrpc;
import com.google.genomics.v1.StreamingReadServiceGrpc.StreamingReadServiceBlockingStub;
-
import io.grpc.Channel;
-import io.grpc.ChannelImpl;
-import io.grpc.ClientInterceptors;
-import io.grpc.auth.ClientAuthInterceptor;
-import io.grpc.transport.netty.GrpcSslContexts;
-import io.grpc.transport.netty.NegotiationType;
-import io.grpc.transport.netty.NettyChannelBuilder;
-
+import io.grpc.ManagedChannel;
import java.io.FileNotFoundException;
-import java.io.FileReader;
import java.io.IOException;
import java.security.GeneralSecurityException;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.Executors;
/**
* Manages Genomics GRPC Api initialization and provides Read iterator based
@@ -66,8 +55,7 @@
public class GenomicsDataSource
extends GenomicsDataSourceBase {
/** gRPC channel used for faster access to Genomics API */
- private Channel channel;
- private ChannelImpl channelImpl;
+ private ManagedChannel channel;
public GenomicsDataSource(String rootUrl,
String clientSecretsFilename,
@@ -83,41 +71,19 @@ private Channel getChannel() throws FileNotFoundException, IOException, GeneralS
return channel;
}
- private Channel initGenomicsChannel() throws FileNotFoundException, IOException, GeneralSecurityException {
- checkParamsForAuth(AUTH_REQUIREMENTS.CLIENT_SECRETS_ONLY);
- final GoogleClientSecrets secrets = GoogleClientSecrets.load(
- Utils.getDefaultJsonFactory(),
- new FileReader(clientSecretsFilename));
- final OfflineAuth auth = getFactory()
- .getOfflineAuthFromClientSecretsFile(clientSecretsFilename);
- final UserCredentials userCredentials = new UserCredentials(
- secrets.getInstalled().getClientId(),
- secrets.getInstalled().getClientSecret(),
- auth.refreshToken);
-
- // Java 8's implementation of GCM ciphers is extremely slow. Therefore we disable
- // them here.
- List defaultCiphers =
- GrpcSslContexts.forClient().ciphers(null).build().cipherSuites();
- List performantCiphers = new ArrayList<>();
- for (String cipher : defaultCiphers) {
- if (!cipher.contains("GCM")) {
- performantCiphers.add(cipher);
- }
+ private ManagedChannel initGenomicsChannel() throws FileNotFoundException, IOException, GeneralSecurityException {
+ if (clientSecretsFilename != null && clientSecretsFilename.length() > 0) {
+ return GenomicsChannel.fromOfflineAuth(
+ new OfflineAuth(
+ CredentialFactory.getCredentialFromClientSecrets(
+ clientSecretsFilename,
+ "genomics_java_client")));
}
- channelImpl = NettyChannelBuilder.forAddress("genomics.googleapis.com", 443)
- .negotiationType(NegotiationType.TLS)
- .streamWindowSize(1000000)
- .sslContext(GrpcSslContexts.forClient().ciphers(performantCiphers).build())
- .build();
- /*userCredentials = userCredentials.createScoped(
- Arrays.asList("https://www.googleapis.com/auth/genomics"));*/
- ClientAuthInterceptor interceptor = new ClientAuthInterceptor(userCredentials,
- Executors.newSingleThreadExecutor());
- return ClientInterceptors.intercept(channelImpl, interceptor);
+ // API Key is not sufficient for StreamReads request.
+ // TODO: All support for non default credentials will be removed in a subsequent PR.
+ return GenomicsChannel.fromDefaultCreds();
}
-
@Override
public ReadIteratorResource getReads(
@@ -183,7 +149,7 @@ public ReadIteratorResource getReads(
private Map getReferences(ReadGroupSet readGroupSet)
throws IOException, GeneralSecurityException {
Set referenceSetIds = Sets.newHashSet();
- if (readGroupSet.getReferenceSetId() != null && !readGroupSet.getReferenceSetId().isEmpty()) {
+ if (!Strings.isNullOrEmpty(readGroupSet.getReferenceSetId())) {
LOG.info("Found reference set from read group set " +
readGroupSet.getReferenceSetId());
referenceSetIds.add(readGroupSet.getReferenceSetId());
@@ -191,7 +157,7 @@ public ReadIteratorResource getReads(
if (readGroupSet.getReadGroupsCount() > 0) {
LOG.info("Found read groups");
for (ReadGroup readGroup : readGroupSet.getReadGroupsList()) {
- if (readGroup.getReferenceSetId() != null && !readGroup.getReferenceSetId().isEmpty()) {
+ if (!Strings.isNullOrEmpty(readGroup.getReferenceSetId())) {
LOG.info("Found reference set from read group: " +
readGroup.getReferenceSetId());
referenceSetIds.add(readGroup.getReferenceSetId());
@@ -217,7 +183,7 @@ public ReadIteratorResource getReads(
GetReferenceRequest getReferenceRequest = GetReferenceRequest
.newBuilder().setReferenceId(referenceId).build();
Reference reference = referenceSetStub.getReference(getReferenceRequest);
- if (reference.getName() != null && !reference.getName().isEmpty()) {
+ if (!Strings.isNullOrEmpty(reference.getName())) {
references.put(reference.getName(), reference);
LOG.fine("Adding reference " + reference.getName());
}
@@ -316,9 +282,8 @@ public void remove() {
@Override
public void close() {
- if (channelImpl != null ) {
- channelImpl.shutdown();
- channelImpl = null;
+ if (channel != null ) {
+ channel.shutdown();
}
channel = null;
}
diff --git a/src/main/java/com/google/cloud/genomics/gatk/common/rest/GenomicsDataSource.java b/src/main/java/com/google/cloud/genomics/gatk/common/rest/GenomicsDataSource.java
index 6d4dca6..a8a406a 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/common/rest/GenomicsDataSource.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/common/rest/GenomicsDataSource.java
@@ -15,12 +15,9 @@
*/
package com.google.cloud.genomics.gatk.common.rest;
-import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
-import com.google.api.client.http.HttpRequest;
-import com.google.api.client.http.HttpRequestInitializer;
-import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.genomics.Genomics;
+import com.google.api.services.genomics.model.Program;
import com.google.api.services.genomics.model.Read;
import com.google.api.services.genomics.model.ReadGroup;
import com.google.api.services.genomics.model.ReadGroupSet;
@@ -29,11 +26,11 @@
import com.google.api.services.genomics.model.SearchReadsRequest;
import com.google.cloud.genomics.gatk.common.GenomicsDataSourceBase;
import com.google.cloud.genomics.utils.Paginator;
-import com.google.cloud.genomics.utils.Paginator.ShardBoundary;
+import com.google.cloud.genomics.utils.ShardBoundary;
+import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-
import java.io.File;
import java.io.IOException;
import java.security.GeneralSecurityException;
@@ -76,22 +73,8 @@ private Genomics initGenomicsApi() throws GeneralSecurityException, IOException
LOG.info("Using API key");
return getFactory().fromApiKey(apiKey);
}
- } else {
- final Genomics.Builder builder = new Genomics
- .Builder(
- GoogleNetHttpTransport.newTrustedTransport(),
- JacksonFactory.getDefaultInstance(),
- new HttpRequestInitializer() {
- @Override public void initialize(HttpRequest httpRequest) throws IOException {
- httpRequest.setReadTimeout(20000);
- httpRequest.setConnectTimeout(20000);
- }
- })
- .setApplicationName("genomics_java_client")
- .setRootUrl(rootUrl)
- .setServicePath("/");
- return builder.build();
- }
+ }
+ return getFactory().fromApplicationDefaultCredential();
}
@Override
@@ -106,6 +89,19 @@ public ReadIteratorResource getReads(String readsetId,
ReadGroupSet readGroupSet = stub.readgroupsets().get(readsetId).execute();
String datasetId = readGroupSet.getDatasetId();
LOG.info("Found readset " + readsetId + ", dataset " + datasetId);
+ // Fix up PP in Programs
+
+ if (readGroupSet.getReadGroups() != null) {
+ for (ReadGroup readGroup : readGroupSet.getReadGroups()) {
+ if (readGroup.getPrograms() != null) {
+ for (Program PG : readGroup.getPrograms()) {
+ if (PG.getPrevProgramId() != null && PG.getPrevProgramId().length() == 0) {
+ PG.setPrevProgramId(null);
+ }
+ }
+ }
+ }
+ }
final Map references = getReferences(readGroupSet);
final Reference reference = references.get(sequenceName);
@@ -121,7 +117,7 @@ public ReadIteratorResource getReads(String readsetId,
if (sequenceName.isEmpty()) {
unmappedReads = getUnmappedMatesOfMappedReads(readsetId);
}
- Paginator.Reads searchReads = Paginator.Reads.create(stub, ShardBoundary.OVERLAPS);
+ Paginator.Reads searchReads = Paginator.Reads.create(stub, ShardBoundary.Requirement.OVERLAPS);
SearchReadsRequest readRequest = new SearchReadsRequest()
.setReadGroupSetIds(Arrays.asList(readsetId))
.setReferenceName(sequenceName)
@@ -153,15 +149,15 @@ public ReadIteratorResource getReads(String readsetId,
private Map getReferences(ReadGroupSet readGroupSet)
throws IOException, GeneralSecurityException {
Set referenceSetIds = Sets.newHashSet();
- if (readGroupSet.getReferenceSetId() != null) {
- LOG.info("Found reference set from read group set " +
+ if (!Strings.isNullOrEmpty(readGroupSet.getReferenceSetId())) {
+ LOG.info("Found reference set from read group set: " +
readGroupSet.getReferenceSetId());
referenceSetIds.add(readGroupSet.getReferenceSetId());
}
if (readGroupSet.getReadGroups() != null) {
LOG.info("Found read groups");
for (ReadGroup readGroup : readGroupSet.getReadGroups()) {
- if (readGroup.getReferenceSetId() != null) {
+ if (!Strings.isNullOrEmpty(readGroup.getReferenceSetId())) {
LOG.info("Found reference set from read group: " +
readGroup.getReferenceSetId());
referenceSetIds.add(readGroup.getReferenceSetId());
@@ -179,7 +175,7 @@ public ReadIteratorResource getReads(String readsetId,
for (String referenceId : referenceSet.getReferenceIds()) {
LOG.fine("Getting reference " + referenceId);
Reference reference = getApi().references().get(referenceId).execute();
- if (reference.getName() != null) {
+ if (!Strings.isNullOrEmpty(reference.getName())) {
references.put(reference.getName(), reference);
LOG.fine("Adding reference " + reference.getName());
}
@@ -196,7 +192,7 @@ protected UnmappedReads createUnmappedReads() {
@Override
protected Iterable getUnmappedReadsIterator(String readsetId) throws GeneralSecurityException, IOException {
final Paginator.Reads searchUnmappedReads =
- Paginator.Reads.create(getApi(), ShardBoundary.OVERLAPS);
+ Paginator.Reads.create(getApi(), ShardBoundary.Requirement.OVERLAPS);
final SearchReadsRequest unmappedReadRequest = new SearchReadsRequest()
.setReadGroupSetIds(Arrays.asList(readsetId))
.setReferenceName("*");
diff --git a/src/main/java/com/google/cloud/genomics/gatk/htsjdk/SamReaderExample.java b/src/main/java/com/google/cloud/genomics/gatk/htsjdk/SamReaderExample.java
index 1db89e7..bf90444 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/htsjdk/SamReaderExample.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/htsjdk/SamReaderExample.java
@@ -34,15 +34,15 @@
*
* To run this we need to specify the custom reader factory for HTSJDK and set
* client_secrets file path for Genomics API:
- * -Dsamjdk.custom_reader=https://www.googleapis.com/genomics,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory
+ * -Dsamjdk.custom_reader=https://genomics.googleapis.com,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory
* -Dga4gh.client_secrets=.
*
* Optionally specify -Dga4gh.using_grpc=true, to use GRPC based Api access.
*/
public class SamReaderExample {
static String GA4GH_URL =
- "https://www.googleapis.com/genomics/v1beta2/readgroupsets/CMvnhpKTFhD3he72j4KZuyc/chr17/41196311-42677499";
- //"https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/";
+ "https://genomics.googleapis.com/v1/readgroupsets/CMvnhpKTFhD3he72j4KZuyc/chr17/41196311-42677499";
+ //"https://genomics.googleapis.com/v1/readgroupsets/CK256frpGBD44IWHwLP22R4/";
public static void main(String[] args) {
try {
SamReaderFactory factory = SamReaderFactory.makeDefault();
diff --git a/src/main/java/com/google/cloud/genomics/gatk/picard/runner/GA4GHPicardRunner.java b/src/main/java/com/google/cloud/genomics/gatk/picard/runner/GA4GHPicardRunner.java
index 6350335..f3d2b03 100644
--- a/src/main/java/com/google/cloud/genomics/gatk/picard/runner/GA4GHPicardRunner.java
+++ b/src/main/java/com/google/cloud/genomics/gatk/picard/runner/GA4GHPicardRunner.java
@@ -45,7 +45,7 @@
@Parameter(names = "--root_url",
description = "set the Genomics API root URL",
hidden = true)
- public String rootUrl = "https://www.googleapis.com/genomics/v1beta2";
+ public String rootUrl = "https://genomics.googleapis.com/v1";
@Parameter(names = "--nolocalserver",
description = "Disable the starting up of a local server for the auth flows",
diff --git a/src/main/scripts/example.sh b/src/main/scripts/example.sh
index edd3802..f65c0f9 100755
--- a/src/main/scripts/example.sh
+++ b/src/main/scripts/example.sh
@@ -5,16 +5,16 @@ then
# Use this for Java 7
# MAVEN_OPTS="-Xbootclasspath/p:./lib/alpn-boot-7.1.3.v20150130.jar" \
# Use this for Java 8
-MAVEN_OPTS="-Xbootclasspath/p:./lib/alpn-boot-8.1.3.v20150130.jar" \
+MAVEN_OPTS="-Xbootclasspath/p:./lib/alpn-boot-8.1.9.v20160720.jar" \
mvn exec:java \
-Dexec.mainClass=com.google.cloud.genomics.gatk.htsjdk.SamReaderExample \
- -Dsamjdk.custom_reader=https://www.googleapis.com/genomics,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory \
+ -Dsamjdk.custom_reader=https://genomics.googleapis.com,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory \
-Dga4gh.client_secrets=../client_secrets.json \
-Dga4gh.using_grpc=true
else
mvn exec:java \
-Dexec.mainClass=com.google.cloud.genomics.gatk.htsjdk.SamReaderExample \
- -Dsamjdk.custom_reader=https://www.googleapis.com/genomics,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory \
+ -Dsamjdk.custom_reader=https://genomics.googleapis.com,com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory \
-Dga4gh.client_secrets=../client_secrets.json \
-Dga4gh.using_grpc=false
fi
diff --git a/src/main/scripts/mark_duplicates.sh b/src/main/scripts/mark_duplicates.sh
index f3a738f..d366a1c 100755
--- a/src/main/scripts/mark_duplicates.sh
+++ b/src/main/scripts/mark_duplicates.sh
@@ -4,6 +4,6 @@ METRICS_FILE=$(readlink -f ../../../../ex1_deduped_picard_api.metrics)
./run_picard.sh \
MarkDuplicates \
-INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
+INPUT=https://genomics.googleapis.com/v1/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
OUTPUT=$OUTPUT_FILE \
METRICS_FILE=$METRICS_FILE
diff --git a/src/main/scripts/mark_duplicates_cigar.sh b/src/main/scripts/mark_duplicates_cigar.sh
index 0d44440..3db44d2 100755
--- a/src/main/scripts/mark_duplicates_cigar.sh
+++ b/src/main/scripts/mark_duplicates_cigar.sh
@@ -4,6 +4,6 @@ METRICS_FILE=$(readlink -f ../../../../ex1_deduped_picard_cigar_api.metrics)
./run_picard.sh \
MarkDuplicatesWithMateCigar \
-INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
+INPUT=https://genomics.googleapis.com/v1/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
OUTPUT=$OUTPUT_FILE \
METRICS_FILE=$METRICS_FILE
diff --git a/src/main/scripts/run_picard.sh b/src/main/scripts/run_picard.sh
index 5537e12..9f3fc4d 100755
--- a/src/main/scripts/run_picard.sh
+++ b/src/main/scripts/run_picard.sh
@@ -11,17 +11,20 @@
# If your setup is different, please modify paths below.
GATK_TOOLS_JAVA_JAR=$(readlink -f `dirname $0`/../../../target/gatk-tools-java-*-SNAPSHOT-jar-with-dependencies.jar)
CLIENT_SECRETS=$(readlink -f `dirname $0`/../../../../client_secrets.json)
-PICARD_JAR=$(readlink -f `dirname $0`/../../../../picard/dist/picard.jar)
-
+PICARD_JAR=$(readlink -f `dirname $0`/../../../../picard/build/libs/picard*all.jar)
+ALPN_JAR=$(readlink -f `dirname $0`/../../../lib/alpn-boot-8.1.9.v20160720.jar)
echo Running Picard from $PICARD_JAR
echo Using gatk-tools-java from $GATK_TOOLS_JAVA_JAR
-echo Using client_secrets form $CLIENT_SECRETS
+echo Using client_secrets from $CLIENT_SECRETS
+echo Using ALPN from $ALPN_JAR
java -jar \
--Dsamjdk.custom_reader=https://www.googleapis.com/genomics,\
+-Xbootclasspath/p:$ALPN_JAR:$GATK_TOOLS_JAVA_JAR \
+-Dsamjdk.custom_reader=https://genomics.googleapis.com,\
com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory,\
$GATK_TOOLS_JAVA_JAR \
-Dga4gh.client_secrets=$CLIENT_SECRETS \
+-Dga4gh.using_grpc=true \
$PICARD_JAR \
"$@" \
VERBOSITY=DEBUG QUIET=false
\ No newline at end of file
diff --git a/src/main/scripts/view_sam_file.sh b/src/main/scripts/view_sam_file.sh
index 8124513..f916b1b 100755
--- a/src/main/scripts/view_sam_file.sh
+++ b/src/main/scripts/view_sam_file.sh
@@ -1,4 +1,4 @@
#!/bin/bash
`dirname $0`/run_picard.sh \
ViewSam \
-INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/
+INPUT=https://genomics.googleapis.com/v1/readgroupsets/CK256frpGBD44IWHwLP22R4/