Esempio n. 1
0
    def test_genecounts_multiple_records_and_stages_no_gaps(self):

        rec1 = self.makeIndexRecord(1)
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 100, '18.5')
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 200, 'E')
        self.makeIndexStage(rec1, 20, 'RT-PCR', 100, '18.5')
        self.makeIndexStage(rec1, 20, 'RT-PCR', 200, 'E')

        rec2 = self.makeIndexRecord(1)
        self.makeIndexStage(rec2, 20, 'RT-PCR', 100, '18.5')
        self.makeIndexStage(rec2, 20, 'RT-PCR', 200, 'E')

        rec3 = self.makeIndexRecord(1)
        self.makeIndexStage(rec3, 10, 'Prot-sxn', 100, '18.5')
        self.makeIndexStage(rec3, 20, 'RT-PCR', 100, '18.5')

        recs = [rec1, rec2, rec3]
        summary = gxdindex_aggregator.aggregateGenesByAssayAndStage(recs)

        expected = {
            'stages': ['18.5', 'E'],
            'assays': [{
                'indexassay': 'Prot-sxn',
                'stages': [2, 1]
            }, {
                'indexassay': 'RT-PCR',
                'stages': [3, 2]
            }]
        }

        self.assertEqual(expected, summary)
 def test_genecounts_multiple_records_and_stages_no_gaps(self):
     
     rec1 = self.makeIndexRecord(1)
     self.makeIndexStage(rec1, 10, 'Prot-sxn', 100, '18.5')
     self.makeIndexStage(rec1, 10, 'Prot-sxn', 200, 'E')
     self.makeIndexStage(rec1, 20, 'RT-PCR', 100, '18.5')
     self.makeIndexStage(rec1, 20, 'RT-PCR', 200, 'E')
     
     rec2 = self.makeIndexRecord(1)
     self.makeIndexStage(rec2, 20, 'RT-PCR', 100, '18.5')
     self.makeIndexStage(rec2, 20, 'RT-PCR', 200, 'E')
     
     rec3 = self.makeIndexRecord(1)
     self.makeIndexStage(rec3, 10, 'Prot-sxn', 100, '18.5')
     self.makeIndexStage(rec3, 20, 'RT-PCR', 100, '18.5')
     
     recs = [rec1, rec2, rec3]
     summary = gxdindex_aggregator.aggregateGenesByAssayAndStage(recs)
     
     expected = {'stages':['18.5','E'], 
                 'assays':[{'indexassay':'Prot-sxn', 'stages':[2,1]},
                           {'indexassay':'RT-PCR', 'stages':[3,2]}]
                 }
    
     self.assertEqual(expected, summary)
Esempio n. 3
0
    def test_genecounts_manyassays_onestage(self):

        rec1 = self.makeIndexRecord(1)
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 100, '18.5')
        self.makeIndexStage(rec1, 20, 'RT-PCR', 100, '18.5')
        self.makeIndexStage(rec1, 30, 'RT-PCR2', 100, '18.5')

        recs = [rec1]
        summary = gxdindex_aggregator.aggregateGenesByAssayAndStage(recs)

        expected = {
            'stages': ['18.5'],
            'assays': [{
                'indexassay': 'Prot-sxn',
                'stages': [1]
            }, {
                'indexassay': 'RT-PCR',
                'stages': [1]
            }, {
                'indexassay': 'RT-PCR2',
                'stages': [1]
            }]
        }

        self.assertEqual(expected, summary)
 def test_genecounts_onerecord(self):
     
     rec1 = self.makeIndexRecord(1)
     self.makeIndexStage(rec1, 10, 'Prot-sxn', 100, '13.5')
     
     recs = [rec1]
     summary = gxdindex_aggregator.aggregateGenesByAssayAndStage(recs)
     
     expected = {'stages':['13.5'], 
                 'assays':[{'indexassay':'Prot-sxn', 'stages':[1]}]
                 }
    
     self.assertEqual(expected, summary)
Esempio n. 5
0
def renderIndexSummary(form):
    
    # default return values
    reference = None
    refSortedIndexRecords = None
    marker = None
    template = "gxdindex_summary"

    # gather index records from the DB
    indexRecords = form.queryIndexRecords()
    
    # check for truncation by default limits
    resultsTruncated = form.index_limit.data and \
            (len(indexRecords) >= form.index_limit.data)
            
    # generate age/assay count table
    countSummary = gxdindex_aggregator.aggregateGenesByAssayAndStage(indexRecords)
    
    # send to lit-index by reference, if passed a ref ID
    if form.refs_id.data:
        reference = reference_service.get_by_jnum_id(form.refs_id.data)
        template = "gxdindex_summary_by_ref"

    # send to lit-index by marker, if passed a marker ID
    if form.marker_id.data:
        
        # re-order indexRecords - this page has specific sort
        indexRecords.sort(key=lambda r: r.reference.short_citation)
        
        marker = marker_hunter.getMarkerByMGIID(form.marker_id.data)
        template = "gxdindex_summary_by_marker"
        
    # send to lit-index by age / assay, if passed age and assay_type
    if form.age.data and form.assay_type.data:
        template = "gxdindex_summary_by_age_assay"
    
    return render_template("summary/gxdindex/%s.html" % template,
                           indexRecords=indexRecords,
                           resultsTruncated=resultsTruncated,
                           countSummary=countSummary,
                           reference=reference,
                           marker=marker,
                           form=form,
                           queryString=form.argString())
Esempio n. 6
0
def renderIndexSummary(form):
    
    # default return values
    reference = None
    refSortedIndexRecords = None
    marker = None
    template = "gxdindex_summary"

    # gather index records from the DB
    indexRecords = form.queryIndexRecords()
    
    # check for truncation by default limits
    resultsTruncated = form.index_limit.data and \
            (len(indexRecords) >= form.index_limit.data)
            
    # generate age/assay count table
    countSummary = gxdindex_aggregator.aggregateGenesByAssayAndStage(indexRecords)
    
    # send to lit-index by reference, if passed a ref ID
    if form.refs_id.data:
        reference = reference_service.get_by_jnum_id(form.refs_id.data)
        template = "gxdindex_summary_by_ref"

    # send to lit-index by marker, if passed a marker ID
    if form.marker_id.data:
        
        # re-order indexRecords - this page has specific sort
        indexRecords.sort(key=lambda r: r.reference.short_citation)
        
        marker = marker_hunter.getMarkerByMGIID(form.marker_id.data)
        template = "gxdindex_summary_by_marker"
        
    # send to lit-index by age / assay, if passed age and assay_type
    if form.age.data and form.assay_type.data:
        template = "gxdindex_summary_by_age_assay"
    
    return render_template("summary/gxdindex/%s.html" % template,
                           indexRecords=indexRecords,
                           resultsTruncated=resultsTruncated,
                           countSummary=countSummary,
                           reference=reference,
                           marker=marker,
                           form=form,
                           queryString=form.argString())
Esempio n. 7
0
    def test_genecounts_manystages_oneassay(self):

        rec1 = self.makeIndexRecord(1)
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 100, '13.5')
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 200, '15.5')
        self.makeIndexStage(rec1, 10, 'Prot-sxn', 300, 'A')

        recs = [rec1]
        summary = gxdindex_aggregator.aggregateGenesByAssayAndStage(recs)

        expected = {
            'stages': ['13.5', '15.5', 'A'],
            'assays': [{
                'indexassay': 'Prot-sxn',
                'stages': [1, 1, 1]
            }]
        }

        self.assertEqual(expected, summary)
 def test_genecounts_empty(self):
     
     summary = gxdindex_aggregator.aggregateGenesByAssayAndStage([])
    
     self.assertEqual({'stages':[], 'assays':[]}, summary)
Esempio n. 9
0
    def test_genecounts_empty(self):

        summary = gxdindex_aggregator.aggregateGenesByAssayAndStage([])

        self.assertEqual({'stages': [], 'assays': []}, summary)