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/