-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathfunctional_classes.sql
31 lines (28 loc) · 1.02 KB
/
functional_classes.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CREATE TABLE antismash.functional_classes (
functional_class_id serial NOT NULL,
name text,
parent_id int4,
CONSTRAINT functional_classes_pkey PRIMARY KEY (functional_class_id),
CONSTRAINT functional_classes_parent_id_fkey FOREIGN KEY (parent_id) REFERENCES antismash.functional_classes (functional_class_id)
);
COMMENT ON TABLE antismash.functional_classes IS
'An index of possible functional classes';
--- Basic functional classes
INSERT INTO antismash.functional_classes (name, parent_id)
SELECT val.name, val.parent_id::int4
FROM (
VALUES
('biosynthetic', NULL),
('regulator', NULL),
('transporter', NULL),
('other', NULL)
) val ( name, parent_id );
--- Advanced classes
INSERT INTO antismash.functional_classes (name, parent_id)
SELECT val.name, f.functional_class_id
FROM (
VALUES
('bgc_seed', 'biosynthetic'),
('biosynthetic_smcog', 'biosynthetic')
) val ( name, parent_name )
LEFT JOIN antismash.functional_classes f ON val.parent_name = f.name;