Exemplo n.º 1
0
    def show(self, trans, id, hda_ldda='hda', data_type=None, provider=None, **kwd):
        """
        GET /api/datasets/{encoded_dataset_id}
        Displays information about and/or content of a dataset.
        """
        # Get dataset.
        dataset = self.get_hda_or_ldda(trans, hda_ldda=hda_ldda, dataset_id=id)

        # Use data type to return particular type of data.
        if data_type == 'state':
            rval = self._dataset_state(trans, dataset)
        elif data_type == 'converted_datasets_state':
            rval = self._converted_datasets_state(trans, dataset, kwd.get('chrom', None),
                                                  is_true(kwd.get('retry', False)))
        elif data_type == 'data':
            rval = self._data(trans, dataset, **kwd)
        elif data_type == 'features':
            rval = self._search_features(trans, dataset, kwd.get('query'))
        elif data_type == 'raw_data':
            rval = self._raw_data(trans, dataset, provider, **kwd)
        elif data_type == 'track_config':
            rval = self.get_new_track_config(trans, dataset)
        elif data_type == 'genome_data':
            rval = self._get_genome_data(trans, dataset, kwd.get('dbkey', None))
        else:
            # Default: return dataset as dict.
            if hda_ldda == 'hda':
                return self.hda_serializer.serialize_to_view(dataset,
                                                             view=kwd.get('view', 'detailed'), user=trans.user, trans=trans)
            else:
                rval = dataset.to_dict()
        return rval
Exemplo n.º 2
0
    def show(self,
             trans,
             id,
             num=None,
             chrom=None,
             low=None,
             high=None,
             **kwd):
        """
        GET /api/genomes/{id}

        Returns information about build <id>
        """

        # Process kwds.
        id = get_id(id, kwd.get('format', None))
        reference = is_true(kwd.get('reference', False))

        # Return info.
        rval = None
        if reference:
            region = self.app.genomes.reference(trans,
                                                dbkey=id,
                                                chrom=chrom,
                                                low=low,
                                                high=high)
            rval = {'dataset_type': 'refseq', 'data': region.sequence}
        else:
            rval = self.app.genomes.chroms(trans,
                                           dbkey=id,
                                           num=num,
                                           chrom=chrom,
                                           low=low)
        return rval
Exemplo n.º 3
0
    def show(self, trans, id, num=None, chrom=None, low=None, high=None, **kwd):
        """
        GET /api/genomes/{id}

        Returns information about build <id>
        """
        id = get_id(id, kwd.get('format'))
        reference = is_true(kwd.get('reference', False))
        return self.manager.get_genome(trans, id, num, chrom, low, high, reference)
Exemplo n.º 4
0
    def sequences(self, trans, id, num=None, chrom=None, low=None, high=None, **kwd):
        """
        GET /api/genomes/{id}/sequences

        This is a wrapper for accepting sequence requests that
        want a raw return, not json
        """
        id = get_id(id, kwd.get('format', None))
        reference = is_true(kwd.get('reference', False))
        assert reference
        region = self.app.genomes.reference(trans, dbkey=id, chrom=chrom, low=low, high=high)
        return region.sequence
Exemplo n.º 5
0
    def sequences(self, trans, id, num=None, chrom=None, low=None, high=None, **kwd):
        """
        GET /api/genomes/{id}/sequences

        This is a wrapper for accepting sequence requests that
        want a raw return, not json
        """
        id = get_id(id, kwd.get('format', None))
        reference = is_true(kwd.get('reference', False))
        assert reference
        region = self.app.genomes.reference(trans, dbkey=id, chrom=chrom, low=low, high=high)
        return region.sequence
Exemplo n.º 6
0
    def show(self,
             trans,
             id,
             hda_ldda='hda',
             data_type=None,
             provider=None,
             **kwd):
        """
        GET /api/datasets/{encoded_dataset_id}
        Displays information about and/or content of a dataset.
        """
        # Get dataset.
        try:
            dataset = self.get_hda_or_ldda(trans,
                                           hda_ldda=hda_ldda,
                                           dataset_id=id)
        except Exception as e:
            return str(e)

        # Use data type to return particular type of data.
        try:
            if data_type == 'state':
                rval = self._dataset_state(trans, dataset)
            elif data_type == 'converted_datasets_state':
                rval = self._converted_datasets_state(
                    trans, dataset, kwd.get('chrom', None),
                    is_true(kwd.get('retry', False)))
            elif data_type == 'data':
                rval = self._data(trans, dataset, **kwd)
            elif data_type == 'features':
                rval = self._search_features(trans, dataset, kwd.get('query'))
            elif data_type == 'raw_data':
                rval = self._raw_data(trans, dataset, provider, **kwd)
            elif data_type == 'track_config':
                rval = self.get_new_track_config(trans, dataset)
            elif data_type == 'genome_data':
                rval = self._get_genome_data(trans, dataset,
                                             kwd.get('dbkey', None))
            else:
                # Default: return dataset as dict.
                if hda_ldda == 'hda':
                    return self.hda_serializer.serialize_to_view(
                        trans, dataset, view=kwd.get('view', 'detailed'))
                else:
                    rval = dataset.to_dict()

        except Exception as e:
            rval = "Error in dataset API at listing contents: " + str(e)
            log.error(rval + ": %s" % str(e), exc_info=True)
            trans.response.status = 500
        return rval
Exemplo n.º 7
0
class DatasetsController( BaseAPIController, UsesVisualizationMixin ):

    @web.expose_api
    def index( self, trans, **kwd ):
        """
        GET /api/datasets
        Lists datasets.
        """
        pass
        
    @web.expose_api
    def show( self, trans, id, hda_ldda='hda', data_type=None, **kwd ):
        """
        GET /api/datasets/{encoded_dataset_id}
        Displays information about and/or content of a dataset.
        """
        
        # Get dataset.
        try:
            dataset = self.get_hda_or_ldda( trans, hda_ldda=hda_ldda, dataset_id=id )
        except Exception, e:
            return str( e )

        # Use data type to return particular type of data.
        try:
            if data_type == 'state':
                rval = self._dataset_state( trans, dataset )
            elif data_type == 'converted_datasets_state':
                rval = self._converted_datasets_state( trans, dataset, kwd.get( 'chrom', None ), 
                                                       is_true( kwd.get( 'retry', False ) ) )
            elif data_type == 'data':
                rval = self._data( trans, dataset, **kwd )
            elif data_type == 'features':
                rval = self._search_features( trans, dataset, kwd.get( 'query' ) )
            elif data_type == 'raw_data':
                rval = self._raw_data( trans, dataset, **kwd )
            elif data_type == 'track_config':
                rval = self.get_new_track_config( trans, dataset )
            elif data_type == 'genome_data':
                rval = self._get_genome_data( trans, dataset, kwd.get('dbkey', None) )
            else:
                # Default: return dataset as API value.
                rval = dataset.get_api_value()
                
        except Exception, e:
            rval = "Error in dataset API at listing contents: " + str( e )
            log.error( rval + ": %s" % str(e), exc_info=True )
            trans.response.status = 500
Exemplo n.º 8
0
    def show( self, trans, id, num=None, chrom=None, low=None, high=None, **kwd ):
        """
        GET /api/genomes/{id}

        Returns information about build <id>
        """

        # Process kwds.
        id = get_id( id, kwd.get( 'format', None ) )
        reference = is_true( kwd.get( 'reference', False ) )

        # Return info.
        rval = None
        if reference:
            rval = self.app.genomes.reference( trans, dbkey=id, chrom=chrom, low=low, high=high )
        else:
            rval = self.app.genomes.chroms( trans, dbkey=id, num=num, chrom=chrom, low=low )
        return rval
Exemplo n.º 9
0
    def show( self, trans, id, hda_ldda='hda', data_type=None, provider=None, **kwd ):
        """
        GET /api/datasets/{encoded_dataset_id}
        Displays information about and/or content of a dataset.
        """
        # Get dataset.
        try:
            dataset = self.get_hda_or_ldda( trans, hda_ldda=hda_ldda, dataset_id=id )
        except Exception as e:
            return str( e )

        # Use data type to return particular type of data.
        try:
            if data_type == 'state':
                rval = self._dataset_state( trans, dataset )
            elif data_type == 'converted_datasets_state':
                rval = self._converted_datasets_state( trans, dataset, kwd.get( 'chrom', None ),
                                                       is_true( kwd.get( 'retry', False ) ) )
            elif data_type == 'data':
                rval = self._data( trans, dataset, **kwd )
            elif data_type == 'features':
                rval = self._search_features( trans, dataset, kwd.get( 'query' ) )
            elif data_type == 'raw_data':
                rval = self._raw_data( trans, dataset, provider, **kwd )
            elif data_type == 'track_config':
                rval = self.get_new_track_config( trans, dataset )
            elif data_type == 'genome_data':
                rval = self._get_genome_data( trans, dataset, kwd.get('dbkey', None) )
            elif data_type == 'mzidentml':
                rval = self._mzIdentMLProcess(**kwd)
            else:
                # Default: return dataset as dict.
                if hda_ldda == 'hda':
                    return self.hda_serializer.serialize_to_view( dataset,
                                                                  view=kwd.get( 'view', 'detailed' ), user=trans.user, trans=trans )
                else:
                    rval = dataset.to_dict()
        except Exception as e:
            rval = "Error in dataset API at listing contents: " + str( e )
            log.error( rval + ": %s" % str(e), exc_info=True )
            trans.response.status = 500
        return rval