Example #1
0
    def test_list_techniques(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        res = epidb.add_technique("illumina 450k", "illumina system",
                                  {"price": "low"}, self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_technique(
            "RRBS", "Reduced representation bisulfite sequencing", {},
            self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        res, techniques = epidb.list_techniques(self.admin_key)
        self.assertSuccess(res, techniques)

        self.assertEqual(len(techniques), 3)

        technique_names = [x[1] for x in techniques]

        self.assertTrue("illumina 450k" in technique_names)
        self.assertTrue("RRBS" in technique_names)
        self.assertTrue("ChIP-seq" in technique_names)
Example #2
0
    def test_duplicate(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertFailure(res)
Example #3
0
    def test_remove_technique(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        sample_id = self.sample_ids[0]
        regions_data = helpers.load_bed("hg19_chr1_1")
        format = data_info.EXPERIMENTS["hg19_chr1_1"]["format"]

        (res, add_technique_id) = epidb.add_technique(
            "Hypster Technique", "I knew this technique before everybody else",
            {}, self.admin_key)
        self.assertSuccess(res, add_technique_id)

        # adding two experiments with the same data should work
        res, eid = epidb.add_experiment("test_exp1", "hg19", "Methylation",
                                        sample_id, "Hypster Technique",
                                        "ENCODE", "desc1", regions_data,
                                        format, None, self.admin_key)
        self.assertSuccess(res)

        res = epidb.remove(add_technique_id, self.admin_key)
        self.assertFailure(res)

        res = epidb.remove(eid, self.admin_key)
        self.assertSuccess(res)

        res = epidb.remove(add_technique_id, self.admin_key)
        self.assertSuccess(res)
Example #4
0
    def test_add_techniques(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        res, info = epidb.info(res[1], self.admin_key)
        self.assertSuccess(res, info)
        self.assertEquals(info[0]["name"], 'ChIP-seq')
        self.assertEquals(info[0]["description"], "ChIP-sequencing")
Example #5
0
    def test_list_similar_techniques(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        res, similar_techniques = epidb.list_similar_techniques(
            "chipseq", self.admin_key)
        self.assertSuccess(res, similar_techniques)
        self.assertEquals(similar_techniques[0][1], 'ChIP-seq')
Example #6
0
    def test_empty_result(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        s, g1 = epidb.add_genome("hg19", "", "chr1  10000\nchr2   30000",
                                 self.admin_key)
        self.assertSuccess(s, g1)
        s, t1 = epidb.add_technique("chip-seq", "", None, self.admin_key)
        self.assertSuccess(s, t1)

        (s, q) = epidb.select_regions(None, "hg19", None, None, "chip-seq",
                                      None, None, 1000, 2000, self.admin_key)
        self.assertSuccess(s, q)
        (s, req) = epidb.get_regions(q, "CHROMOSOME,START,END", self.admin_key)
        self.assertSuccess(s, q)
        rs = self.get_regions_request(req)
        self.assertEquals(rs, "")
    def test_enriochment_overlap(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        sample_id = self.sample_ids[0]

        broad_peak_format = ",".join([
            "CHROMOSOME",
            "START",
            "END",
            "NAME",
            "SCORE",
            "STRAND",
            "SIGNAL_VALUE",
            "P_VALUE",
            "Q_VALUE",
        ])

        with open("data/wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed", 'r') as f:
            file_data = f.read()
            (res, exp) = epidb.add_experiment(
                "wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed", "hg19",
                "H3k4me3", "s1", "ChIPseq", "ENCODE",
                "wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed from ENCODE",
                file_data, broad_peak_format, None, self.admin_key)
            self.assertSuccess(res, exp)
            res, q_exp = epidb.select_experiments(
                "wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed", "chr1", None,
                None, self.admin_key)
            self.assertSuccess(res, q_exp)

        ## Testting with all overlaps

        res, q_tiling = epidb.tiling_regions(10000, "hg19", None,
                                             self.admin_key)
        res, r_id = epidb.enrich_regions_overlap(
            q_exp, q_tiling,
            {"H3k4me3": ["wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed"]},
            "hg19", self.admin_key)

        result = self.get_regions_request(r_id)
        self.assertEquals(result['enrichment']['results'][0]['p_value_log'],
                          float('Inf'))
        self.assertEquals(
            result, {
                'enrichment': {
                    'count_query_regions':
                    3074,
                    'count_universe_regions':
                    313669,
                    'results': [{
                        'c': 0,
                        'b': 30861,
                        'description': '',
                        'p_value_log': float('Inf'),
                        'experiment_size': 33270,
                        'database_name': 'H3k4me3',
                        'max_rank': 1,
                        'support_rank': 1,
                        'dataset':
                        'wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed',
                        'biosource': 'K562',
                        'odd_rank': 1,
                        'odds_ratio': float('Inf'),
                        'epigenetic_mark': 'H3k4me3',
                        'mean_rank': 1.0,
                        'log_rank': 1,
                        'support': 3066,
                        'd': 279742,
                        'msg': '',
                        'error': False
                    }]
                }
            })

        ## Testting without any overlap
        _, q_input = epidb.input_regions("hg19", "chr1\t1\t2", self.admin_key)
        res, r_id = epidb.enrich_regions_overlap(
            q_input, q_tiling,
            {"H3k4me3": ["wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed"]},
            "hg19", self.admin_key)

        result = self.get_regions_request(r_id)
        self.assertEquals(result['enrichment']['results'][0]['p_value_log'],
                          0.0)
        self.assertEquals(
            {
                'enrichment': {
                    'count_query_regions':
                    1,
                    'count_universe_regions':
                    313669,
                    'results': [{
                        'c': 1,
                        'b': 33927,
                        'description': '',
                        'p_value_log': 0.0,
                        'experiment_size': 33270,
                        'database_name': 'H3k4me3',
                        'max_rank': 1,
                        'support_rank': 1,
                        'dataset':
                        'wgEncodeBroadHistoneH1hescH3k4me3StdPk.bed',
                        'biosource': 'K562',
                        'odd_rank': 1,
                        'odds_ratio': 0.0,
                        'epigenetic_mark': 'H3k4me3',
                        'mean_rank': 1.0,
                        'log_rank': 1,
                        'support': 0,
                        'd': 279741,
                        'error': False,
                        'msg': ''
                    }]
                }
            }, result)
Example #8
0
    def test_aggregation_bug_on_normalfields_better_data(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        res = epidb.add_technique("ChIP-seq", "ChIP-sequencing", {},
                                  self.admin_key)
        self.assertSuccess(res)

        sample_id = self.sample_ids[0]

        broad_peak_format = ",".join([
            "CHROMOSOME",
            "START",
            "END",
            "NAME",
            "SCORE",
            "STRAND",
            "SIGNAL_VALUE",
            "P_VALUE",
            "Q_VALUE",
        ])

        with open("data/wgEncodeBroadHistoneH1hescH3k27me3StdPk.bed",
                  'r') as f:
            file_data = f.read()
            (res, a_1) = epidb.add_experiment(
                "wgEncodeBroadHistoneH1hescH3k27me3StdPk.bed", "hg19",
                "H3k4me3", "s1", "ChIPseq", "ENCODE",
                "wgEncodeBroadHistoneH1hescH3k27me3StdPk.bed from ENCODE",
                file_data, broad_peak_format, None, self.admin_key)
            self.assertSuccess(res, a_1)
            res, q_exp = epidb.select_experiments(
                "wgEncodeBroadHistoneH1hescH3k27me3StdPk.bed", "chr1", None,
                None, self.admin_key)
            self.assertSuccess(res, q_exp)

        # Insert annotation
        cpg_island = ",".join([
            "CHROMOSOME", "START", "END", "NAME", "LENGTH", "NUM_CPG",
            "NUM_GC", "PER_CPG", "PER_CG", "OBS_EXP"
        ])

        with open("data/cpgIslandExtFull.txt", 'r') as f:
            file_data = f.read()
            (res, a_1) = epidb.add_annotation("Cpg Islands", "hg19",
                                              "Complete CpG islands",
                                              file_data, cpg_island, None,
                                              self.admin_key)
            self.assertSuccess(res, a_1)
            res, q_cgi = epidb.select_annotations("Cpg Islands", "hg19", None,
                                                  None, None, self.admin_key)
            self.assertSuccess(res, q_cgi)

        res, qid_3 = epidb.aggregate(q_exp, q_cgi, "SCORE", self.admin_key)
        self.assertSuccess(res, qid_3)

        res, chr_sizes = epidb.select_annotations("Chromosomes size for hg19",
                                                  "hg19", None, None, None,
                                                  self.admin_key)
        res, qid_5 = epidb.aggregate(qid_3, chr_sizes, "@AGG.COUNT",
                                     self.admin_key)

        status, req = epidb.get_regions(
            qid_5,
            "CHROMOSOME,@AGG.MIN,@AGG.MAX,@AGG.MEDIAN,@AGG.MEAN,@AGG.VAR,@AGG.SD,@AGG.COUNT",
            self.admin_key)
        rs = self.get_regions_request(req)

        expected = 'chr1\t0.0000\t8.0000\t0.0000\t0.5142\t0.5301\t0.7281\t2462'
        self.assertEquals(rs, expected)