Пример #1
0
    def test_genome_empty(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        hg18_genome_info = None
        with open("data/genomes/hg18", 'r') as f:
            hg18_genome_info = f.read().replace(",", "")

        mm9_genome_info = None
        with open("data/genomes/mm9", 'r') as f:
            mm9_genome_info = f.read().replace(",", "")

        res = epidb.add_genome("hg18", "Human genome 18", hg18_genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_genome("mm9", "Mouse genome 9", mm9_genome_info,
                               self.admin_key)
        self.assertSuccess(res)

        (res, genomes) = epidb.list_genomes(self.admin_key)
        self.assertEqual(len(genomes), 2)

        genome_names = [x[1] for x in genomes]
        self.assertTrue("hg18" in genome_names)
        self.assertTrue("mm9" in genome_names)
Пример #2
0
    def test_list_annotations(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        genome_info = None
        with open("data/genomes/hg19", 'r') as f:
            genome_info = f.read().replace(",", "")

        file_data = None
        with open("data/cpgIslandExt.txt", 'r') as f:
            file_data = f.read()

        res = epidb.add_genome("hg19", "Human genome 19", genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_annotation(
            "Cpg Islands", "hg19", "CpG islands are associated ...", file_data,
            "", {
                "url":
                "genome.ucsc.edu/cgi-bin/hgTables?db=hg19&hgta_group=regulation&hgta_track=cpgIslandExt&hgta_table=cpgIslandExt&hgta_doSchema=describe+table+schema"
            }, self.admin_key)
        self.assertSuccess(res)

        res = epidb.add_genome("hg19a", "Human genome 19a", genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_annotation(
            "Cpg Islands", "hg19a", "CpG islands are associated ...",
            file_data, "", {
                "url":
                "genome.ucsc.edu/cgi-bin/hgTables?db=hg19&hgta_group=regulation&hgta_track=cpgIslandExt&hgta_table=cpgIslandExt&hgta_doSchema=describe+table+schema"
            }, self.admin_key)
        self.assertSuccess(res)

        res = epidb.add_genome("hg19b", "Human genome 19b", genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_annotation(
            "Cpg Islands", "hg19b", "CpG islands are associated ...",
            file_data, "", {
                "url":
                "genome.ucsc.edu/cgi-bin/hgTables?db=hg19&hgta_group=regulation&hgta_track=cpgIslandExt&hgta_table=cpgIslandExt&hgta_doSchema=describe+table+schema"
            }, self.admin_key)
        self.assertSuccess(res)

        expected = [
            'okay',
            [['a1', 'Chromosomes size for hg19'], ['a2', 'Cpg Islands'],
             ['a3', 'Chromosomes size for hg19a'], ['a4', 'Cpg Islands'],
             ['a5', 'Chromosomes size for hg19b'], ['a6', 'Cpg Islands']]
        ]
        result = epidb.list_annotations("", self.admin_key)

        self.assertEqual(expected, result)
Пример #3
0
    def test_genome_duplicate(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        hg18_genome_info = None
        with open("data/genomes/hg18", 'r') as f:
            hg18_genome_info = f.read().replace(",", "")

        res = epidb.add_genome("hg18", "Human genome 18", hg18_genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        res = epidb.add_genome("hg18", "Human genome 18 #2", hg18_genome_info,
                               self.admin_key)
        self.assertFailure(res)
Пример #4
0
    def test_not_find_genome_and_in_order_chromosoms(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        genome_data = """chr1 1000000
chr2 900000
chr3 500000
chrX 100000"""
        epidb.add_genome("Genome Example", "Example of Genome for the Manual",
                         genome_data, self.admin_key)

        x = epidb.chromosomes("Genome Example", self.admin_key)
        self.assertEquals(x, [
            'okay',
            [['chr1', 1000000], ['chr2', 900000], ['chr3', 500000],
             ['chrX', 100000]]
        ])
Пример #5
0
    def test_remove_genome(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        genome_info = None
        with open("data/genomes/hg19", 'r') as f:
            genome_info = f.read().replace(",", "")

        res = epidb.add_genome("A1", "ANGELICA", genome_info, self.admin_key)
        self.assertSuccess(res)
        genome_id = res[1]

        res, user = epidb.add_user("user1", "*****@*****.**", "test",
                                   self.admin_key)
        self.assertSuccess(res, user)
        res = epidb.remove(genome_id, user[1])
        self.assertFailure(res)

        res = epidb.add_genome("A1", "XUXA", genome_info, self.admin_key)
        self.assertFailure(res)

        (res, genomes) = epidb.list_genomes(self.admin_key)
        self.assertEqual(len(genomes), 1)
        self.assertEqual(genomes[0][0], genome_id)
        self.assertEqual(genomes[0][1], "A1")

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

        res = epidb.add_genome("A1", "XUXA", genome_info, self.admin_key)
        self.assertSuccess(res)

        status, found = epidb.search("XUXA", "", self.admin_key)
        self.assertEqual(len(found), 2)

        status, found = epidb.search("ANGELICA", "", self.admin_key)
        self.assertEqual(len(found), 0)

        status, genomes = epidb.list_genomes(self.admin_key)
        self.assertSuccess(status, genomes)

        for genome in genomes:
            res = epidb.remove(genome[0], self.admin_key)
            self.assertSuccess(res)
            res, anns = epidb.list_annotations(genome[1], self.admin_key)
            self.assertEqual(len(anns), 0)
Пример #6
0
    def test_list_annotations2(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        res = epidb.add_genome("GRCh38", "GRCh38",
                               "chr1 1000000\nchr2 2000000", self.admin_key)
        self.assertSuccess(res)

        status, anns = epidb.list_annotations("GRCh38", self.admin_key)
        self.assertEqual(anns, [['a1', 'Chromosomes size for GRCh38']])
Пример #7
0
    def test_int_for_string(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        genome_info = None
        with open("data/genomes/hg19", 'r') as f:
            genome_info = f.read().replace(",", "")

        res, msg = epidb.add_genome("hg19", 1, genome_info, self.admin_key)
        self.assertFailure(res, msg)
        self.assertTrue("[1:description]" in msg)
Пример #8
0
  def test_genome_info(self):
    epidb = DeepBlueClient(address="localhost", port=31415)
    self.init(epidb)

    genome_info = None
    with open("data/genomes/hg19", 'r') as f:
      genome_info = f.read().replace(",", "")

    res, gid = epidb.add_genome("hg19", "Human genome 19", genome_info, self.admin_key)
    self.assertSuccess(res, gid)

    res, data = epidb.info(gid, self.admin_key)
    self.assertEqual(data[0]['description'], "Human genome 19")
    self.assertEqual(data[0]['name'], "hg19")
    self.assertEqual(data[0]['user'], "test_admin")
    self.assertEqual(data[0]['_id'], gid)
Пример #9
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, "")
Пример #10
0
    def test_genome_hg19(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        genome_info = None
        with open("data/genomes/hg19", 'r') as f:
            genome_info = f.read().replace(",", "")

        res = epidb.add_genome("hg19", "Human genome 19", genome_info,
                               self.admin_key)
        self.assertSuccess(res)

        (res, genomes) = epidb.list_genomes(self.admin_key)
        self.assertEqual(len(genomes), 1)
        self.assertEqual(genomes[0][1], "hg19")

        r1 = epidb.chromosomes("hg19", self.admin_key)
        r2 = epidb.chromosomes("g1", self.admin_key)

        self.assertEqual(len(r1[1]), 93)
        self.assertEqual(r1[1][0][0], "chr1")
        self.assertEqual(r1[1][0][1], 249250621)
Пример #11
0
    def test_incomplete_chromosome(self):
        mm10_info = '''chr1 195471971
chr2  182113224
chrX  171031299
chr3  160039680
chr4  156508116
chr5  151834684
chr6  149736546
chr7  145441459
chr10 130694993
chr8  129401213
chr14 124902244
chr9  124595110
chr11 122082543
chr13 120421639
chr12 120129022
chr15 104043685
chr16 98207768
chr17 94987271
chrY  91744698
chr18 90702639
chr19 61431566
chr5_JH584299_random  953012
chrX_GL456233_random  336933
chrY_JH584301_random  259875
chr1_GL456211_random  241735
chr4_GL456350_random  227966
chr4_JH584293_random  207968
chr1_GL456221_random  206961
chr5_JH584297_random  205776
chr5_JH584296_random  199368
chr5_GL456354_random  195993
chr4_JH584294_random  191905
chr5_JH584298_random  184189
chrY_JH584300_random  182347
chr7_GL456219_random  175968
chr1_GL456210_random  169725
chrY_JH584303_random  158099
chrY_JH584302_random  155838
chr1_GL456212_random  153618
chrUn_JH584304  114452
chrUn_GL456379  72385
chr4_GL456216_random  66673
chrUn_GL456393  55711
chrUn_GL456366  47073
chrUn_GL456367  42057
chrUn_GL456239  40056
chr1_GL456213_random  39340
chrUn_GL456383  38659
chrUn_GL456385  35240
chrUn_GL456360  31704
chrUn_GL456378  31602
chrUn_GL456389  28772
chrUn_GL456372  28664
chrUn_GL456370  26764
chrUn_GL456381  25871
chrUn_GL456387  24685
chrUn_GL456390  24668
chrUn_GL456394  24323
chrUn_GL456392  23629
chrUn_GL456382  23158
chrUn_GL456359  22974
chrUn_GL456396  21240
chrUn_GL456368  20208
chrM  16299
chr4_JH584292_random  14945
chr4_JH584295_random  1976'''

        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init_base(epidb)

        sample_id = self.sample_ids[0]

        res = epidb.add_genome("mm10", "Mouse genome 10", mm10_info,
                               self.admin_key)
        self.assertSuccess(res)

        data = "1\t10\t30\nUn_GL456392\t123\t1234\nM\t1234\t2000"

        res = epidb.add_experiment("test_exp1", "mm10", "Methylation",
                                   sample_id, "tech1", "ENCODE", "desc1", data,
                                   "CHROMOSOME,START,END", None,
                                   self.admin_key)

        self.assertSuccess(res)

        (status, q) = epidb.select_regions('test_exp1', "mm10", None, None,
                                           None, None, None, None, None,
                                           self.admin_key)
        (status, req) = epidb.get_regions(q, "CHROMOSOME,START,END",
                                          self.admin_key)

        regions = self.get_regions_request(req)
        expected = "chr1\t10\t30\nchrM\t1234\t2000\nchrUn_GL456392\t123\t1234"
        self.assertEqual(regions, expected)
Пример #12
0
    def test_chromosomes(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        genome_info = None
        with open("data/genomes/hg19", 'r') as f:
            genome_info = f.read().replace(",", "")

        res = epidb.add_genome("hg19", "Human genome 19", genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        (r, chroms) = epidb.chromosomes("hg19", self.admin_key)
        expected = [['chr1', 249250621], ['chr10', 135534747],
                    ['chr11', 135006516], ['chr11_gl000202_random', 40103],
                    ['chr12', 133851895], ['chr13', 115169878],
                    ['chr14', 107349540], ['chr15', 102531392],
                    ['chr16', 90354753], ['chr17', 81195210],
                    ['chr17_ctg5_hap1', 1680828],
                    ['chr17_gl000203_random', 37498],
                    ['chr17_gl000204_random', 81310],
                    ['chr17_gl000205_random', 174588],
                    ['chr17_gl000206_random', 41001], ['chr18', 78077248],
                    ['chr18_gl000207_random', 4262], ['chr19', 59128983],
                    ['chr19_gl000208_random', 92689],
                    ['chr19_gl000209_random', 159169],
                    ['chr1_gl000191_random', 106433],
                    ['chr1_gl000192_random', 547496], ['chr2', 243199373],
                    ['chr20', 63025520], ['chr21', 48129895],
                    ['chr21_gl000210_random', 27682], ['chr22', 51304566],
                    ['chr3', 198022430], ['chr4', 191154276],
                    ['chr4_ctg9_hap1', 590426],
                    ['chr4_gl000193_random', 189789],
                    ['chr4_gl000194_random', 191469], ['chr5', 180915260],
                    ['chr6', 171115067], ['chr6_apd_hap1', 4622290],
                    ['chr6_cox_hap2', 4795371], ['chr6_dbb_hap3', 4610396],
                    ['chr6_mann_hap4', 4683263], ['chr6_mcf_hap5', 4833398],
                    ['chr6_qbl_hap6', 4611984], ['chr6_ssto_hap7', 4928567],
                    ['chr7', 159138663], ['chr7_gl000195_random', 182896],
                    ['chr8', 146364022], ['chr8_gl000196_random', 38914],
                    ['chr8_gl000197_random', 37175], ['chr9', 141213431],
                    ['chr9_gl000198_random', 90085],
                    ['chr9_gl000199_random', 169874],
                    ['chr9_gl000200_random', 187035],
                    ['chr9_gl000201_random', 36148], ['chrM', 16571],
                    ['chrUn_gl000211', 166566], ['chrUn_gl000212', 186858],
                    ['chrUn_gl000213', 164239], ['chrUn_gl000214', 137718],
                    ['chrUn_gl000215', 172545], ['chrUn_gl000216', 172294],
                    ['chrUn_gl000217', 172149], ['chrUn_gl000218', 161147],
                    ['chrUn_gl000219', 179198], ['chrUn_gl000220', 161802],
                    ['chrUn_gl000221', 155397], ['chrUn_gl000222', 186861],
                    ['chrUn_gl000223', 180455], ['chrUn_gl000224', 179693],
                    ['chrUn_gl000225', 211173], ['chrUn_gl000226', 15008],
                    ['chrUn_gl000227', 128374], ['chrUn_gl000228', 129120],
                    ['chrUn_gl000229', 19913], ['chrUn_gl000230', 43691],
                    ['chrUn_gl000231', 27386], ['chrUn_gl000232', 40652],
                    ['chrUn_gl000233', 45941], ['chrUn_gl000234', 40531],
                    ['chrUn_gl000235', 34474], ['chrUn_gl000236', 41934],
                    ['chrUn_gl000237', 45867], ['chrUn_gl000238', 39939],
                    ['chrUn_gl000239', 33824], ['chrUn_gl000240', 41933],
                    ['chrUn_gl000241', 42152], ['chrUn_gl000242', 43523],
                    ['chrUn_gl000243', 43341], ['chrUn_gl000244', 39929],
                    ['chrUn_gl000245', 36651], ['chrUn_gl000246', 38154],
                    ['chrUn_gl000247', 36422], ['chrUn_gl000248', 39786],
                    ['chrUn_gl000249', 38502], ['chrX', 155270560],
                    ['chrY', 59373566]]
        self.assertEqual(chroms, expected)

        hg18_genome_info = None
        with open("data/genomes/hg18", 'r') as f:
            hg18_genome_info = f.read().replace(",", "")
        res = epidb.add_genome("hg18", "Human genome 18", hg18_genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        (r, chroms) = epidb.chromosomes("hg18", self.admin_key)
        expected = [['chr1', 247249719], ['chr10', 135374737],
                    ['chr10_random', 113275], ['chr11', 134452384],
                    ['chr11_random', 215294], ['chr12', 132349534],
                    ['chr13', 114142980], ['chr13_random', 186858],
                    ['chr14', 106368585], ['chr15', 100338915],
                    ['chr15_random', 784346], ['chr16', 88827254],
                    ['chr16_random', 105485], ['chr17', 78774742],
                    ['chr17_random', 2617613], ['chr18', 76117153],
                    ['chr18_random', 4262], ['chr19', 63811651],
                    ['chr19_random', 301858], ['chr1_random', 1663265],
                    ['chr2', 242951149], ['chr20', 62435964],
                    ['chr21', 46944323], ['chr21_random', 1679693],
                    ['chr22', 49691432], ['chr22_h2_hap1', 63661],
                    ['chr22_random', 257318], ['chr2_random', 185571],
                    ['chr3', 199501827], ['chr3_random', 749256],
                    ['chr4', 191273063], ['chr4_random', 842648],
                    ['chr5', 180857866], ['chr5_h2_hap1', 1794870],
                    ['chr5_random', 143687], ['chr6', 170899992],
                    ['chr6_cox_hap1', 4731698], ['chr6_qbl_hap2', 4565931],
                    ['chr6_random', 1875562], ['chr7', 158821424],
                    ['chr7_random', 549659], ['chr8', 146274826],
                    ['chr8_random', 943810], ['chr9', 140273252],
                    ['chr9_random', 1146434], ['chrM', 16571],
                    ['chrX', 154913754], ['chrX_random', 1719168],
                    ['chrY', 57772954]]

        self.assertEqual(chroms, expected)

        mm9_genome_info = None
        with open("data/genomes/mm9", 'r') as f:
            mm9_genome_info = f.read().replace(",", "")
        res = epidb.add_genome("mm9", "Mouse genome 9", mm9_genome_info,
                               self.admin_key)
        self.assertSuccess(res)
        (r, chroms) = epidb.chromosomes("mm9", self.admin_key)
        expected = [['chr1', 197195432], ['chr10', 129993255],
                    ['chr11', 121843856], ['chr12', 121257530],
                    ['chr13', 120284312], ['chr13_random', 400311],
                    ['chr14', 125194864], ['chr15', 103494974],
                    ['chr16', 98319150], ['chr16_random', 3994],
                    ['chr17', 95272651], ['chr17_random', 628739],
                    ['chr18', 90772031], ['chr19', 61342430],
                    ['chr1_random', 1231697], ['chr2', 181748087],
                    ['chr3', 159599783], ['chr3_random', 41899],
                    ['chr4', 155630120], ['chr4_random', 160594],
                    ['chr5', 152537259], ['chr5_random', 357350],
                    ['chr6', 149517037], ['chr7', 152524553],
                    ['chr7_random', 362490], ['chr8', 131738871],
                    ['chr8_random', 849593], ['chr9', 124076172],
                    ['chr9_random', 449403], ['chrM', 16299],
                    ['chrUn_random', 5900358], ['chrX', 166650296],
                    ['chrX_random', 1785075], ['chrY', 15902555],
                    ['chrY_random', 58682461]]
        self.assertEqual(chroms, expected)
Пример #13
0
    def test_genome_info(self):
        epidb = DeepBlueClient(address="localhost", port=31415)
        self.init(epidb)

        hg18_genome_info = None
        with open("data/genomes/hg18", 'r') as f:
            hg18_genome_info = f.read().replace(",", "")

        res = epidb.add_genome("hg18", "Human genome 18", hg18_genome_info,
                               self.admin_key)
        self.assertSuccess(res)

        info = [{
            'chromosomes': [{
                'name': 'chr1',
                'size': 247249719
            }, {
                'name': 'chr1_random',
                'size': 1663265
            }, {
                'name': 'chr10',
                'size': 135374737
            }, {
                'name': 'chr10_random',
                'size': 113275
            }, {
                'name': 'chr11',
                'size': 134452384
            }, {
                'name': 'chr11_random',
                'size': 215294
            }, {
                'name': 'chr12',
                'size': 132349534
            }, {
                'name': 'chr13',
                'size': 114142980
            }, {
                'name': 'chr13_random',
                'size': 186858
            }, {
                'name': 'chr14',
                'size': 106368585
            }, {
                'name': 'chr15',
                'size': 100338915
            }, {
                'name': 'chr15_random',
                'size': 784346
            }, {
                'name': 'chr16',
                'size': 88827254
            }, {
                'name': 'chr16_random',
                'size': 105485
            }, {
                'name': 'chr17',
                'size': 78774742
            }, {
                'name': 'chr17_random',
                'size': 2617613
            }, {
                'name': 'chr18',
                'size': 76117153
            }, {
                'name': 'chr18_random',
                'size': 4262
            }, {
                'name': 'chr19',
                'size': 63811651
            }, {
                'name': 'chr19_random',
                'size': 301858
            }, {
                'name': 'chr2',
                'size': 242951149
            }, {
                'name': 'chr2_random',
                'size': 185571
            }, {
                'name': 'chr20',
                'size': 62435964
            }, {
                'name': 'chr21',
                'size': 46944323
            }, {
                'name': 'chr21_random',
                'size': 1679693
            }, {
                'name': 'chr22',
                'size': 49691432
            }, {
                'name': 'chr22_random',
                'size': 257318
            }, {
                'name': 'chr22_h2_hap1',
                'size': 63661
            }, {
                'name': 'chr3',
                'size': 199501827
            }, {
                'name': 'chr3_random',
                'size': 749256
            }, {
                'name': 'chr4',
                'size': 191273063
            }, {
                'name': 'chr4_random',
                'size': 842648
            }, {
                'name': 'chr5',
                'size': 180857866
            }, {
                'name': 'chr5_random',
                'size': 143687
            }, {
                'name': 'chr5_h2_hap1',
                'size': 1794870
            }, {
                'name': 'chr6',
                'size': 170899992
            }, {
                'name': 'chr6_random',
                'size': 1875562
            }, {
                'name': 'chr6_cox_hap1',
                'size': 4731698
            }, {
                'name': 'chr6_qbl_hap2',
                'size': 4565931
            }, {
                'name': 'chr7',
                'size': 158821424
            }, {
                'name': 'chr7_random',
                'size': 549659
            }, {
                'name': 'chr8',
                'size': 146274826
            }, {
                'name': 'chr8_random',
                'size': 943810
            }, {
                'name': 'chr9',
                'size': 140273252
            }, {
                'name': 'chr9_random',
                'size': 1146434
            }, {
                'name': 'chrM',
                'size': 16571
            }, {
                'name': 'chrX',
                'size': 154913754
            }, {
                'name': 'chrX_random',
                'size': 1719168
            }, {
                'name': 'chrY',
                'size': 57772954
            }],
            'description':
            'Human genome 18',
            'user':
            '******',
            '_id':
            'g1',
            'type':
            'genome',
            'name':
            'hg18'
        }]

        s, info_answer = epidb.info("g1", self.admin_key)

        self.assertEqual(info_answer, info)