]> git.donarmstrong.com Git - dbsnp.git/blob - schema/extra_schema/association_results.sql
822387b00d5c45523f75fad7f62b8a5debdb8b33
[dbsnp.git] / schema / extra_schema / association_results.sql
1 DROP VIEW ga_snp;
2 DROP TABLE ga_study_snp CASCADE;
3 DROP TABLE ga_study_subpart CASCADE;
4 DROP TABLE ga_study CASCADE;
5
6
7 CREATE TABLE ga_study (
8        ga_id       int NOT NULL PRIMARY KEY,
9        short_name  TEXT NOT NULL,
10        full_name   TEXT NOT NULL,
11        description TEXT NOT NULL DEFAULT '',
12        date        TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
13 );
14
15 CREATE UNIQUE INDEX ON ga_study(short_name);
16
17 CREATE TABLE ga_study_subpart (
18        ga_subpart_id INT NOT NULL PRIMARY KEY,
19        ga_id INT NOT NULL REFERENCES ga_study,
20        short_name TEXT NOT NULL,
21        full_name TEXT NOT NULL,
22        description TEXT NOT NULL DEFAULT ''
23 );
24
25 CREATE UNIQUE INDEX ON ga_study_subpart(ga_id,short_name);
26 CREATE INDEX ON ga_study_subpart(ga_id);
27
28 CREATE TABLE ga_study_snp (
29        snp_id int NOT NULL,
30        ga_subpart_id INT NOT NULL REFERENCES ga_study_subpart,
31        pvalue double precision,
32        qvalue double precision,
33        fdr double precision,
34        significant BOOLEAN DEFAULT FALSE
35 );
36
37 CREATE UNIQUE INDEX ON ga_study_snp(snp_id,ga_subpart_id);
38 CREATE INDEX ON ga_study_snp(snp_id);
39 CREATE INDEX ON ga_study_snp(fdr);
40 CREATE INDEX ON ga_study_snp(qvalue);
41 CREATE INDEX ON ga_study_snp(pvalue);
42
43
44 CREATE OR REPLACE VIEW ga_snp AS
45        SELECT gss.snp_id AS snp_id,
46               gs.short_name AS study_name,
47               gssp.short_name AS subpart_name,
48               gss.pvalue AS pvalue,
49               gss.qvalue AS qvalue,
50               gss.fdr AS fdr,
51               gss.significant AS significant
52               FROM ga_study_snp gss
53          JOIN ga_study_subpart gssp ON gss.ga_subpart_id = gssp.ga_subpart_id
54          JOIN ga_study gs ON gssp.ga_id=gs.ga_id;