class MAFRecord(Message):
    sample_id = StringField(1)
    patient_id = StringField(2)
    aliquot_id = StringField(3)
    hugo_symbol = StringField(4)
    uniprot_aapos = IntegerField(5, variant=Variant.INT32)
    uniprot_id = StringField(6)
    variant_classification = StringField(7)
    cohort = IntegerField(8, repeated=True)


class MAFRecordList(Message):
    items = MessageField(MAFRecord, 1, repeated=True)
    cohort_set = MessageField(PlotDataCohortInfo, 2, repeated=True)

SeqPeekDataEndpointsAPI = endpoints_api(name='seqpeek_data_api', version='v1',
                                        description='Endpoints used by the seqpeek visualization in the web application.')


def maf_array_to_record(maf_array):
    data_points = []
    for item in maf_array:
        data_points.append(MAFRecord(**item))

    return data_points


@SeqPeekDataEndpointsAPI.api_class(resource_name='data_endpoints')
class SeqPeekDataAccessAPI(remote.Service):

    def create_response(self, maf_with_cohorts):
Example #2
0
    num_patients_wo_y = IntegerField(7, required=True)
    num_samples_wo_y = IntegerField(8, required=True)


class PlotDataResponse(Message):
    types = MessageField(PlotDataTypes, 1, required=True)
    labels = MessageField(PlotDataFeatureLabels, 2, required=True)
    items = MessageField(PlotDataPoint, 3, repeated=True)
    cohort_set = MessageField(PlotDataCohortInfo, 4, repeated=True)
    counts = MessageField(PlotDatapointCount, 5)
    pairwise_result = MessageField(PairwiseResults, 6, required=False)
    xUnits = StringField(7, required=False)
    yUnits = StringField(8, required=False)


FeatureDataEndpointsAPI = endpoints_api(name='feature_data_api', version='v1',
                                        description='Endpoints for feature data used by the web application.')


@FeatureDataEndpointsAPI.api_class(resource_name='feature_data_endpoints')
class FeatureDataEndpoints(remote.Service):
    def get_counts(self, data):
        total_num_patients = []
        total_num_samples = []
        num_samples_w_xy = []
        num_patients_w_xy = []
        num_samples_wo_x = []
        num_samples_wo_y = []
        num_patients_wo_x = []
        num_patients_wo_y = []

        result = {}
Example #3
0
        elif datatype == METH_FEATURE_TYPE:
            return METHSearcher()
        elif datatype == CNVR_FEATURE_TYPE:
            return CNVRSearcher()
        elif datatype == RPPA_FEATURE_TYPE:
            return RPPASearcher()
        elif datatype == MIRN_FEATURE_TYPE:
            return MIRNSearcher()
        elif datatype == GNAB_FEATURE_TYPE:
            return GNABSearcher()
        #TODO build a full search on all features
        #elif datatype == ALL:
        #    return FullSearcher()
        raise InvalidDataTypeException("Invalid datatype '{datatype}'".format(datatype=datatype))

FeatureAccessEndpointsAPI = endpoints_api(name='feature_type_api', version='v1',
                                          description='Endpoints used by the web application to return features.')
@FeatureAccessEndpointsAPI.api_class(resource_name='feature_type_endpoints')
class FeatureAccessEndpoints(remote.Service):
    @endpoints_method(FeatureTypeSearchRequest, FeatureTypeList,
                      path='feature_search', http_method='GET', name='feature_access.FeatureSearch')
    def feature_search(self, request):
        """ Used by the web application."""
        try:
            datatype = request.datatype
            searcher = FeatureDefinitionSearcherFactory.build_from_datatype(datatype)
            parameters = {}
            for message in request.all_fields():
                field_name = message.name
                if field_name != 'datatype':
                    value = request.get_assigned_value(field_name)
                    if value is not None: