Beispiel #1
0
def retrieve_sample_data(trait, dataset, samplelist=None):
    if samplelist == None:
        samplelist = []

    if dataset.type == "Temp":
        results = Redis.get(trait.name).split()
    else:
        results = dataset.retrieve_sample_data(trait.name)

    # Todo: is this necessary? If not remove
    trait.data.clear()

    if results:
        if dataset.type == "Temp":
            all_samples_ordered = dataset.group.all_samples_ordered()
            for i, item in enumerate(results):
                try:
                    trait.data[all_samples_ordered[i]] = webqtlCaseData(all_samples_ordered[i], float(item))
                except:
                    pass
        else:
            for item in results:
                name, value, variance, num_cases, name2 = item
                if not samplelist or (samplelist and name in samplelist):
                    trait.data[name] = webqtlCaseData(*item)   #name, value, variance, num_cases)
    return trait
Beispiel #2
0
    def __init__(self, dataset, sample_names, this_trait, sample_group_type,
                 header):

        self.dataset = dataset
        self.this_trait = this_trait
        self.sample_group_type = sample_group_type  # primary or other
        self.header = header

        self.sample_list = []  # The actual list
        self.sample_attribute_values = {}

        self.get_attributes()
        print("camera: attributes are:", pf(self.attributes))

        if self.this_trait and self.dataset and self.dataset.type == 'ProbeSet':
            self.get_extra_attribute_values()

        for counter, sample_name in enumerate(sample_names, 1):
            sample_name = sample_name.replace("_2nd_", "")

            #ZS - If there's no value for the sample/strain, create the sample object (so samples with no value are still displayed in the table)
            try:
                sample = self.this_trait.data[sample_name]
            except KeyError:
                print("No sample %s, let's create it now" % sample_name)
                sample = webqtlCaseData.webqtlCaseData(sample_name)

            #sampleNameAdd = ''
            #if fd.RISet == 'AXBXA' and sampleName in ('AXB18/19/20','AXB13/14','BXA8/17'):
            #    sampleNameAdd = HT.Href(url='/mouseCross.html#AXB/BXA', text=HT.Sup('#'), Class='fs12', target="_blank")
            sample.extra_info = {}
            if self.dataset.group.name == 'AXBXA' and sample_name in (
                    'AXB18/19/20', 'AXB13/14', 'BXA8/17'):
                sample.extra_info['url'] = "/mouseCross.html#AXB/BXA"
                sample.extra_info['css_class'] = "fs12"

            print("  type of sample:", type(sample))

            if sample_group_type == 'primary':
                sample.this_id = "Primary_" + str(counter)
            else:
                sample.this_id = "Other_" + str(counter)

            #### For extra attribute columns; currently only used by several datasets - Zach
            if self.sample_attribute_values:
                sample.extra_attributes = self.sample_attribute_values.get(
                    sample_name, {})
                print("sample.extra_attributes is",
                      pf(sample.extra_attributes))

            self.sample_list.append(sample)

        print("self.attributes is", pf(self.attributes))

        self.do_outliers()
        #do_outliers(the_samples)
        print("*the_samples are [%i]: %s" %
              (len(self.sample_list), pf(self.sample_list)))
        for sample in self.sample_list:
            print("apple:", type(sample), sample)
Beispiel #3
0
    def __init__(self,
                 dataset,
                 sample_names,
                 this_trait,
                 sample_group_type,
                 header):

        self.dataset = dataset
        self.this_trait = this_trait
        self.sample_group_type = sample_group_type    # primary or other
        self.header = header

        self.sample_list = [] # The actual list
        self.sample_attribute_values = {}

        self.get_attributes()
        print("camera: attributes are:", pf(self.attributes))

        if self.this_trait and self.dataset and self.dataset.type == 'ProbeSet':
            self.get_extra_attribute_values()

        for counter, sample_name in enumerate(sample_names, 1):
            sample_name = sample_name.replace("_2nd_", "")

            #ZS - If there's no value for the sample/strain, create the sample object (so samples with no value are still displayed in the table)
            try:
                sample = self.this_trait.data[sample_name]
            except KeyError:
                print("No sample %s, let's create it now" % sample_name)
                sample = webqtlCaseData.webqtlCaseData(sample_name)
            
            #sampleNameAdd = ''
            #if fd.RISet == 'AXBXA' and sampleName in ('AXB18/19/20','AXB13/14','BXA8/17'):
            #    sampleNameAdd = HT.Href(url='/mouseCross.html#AXB/BXA', text=HT.Sup('#'), Class='fs12', target="_blank")
            sample.extra_info = {}
            if self.dataset.group.name == 'AXBXA' and sample_name in ('AXB18/19/20','AXB13/14','BXA8/17'):   
                sample.extra_info['url'] = "/mouseCross.html#AXB/BXA"
                sample.extra_info['css_class'] = "fs12" 

            print("  type of sample:", type(sample))

            if sample_group_type == 'primary':
                sample.this_id = "Primary_" + str(counter)
            else:
                sample.this_id = "Other_" + str(counter)

            #### For extra attribute columns; currently only used by several datasets - Zach
            if self.sample_attribute_values:
                sample.extra_attributes = self.sample_attribute_values.get(sample_name, {})
                print("sample.extra_attributes is", pf(sample.extra_attributes))
            
            self.sample_list.append(sample)

        print("self.attributes is", pf(self.attributes))

        self.do_outliers()
        #do_outliers(the_samples)
        print("*the_samples are [%i]: %s" % (len(self.sample_list), pf(self.sample_list)))
        for sample in self.sample_list:
            print("apple:", type(sample), sample)
Beispiel #4
0
    def retrieve_sample_data(self, samplelist=None):
        if samplelist == None:
            samplelist = []

        #assert self.dataset

        #if self.cellid:
        #     #Probe Data
        #    query = '''
        #            SELECT
        #                    Strain.Name, ProbeData.value, ProbeSE.error, ProbeData.Id
        #            FROM
        #                    (ProbeData, ProbeFreeze, ProbeSetFreeze, ProbeXRef,
        #                    Strain, Probe, ProbeSet)
        #            left join ProbeSE on
        #                    (ProbeSE.DataId = ProbeData.Id AND ProbeSE.StrainId = ProbeData.StrainId)
        #            WHERE
        #                    Probe.Name = '%s' AND ProbeSet.Name = '%s' AND
        #                    Probe.ProbeSetId = ProbeSet.Id AND
        #                    ProbeXRef.ProbeId = Probe.Id AND
        #                    ProbeXRef.ProbeFreezeId = ProbeFreeze.Id AND
        #                    ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id AND
        #                    ProbeSetFreeze.Name = '%s' AND
        #                    ProbeXRef.DataId = ProbeData.Id AND
        #                    ProbeData.StrainId = Strain.Id
        #            Order BY
        #                    Strain.Name
        #            ''' % (self.cellid, self.name, self.dataset.name)
        #
        #else:
        results = self.dataset.retrieve_sample_data(self.name)

        # Todo: is this necessary? If not remove
        self.data.clear()

        if self.dataset.group.parlist:
            all_samples_ordered = (self.dataset.group.parlist +
                                   self.dataset.group.f1list +
                                   self.dataset.group.samplelist)
        elif self.dataset.group.f1list:
            all_samples_ordered = self.dataset.group.f1list + self.dataset.group.samplelist
        else:
            all_samples_ordered = self.dataset.group.samplelist

        if results:
            for item in results:
                name, value, variance, num_cases = item
                if not samplelist or (samplelist and name in samplelist):
                    self.data[name] = webqtlCaseData(*item)   #name, value, variance, num_cases)
Beispiel #5
0
    def retrieve_sample_data(self, samplelist=None):
        if samplelist == None:
            samplelist = []

        results = self.dataset.retrieve_sample_data(self.name)

        # Todo: is this necessary? If not remove
        self.data.clear()

        all_samples_ordered = self.dataset.group.all_samples_ordered()

        if results:
            for item in results:
                name, value, variance, num_cases, name2 = item
                if not samplelist or (samplelist and name in samplelist):
                    self.data[name] = webqtlCaseData(*item)   #name, value, variance, num_cases)
Beispiel #6
0
    def retrieve_sample_data(self, samplelist=None):
        if samplelist == None:
            samplelist = []

        results = self.dataset.retrieve_sample_data(self.name)

        # Todo: is this necessary? If not remove
        self.data.clear()

        all_samples_ordered = self.dataset.group.all_samples_ordered()

        if results:
            for item in results:
                name, value, variance, num_cases = item
                if not samplelist or (samplelist and name in samplelist):
                    self.data[name] = webqtlCaseData(*item)   #name, value, variance, num_cases)
Beispiel #7
0
    def __init__(self,
                 dataset,
                 sample_names,
                 this_trait,
                 sample_group_type="primary",
                 header="Samples"):

        self.dataset = dataset
        self.this_trait = this_trait
        self.sample_group_type = sample_group_type  # primary or other
        self.header = header

        self.sample_list = []  # The actual list
        self.sample_attribute_values = {}

        self.get_attributes()

        if self.this_trait and self.dataset:
            self.get_extra_attribute_values()

        for counter, sample_name in enumerate(sample_names, 1):
            sample_name = sample_name.replace("_2nd_", "")

            # ZS: self.this_trait will be a list if it is a Temp trait
            if isinstance(self.this_trait, list):
                sample = webqtlCaseData.webqtlCaseData(name=sample_name)
                if counter <= len(self.this_trait):
                    if isinstance(self.this_trait[counter - 1],
                                  (bytes, bytearray)):
                        if (self.this_trait[counter -
                                            1].decode("utf-8").lower() != 'x'):
                            sample = webqtlCaseData.webqtlCaseData(
                                name=sample_name,
                                value=float(self.this_trait[counter - 1]))
                    else:
                        if (self.this_trait[counter - 1].lower() != 'x'):
                            sample = webqtlCaseData.webqtlCaseData(
                                name=sample_name,
                                value=float(self.this_trait[counter - 1]))
            else:
                # ZS - If there's no value for the sample/strain,
                # create the sample object (so samples with no value
                # are still displayed in the table)
                try:
                    sample = self.this_trait.data[sample_name]
                except KeyError:
                    sample = webqtlCaseData.webqtlCaseData(name=sample_name)

            sample.extra_info = {}
            if (self.dataset.group.name == 'AXBXA'
                    and sample_name in ('AXB18/19/20', 'AXB13/14', 'BXA8/17')):
                sample.extra_info['url'] = "/mouseCross.html#AXB/BXA"
                sample.extra_info['css_class'] = "fs12"

            sample.this_id = str(counter)

            # ZS: For extra attribute columns; currently only used by
            # several datasets
            if self.sample_attribute_values:
                sample.extra_attributes = self.sample_attribute_values.get(
                    sample_name, {})

            self.sample_list.append(sample)

        self.se_exists = any(sample.variance for sample in self.sample_list)
        self.num_cases_exists = any(sample.num_cases
                                    for sample in self.sample_list)

        first_attr_col = self.get_first_attr_col()
        for sample in self.sample_list:
            sample.first_attr_col = first_attr_col

        self.do_outliers()
Beispiel #8
0
    def __init__(self,
                 dataset,
                 sample_names,
                 this_trait,
                 sample_group_type="primary",
                 header="Samples"):

        self.dataset = dataset
        self.this_trait = this_trait
        self.sample_group_type = sample_group_type  # primary or other
        self.header = header

        self.sample_list = []  # The actual list
        self.sample_attribute_values = {}

        self.get_attributes()

        #self.sample_qnorm = get_transform_vals(self.dataset, this_trait)

        if self.this_trait and self.dataset:
            self.get_extra_attribute_values()

        for counter, sample_name in enumerate(sample_names, 1):
            sample_name = sample_name.replace("_2nd_", "")

            if type(
                    self.this_trait
            ) is list:  #ZS: self.this_trait will be a list if it is a Temp trait
                if counter <= len(self.this_trait) and str(
                        self.this_trait[counter - 1]).upper() != 'X':
                    sample = webqtlCaseData.webqtlCaseData(
                        name=sample_name,
                        value=float(self.this_trait[counter - 1]))
                else:
                    sample = webqtlCaseData.webqtlCaseData(name=sample_name)
            else:
                #ZS - If there's no value for the sample/strain, create the sample object (so samples with no value are still displayed in the table)
                try:
                    sample = self.this_trait.data[sample_name]
                except KeyError:
                    #logger.debug("No sample %s, let's create it now" % sample_name)
                    sample = webqtlCaseData.webqtlCaseData(name=sample_name)

            sample.extra_info = {}
            if self.dataset.group.name == 'AXBXA' and sample_name in (
                    'AXB18/19/20', 'AXB13/14', 'BXA8/17'):
                sample.extra_info['url'] = "/mouseCross.html#AXB/BXA"
                sample.extra_info['css_class'] = "fs12"

            sample.this_id = str(counter)

            #### For extra attribute columns; currently only used by several datasets - Zach
            if self.sample_attribute_values:
                sample.extra_attributes = self.sample_attribute_values.get(
                    sample_name, {})
                #logger.debug("sample.extra_attributes is", pf(sample.extra_attributes))

            self.sample_list.append(sample)

        #logger.debug("attribute vals are", pf(self.sample_attribute_values))

        self.do_outliers()
Beispiel #9
0
 def setUp(self):
     self.w = webqtlCaseData(name="Test",
                             value=0,
                             variance=0.0,
                             num_cases=10,
                             name2="Test2")