예제 #1
0
 def testReferenceSetsSearch(self):
     request = protocol.SearchReferenceSetsRequest()
     referenceSets = self.backend.getReferenceSets()
     path = '/referencesets/search'
     self.verifySearchMethod(request, path,
                             protocol.SearchReferenceSetsResponse,
                             referenceSets, self.verifyReferenceSetsEqual)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
 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)
예제 #5
0
파일: client.py 프로젝트: sguthrie/server
    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)
예제 #6
0
 def requestFactory():
     return protocol.SearchReferenceSetsRequest()
예제 #7
0
파일: cli.py 프로젝트: afirth/server
 def createSearchReferenceSetsRequest(self):
     request = protocol.SearchReferenceSetsRequest()
     setCommaSeparatedAttribute(request, self.args, 'accessions')
     setCommaSeparatedAttribute(request, self.args, 'md5checksums')
     return request