def testReferenceSetsSearch(self): request = protocol.SearchReferenceSetsRequest() referenceSets = self.backend.getReferenceSets() path = '/referencesets/search' self.verifySearchMethod(request, path, protocol.SearchReferenceSetsResponse, referenceSets, self.verifyReferenceSetsEqual)
def searchReferenceSets(self, accession=None, md5checksum=None, assemblyId=None): """ Returns an iterator over the ReferenceSets fulfilling the specified conditions. :param str accession: If not null, return the reference sets for which the `accession` matches this string (case-sensitive, exact match). :param str md5checksum: If not null, return the reference sets for which the `md5checksum` matches this string (case-sensitive, exact match). See :class:`ga4gh.protocol.ReferenceSet::md5checksum` for details. :param str assemblyId: If not null, return the reference sets for which the `assemblyId` matches this string (case-sensitive, exact match). :return: An iterator over the :class:`ga4gh.protocol.ReferenceSet` objects defined by the query parameters. """ request = protocol.SearchReferenceSetsRequest() request.accession = accession request.md5checksum = md5checksum request.assemblyId = assemblyId request.pageSize = self._pageSize return self._runSearchRequest(request, "referencesets", protocol.SearchReferenceSetsResponse)
def testReferences(self): # search for reference sets path = utils.applyVersion('/referencesets/search') request = protocol.SearchReferenceSetsRequest() response = self.sendJsonPostRequest(path, request.toJsonString()) self.assertEqual(response.status_code, 200) responseData = protocol.SearchReferenceSetsResponse.fromJsonString( response.data) referenceSets = responseData.referenceSets self.assertEqual(self.numReferenceSets, len(referenceSets)) # search for references path = utils.applyVersion('/references/search') request = protocol.SearchReferencesRequest() response = self.sendJsonPostRequest(path, request.toJsonString()) self.assertEqual(response.status_code, 200) responseData = protocol.SearchReferencesResponse.fromJsonString( response.data) references = responseData.references self.assertEqual( self.numReferenceSets * self.numReferencesPerReferenceSet, len(references)) for referenceSet in referenceSets: # fetch the reference set path = utils.applyVersion('/referencesets/{}'.format( referenceSet.id)) response = self.app.get(path) self.assertEqual(response.status_code, 200) fetchedReferenceSet = protocol.ReferenceSet.fromJsonString( response.data) self.assertEqual(fetchedReferenceSet, referenceSet) self.assertEqual(len(fetchedReferenceSet.referenceIds), self.numReferencesPerReferenceSet) for referenceId in referenceSet.referenceIds: # fetch the reference path = utils.applyVersion('/references/{}'.format(referenceId)) response = self.app.get(path) self.assertEqual(response.status_code, 200) fetchedReference = protocol.Reference.fromJsonString( response.data) self.assertEqual(fetchedReference.id, referenceId) # fetch the bases path = utils.applyVersion( '/references/{}/bases'.format(referenceId)) args = protocol.ListReferenceBasesRequest().toJsonDict() response = self.app.get(path, data=args) self.assertEqual(response.status_code, 200) bases = protocol.ListReferenceBasesResponse.fromJsonString( response.data) self.assertEqual(len(bases.sequence), 200) self.assertEqual(set(bases.sequence), set(['A', 'C', 'T', 'G'])) calculatedDigest = hashlib.md5(bases.sequence).hexdigest() self.assertEqual(calculatedDigest, fetchedReference.md5checksum)
def testSearchReferenceSets(self): request = protocol.SearchReferenceSetsRequest() request.pageSize = self.pageSize request.accession = self.accession request.md5checksum = self.md5checksum request.assemblyId = self.assemblyId self.httpClient.searchReferenceSets( accession=self.accession, md5checksum=self.md5checksum, assemblyId=self.assemblyId) self.httpClient._runSearchRequest.assert_called_once_with( request, "referencesets", protocol.SearchReferenceSetsResponse)
def searchReferenceSets(self, accession=None, md5checksum=None, assemblyId=None): """ Returns an iterator over the ReferenceSets fulfilling the specified conditions. :param str accession: TODO :param str md5checksum: TODO :param str assemblyId: TODO :return: An iterator over the :class:`ga4gh.protocol.ReferenceSet` objects defined by the query parameters. """ request = protocol.SearchReferenceSetsRequest() request.accession = accession request.md5checksum = md5checksum request.assemblyId = assemblyId request.pageSize = self._pageSize return self._runSearchRequest(request, "referencesets", protocol.SearchReferenceSetsResponse)
def requestFactory(): return protocol.SearchReferenceSetsRequest()
def createSearchReferenceSetsRequest(self): request = protocol.SearchReferenceSetsRequest() setCommaSeparatedAttribute(request, self.args, 'accessions') setCommaSeparatedAttribute(request, self.args, 'md5checksums') return request