diff --git a/docker-compose.yml b/docker-compose.yml index dc21eaa..238b145 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,8 @@ services: environment: GENES_FILE: "/ifad/files/gene-types.txt" ANNOTATIONS_FILE: "/ifad/files/tair.gaf" + UPDATE_INTERVAL: 86400000 + UPDATE_AT_MIDNIGHT: true ports: - 80:3000 volumes: diff --git a/src/__tests__/data-download/february/tair.gaf b/src/__tests__/data-download/february/tair.gaf new file mode 100644 index 0000000..99c80bc --- /dev/null +++ b/src/__tests__/data-download/february/tair.gaf @@ -0,0 +1,125 @@ +!gaf-version: 2.1 +! +!Generated by GO Central +! +!Date Generated by GOC: 2019-10-07 +! +!Header from tair source association file: +!================================= +!Project_name: The Arabidopsis Information Resource (TAIR) +!URL: http://www.arabidopsis.org +!Contact Email: curator@arabidopsis.org +!Last Updated: 2019-10-01 +!================================= +! +!Header copied from paint_tair_valid.gaf +!================================= +!Created on Tue Jul 23 20:16:17 2019. +!PANTHER version: v.14.1. +!GO version: 2019-07-03. +! +!================================= +! +!Documentation about this header can be found here: https://github.com/geneontology/go-site/blob/master/docs/gaf_validation.md +! +DB DB Object ID DB Object Symbol Qualifier GO ID DB:Reference (JDB:Reference) Evidence Code With (or) From Aspect DB Object Name DB Object Type Taxon Date Assigned By Annotation Extension Gene Product Form ID +TAIR locus:2011045 PGSIP4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G54940 AT1G54940|PGSIP4|GUX4|plant glycogenin-like starch initiation protein 4|Glucuronic Acid Substitution of Xylan 4|F14C21.47|F14C21_47 protein taxon:3702 20190404 UniProt TAIR:locus:2011045 +TAIR locus:2205682 TMN6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G55130 AT1G55130|TMN6|AtTMN6|transmembrane nine 6|T7N22.7|T7N22_7 protein taxon:3702 20190820 UniProt TAIR:locus:2205682 +TAIR locus:2020492 AT1G55690 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G55690 AT1G55690|F20N2.11 protein taxon:3702 20190907 UniProt TAIR:locus:2020492 +TAIR locus:2012050 CSLE1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G55850 AT1G55850|ATCSLE1|CSLE1|cellulose synthase like E1|F14J16.9|F14J16_9 protein taxon:3702 20190408 UniProt TAIR:locus:2012050 +TAIR locus:2027605 RGXT3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G56550 AT1G56550|RGXT3|RhamnoGalacturonan specific Xylosyltransferase 3|F25P12.100|F25P12_100 protein taxon:3702 20190907 UniProt TAIR:locus:2027605 +TAIR locus:2206520 CYB GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G57620 AT1G57620|CYB|CYTOPLASMIC BODIES|T8L23.9|T8L23_9 protein taxon:3702 20190907 UniProt TAIR:locus:2206520 +TAIR locus:2016615 ZF14 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G58340 AT1G58340|ZF14|ZRZ|BCD1|ABS4|ZRIZI|BUSH-AND-CHLOROTIC-DWARF 1|Arabidopsis abnormal shoot4|F19C14.5|F19C14_5 protein taxon:3702 20190729 UniProt TAIR:locus:2016615 +TAIR locus:2025961 ALA3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G59820 AT1G59820|ALA3|aminophospholipid ATPase 3|F23H11.14|F23H11_14 protein taxon:3702 20190723 UniProt TAIR:locus:2025961 +TAIR locus:2206026 AT1G60970 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G60970 AT1G60970|T7P1.11|T7P1_11 protein taxon:3702 20190408 UniProt TAIR:locus:2206026 +TAIR locus:2036823 AT1G62020 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G62020 AT1G62020|F8K4.21|F8K4_21 protein taxon:3702 20190723 UniProt TAIR:locus:2036823 +TAIR locus:2015193 RBL2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G63120 AT1G63120|ATRBL2|RBL2|RHOMBOID-like 2|F16M19.4|F16M19_4 protein taxon:3702 20181101 UniProt TAIR:locus:2015193 +TAIR locus:2031346 RHS8 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G63450 AT1G63450|RHS8|XUT1|root hair specific 8|XYLOGLUCAN-SPECIFIC GALACTURONOSYLTRANSFERASE 1|F2K11.17|F2K11_17 protein taxon:3702 20190612 UniProt TAIR:locus:2031346 +TAIR locus:2010796 GTG1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G64990 AT1G64990|GTG1|GPCR-type G protein 1|F13O11.29|F13O11_29 protein taxon:3702 20181101 UniProt TAIR:locus:2010796 +TAIR locus:2202334 ARG1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G68370 AT1G68370|ARG1|ALTERED RESPONSE TO GRAVITY 1|T22E19.25|T22E19_25 protein taxon:3702 20181101 UniProt TAIR:locus:2202334 +TAIR locus:2201297 AT1G68470 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G68470 AT1G68470|T26J14.4|T26J14_4 protein taxon:3702 20190612 UniProt TAIR:locus:2201297 +TAIR locus:2020638 LGT8 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G70090 AT1G70090|GATL9|LGT8|GALACTURONOSYLTRANSFERASE-LIKE 9|glucosyl transferase family 8|F20P5.18|F20P5_18 protein taxon:3702 20190907 UniProt TAIR:locus:2020638 +TAIR locus:2020628 TBL27 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G70230 AT1G70230|TBL27|AXY4|TRICHOME BIREFRINGENCE-LIKE 27|ALTERED XYLOGLUCAN 4|F20P5.5|F20P5_5 protein taxon:3702 20190907 UniProt TAIR:locus:2020628 +TAIR locus:2032318 AT1G71300 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G71300 AT1G71300|F3I17.5|F3I17_5 protein taxon:3702 20190723 UniProt TAIR:locus:2032318 +TAIR locus:2027290 GALT5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G74800 AT1G74800|GALT5|AGP galactosyltransferase5|F25A4.23|F25A4_23 protein taxon:3702 20190907 UniProt TAIR:locus:2027290 +TAIR locus:2037248 RRA2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G75110 AT1G75110|RRA2|REDUCED RESIDUAL ARABINOSE 2|F9E10.4|F9E10_4 protein taxon:3702 20181101 UniProt TAIR:locus:2037248 +TAIR locus:2037273 RRA1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G75120 AT1G75120|RRA1|REDUCED RESIDUAL ARABINOSE 1|F9E10.3|F9E10_3 protein taxon:3702 20181101 UniProt TAIR:locus:2037273 +TAIR locus:2018416 AT1G75370 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G75370 AT1G75370|F1B16.10|F1B16_10 protein taxon:3702 20190907 UniProt TAIR:locus:2018416 +TAIR locus:2196020 PGSIP2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G77130 AT1G77130|PGSIP2|GUX3|plant glycogenin-like starch initiation protein 2|glucuronic acid substitution of xylan 3|T14N5.1|T14N5_1 protein taxon:3702 20190820 UniProt TAIR:locus:2196020 +TAIR locus:2195955 AT1G77260 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G77260 AT1G77260|T14N5.19|T14N5_19 protein taxon:3702 20190820 UniProt TAIR:locus:2195955 +TAIR locus:2029471 AT1G77810 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G77810 AT1G77810|T32E8.14 protein taxon:3702 20190907 UniProt TAIR:locus:2029471 +TAIR locus:2032130 TSD2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G78240 AT1G78240|TSD2|QUA2|OSU1|TUMOROUS SHOOT DEVELOPMENT 2|QUASIMODO2|F3F9.21|F3F9_21 protein taxon:3702 20190820 UniProt TAIR:locus:2032130 +TAIR locus:2037543 VP2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G78920 AT1G78920|AVP2|AVPL1|AtVHP2;1|VHP2;1|VP2|vacuolar H+-pyrophosphatase 2|VACUOLAR-PYROPHOSPHATASE LIKE PROTEIN 1|F9K20.2|F9K20_2|VACUOLAR-TYPE H+-TRANSLOCATING INORGANIC PYROPHOSPHATASE|AVPL1 protein taxon:3702 20190820 UniProt TAIR:locus:2037543 +TAIR locus:2206400 ALIS5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G79450 AT1G79450|ALIS5|ALA-interacting subunit 5|T8K14.13|T8K14_13 protein taxon:3702 20190408 UniProt TAIR:locus:2206400 +TAIR locus:2016214 AT1G79990 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G79990 AT1G79990|F19K16.4|F19K16_4 protein taxon:3702 20190723 UniProt TAIR:locus:2016214 +TAIR locus:2016214 AT1G79990 GO:0000139 TAIR:AnalysisReference:501756966 IEA InterPro:IPR016973 C AT1G79990 AT1G79990|F19K16.4|F19K16_4 protein taxon:3702 20190723 InterPro TAIR:locus:2016214 +TAIR locus:2049527 ESMD1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G01480 AT2G01480|ESMD1|ESMERALDA1|F2I9.10|F2I9_10 protein taxon:3702 20190907 UniProt TAIR:locus:2049527 +TAIR locus:2041160 AT2G01970 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G01970 AT2G01970|F14H20.4|F14H20_4 protein taxon:3702 20190820 UniProt TAIR:locus:2041160 +TAIR locus:2056981 RRT3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G03280 AT2G03280|RRT3|T4M8.29|T4M8_29 protein taxon:3702 20190723 UniProt TAIR:locus:2056981 +TAIR locus:2051279 GNT-II GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G05320 AT2G05320|GNT-II|GNT2|N-acetylglucosaminyltransferase II|F5G3.22|F5G3_22 protein taxon:3702 20190907 UniProt TAIR:locus:2051279 +TAIR locus:2054090 GONST1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G13650 AT2G13650|GONST1|golgi nucleotide sugar transporter 1|T10F5.19|T10F5_19 protein taxon:3702 20181105 UniProt TAIR:locus:2054090 +TAIR locus:1006230134 AT2G14255 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G14255 AT2G14255 protein taxon:3702 20190907 UniProt TAIR:locus:1006230134 +TAIR locus:2046931 VSR4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G14720 AT2G14720|VSR4|VSR2;1|BP80-2;1|MTV4|vacuolar sorting receptor 4|VACUOLAR SORTING RECEPTOR 2;1|binding protein of 80 kDa 2;1|T6B13.2 protein taxon:3702 20190408 UniProt TAIR:locus:2046931 +TAIR locus:2046911 VSR3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G14740 AT2G14740|ATVSR3|VSR3|VSR2;2|BP80-2;2|UXS2|vaculolar sorting receptor 3|VACUOLAR SORTING RECEPTOR 3|VACUOLAR SORTING RECEPTOR 2;2|binding protein of 80 kDa 2;2|T6B13.4 protein taxon:3702 20190820 UniProt TAIR:locus:2046911 +TAIR locus:2042634 AT2G16380 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G16380 AT2G16380|F16F14.12|F16F14_12 protein taxon:3702 20190907 UniProt TAIR:locus:2042634 +TAIR locus:2827906 P4H5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G17720 AT2G17720|P4H5|prolyl 4-hydroxylase 5|T17A5.10|T17A5_10 protein taxon:3702 20190820 UniProt TAIR:locus:2827906 +TAIR locus:2053114 AT2G18180 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G18180 AT2G18180|F8D23.4|F8D23_4 protein taxon:3702 20190907 UniProt TAIR:locus:2053114 +TAIR locus:2051426 GAUT10 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G20810 AT2G20810|GAUT10|LGT4|galacturonosyltransferase 10|F5H14.44 protein taxon:3702 20190820 UniProt TAIR:locus:2051426 +TAIR locus:2050064 AT2G21390 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G21390 AT2G21390|F3K23.15|F3K23_15 protein taxon:3702 20190723 UniProt TAIR:locus:2050064 +TAIR locus:2049319 SFH3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G21540 AT2G21540|ATSFH3|SFH3|SEC14-LIKE 3|F3K23.30 protein taxon:3702 20190907 UniProt TAIR:locus:2049319 +TAIR locus:2060415 RABH1d GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G22290 AT2G22290|ATRABH1D|ATRAB-H1D|RAB-H1D|ATRAB6|RABH1d|RAB GTPase homolog H1D|ARABIDOPSIS RAB GTPASE HOMOLOG H1D|ARABIDOPSIS RAB GTPASE HOMOLOG 6|T26C19.5|T26C19_5 protein taxon:3702 20190408 UniProt TAIR:locus:2060415 +TAIR locus:2059155 MUCI10 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G22900 AT2G22900|MUCI10|MAGT1|MUCILAGE-RELATED10|MANNAN α151 GALACTOSYL TRANSFERASE1|T20K9.11 protein taxon:3702 20190907 UniProt TAIR:locus:2059155 +TAIR locus:2047565 AT2G24170 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G24170 AT2G24170|F27D4.8|F27D4_8 protein taxon:3702 20190907 UniProt TAIR:locus:2047565 +TAIR locus:2046688 ATCSLC08 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G24630 AT2G24630|ATCSLC08|CSLC08|ATCSLC8|CELLULOSE-SYNTHASE LIKE C8|F25P17.7|F25P17_7 protein taxon:3702 20190404 UniProt TAIR:locus:2046688 +TAIR locus:2059531 HPGT3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G25300 AT2G25300|HPGT3|hydroxyproline O-galactosyltransferase 3|T22F11.11|T22F11_11 protein taxon:3702 20190907 UniProt TAIR:locus:2059531 +TAIR locus:2050286 AT2G25610 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G25610 AT2G25610|F3N11.6|F3N11_6 protein taxon:3702 20190907 UniProt TAIR:locus:2050286 +TAIR locus:2057442 AT2G26100 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G26100 AT2G26100|T19L18.9|T19L18_9 protein taxon:3702 20190907 UniProt TAIR:locus:2057442 +TAIR locus:2046163 FRA8 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G28110 AT2G28110|FRA8|IRX7|FRAGILE FIBER 8|IRREGULAR XYLEM 7|F24D13.10|F24D13_10 protein taxon:3702 20190612 UniProt TAIR:locus:2046163 +TAIR locus:2066091 AT2G29040 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G29040 AT2G29040|T9I4.12|T9I4_12 protein taxon:3702 20190612 UniProt TAIR:locus:2066091 +TAIR locus:2066102 RBL1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G29050 AT2G29050|ATRBL1|RBL1|RHOMBOID-like 1|T9I4.13|T9I4_13 protein taxon:3702 20181101 UniProt TAIR:locus:2066102 +TAIR locus:2052080 PS2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G29900 AT2G29900|PS2|Presenilin-2|F6K5.3|F6K5_3 protein taxon:3702 20190723 UniProt TAIR:locus:2052080 +TAIR locus:2065724 VSR2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G30290 AT2G30290|VSR2|VSR1;2|BP80-1;2|AtVSR2|VACUOLAR SORTING RECEPTOR 2|VACUOLAR SORTING RECEPTOR 1;2|binding protein of 80 kDa 1;2|T9D9.10|T9D9_10 protein taxon:3702 20190907 UniProt TAIR:locus:2065724 +TAIR locus:2064316 UXT2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G30460 AT2G30460|UXT2|UDP-XYLOSE TRANSPORTER2|T6B20.18|T6B20_18 protein taxon:3702 20181105 UniProt TAIR:locus:2064316 +TAIR locus:504955915 LGT5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G30575 AT2G30575|GAUT5|LGT5|GALACTURONOSYLTRANSFERASE 5|los glycosyltransferase 5 protein taxon:3702 20181101 UniProt TAIR:locus:504955915 +TAIR locus:2062545 AT2G32430 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32430 AT2G32430|T32F6.5|T32F6_5 protein taxon:3702 20190907 UniProt TAIR:locus:2062545 +TAIR locus:2060263 CSLB03 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32530 AT2G32530|ATCSLB03|CSLB03|ATCSLB3|cellulose synthase-like B3|T26B15.9|T26B15_9 protein taxon:3702 20190408 UniProt TAIR:locus:2060263 +TAIR locus:2060211 CSLB04 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32540 AT2G32540|ATCSLB04|CSLB04|ATCSLB4|cellulose synthase-like B4|CELLULOSE SYNTHASE LIKE B4|T26B15.10|T26B15_10 protein taxon:3702 20190404 UniProt TAIR:locus:2060211 +TAIR locus:2060285 CSLB01 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32610 AT2G32610|ATCSLB01|CSLB01|ATCSLB1|cellulose synthase-like B1|CELLULOSE SYNTHASE LIKE B1|T26B15.17|T26B15_17 protein taxon:3702 20190408 UniProt TAIR:locus:2060285 +TAIR locus:2060216 CSLB02 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32620 AT2G32620|ATCSLB02|CSLB02|ATCSLB2|cellulose synthase-like B|CELLULOSE SYNTHASE LIKE B2|T26B15.18|T26B15_18 protein taxon:3702 20190404 UniProt TAIR:locus:2060216 +TAIR locus:2046387 GT13 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32740 AT2G32740|ATGT13|GT13|ARABIDOPSIS GALACTOSYLTRANSFERASE 13|galactosyltransferase 13|F24L7.12|F24L7_12 protein taxon:3702 20190612 UniProt TAIR:locus:2046387 +TAIR locus:2046372 AT2G32750 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G32750 AT2G32750|F24L7.11|F24L7_11 protein taxon:3702 20190612 UniProt TAIR:locus:2046372 +TAIR locus:2046505 CSLD1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G33100 AT2G33100|ATCSLD1|CSLD1|cellulose synthase-like D1|CELLULOSE-SYNTHASE LIKE D1|F25I18.16|F25I18_16 protein taxon:3702 20190404 UniProt TAIR:locus:2046505 +TAIR locus:2050982 GALS1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G33570 AT2G33570|GALS1|galactan synthase 1|F4P9.34|F4P9_34 protein taxon:3702 20181101 UniProt TAIR:locus:2050982 +TAIR locus:2057589 PHO2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G33770 AT2G33770|UBC24|ATUBC24|PHO2|UBIQUITIN-CONJUGATING ENZYME 24|phosphate 2|T1B8.8|T1B8_8 protein taxon:3702 20190907 UniProt TAIR:locus:2057589 +TAIR locus:2040864 AT2G34300 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G34300 AT2G34300|F13P17.14|F13P17_14 protein taxon:3702 20190820 UniProt TAIR:locus:2040864 +TAIR locus:2062340 RWA3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G34410 AT2G34410|RWA3|REDUCED WALL ACETYLATION 3|F13P17.23 protein taxon:3702 20190907 UniProt TAIR:locus:2062340 +TAIR locus:2044792 AT2G34840 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G34840 AT2G34840|F19I3.7|F19I3_7 protein taxon:3702 20190907 UniProt TAIR:locus:2044792 +TAIR locus:2044782 VSR5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G34940 AT2G34940|VSR5|VSR3;2|BP80-3;2|VACUOLAR SORTING RECEPTOR 5|VACUOLAR SORTING RECEPTOR 3;2|binding protein of 80 kDa 3;2|F19I3.17|F19I3_17 protein taxon:3702 20190907 UniProt TAIR:locus:2044782 +TAIR locus:2063494 ARAD1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G35100 AT2G35100|ARAD1|ARABINAN DEFICIENT 1|T4C15.23|T4C15_23|arabinosyltransferase protein taxon:3702 20190820 UniProt TAIR:locus:2063494 +TAIR locus:2058769 XEG113 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G35610 AT2G35610|XEG113|xyloglucanase 113|T20F21.19|T20F21_19 protein taxon:3702 20190820 UniProt TAIR:locus:2058769 +TAIR locus:2058729 CSLA07 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G35650 AT2G35650|ATCSLA07|CSLA07|ATCSLA7|CSLA7|cellulose synthase like|CELLULOSE SYNTHASE LIKE A7|T20F21.16|T20F21_16 protein taxon:3702 20190404 UniProt TAIR:locus:2058729 +TAIR locus:2057946 MEMB11 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G36900 AT2G36900|MEMB11|ATMEMB11|membrin 11|T1J8.8|T1J8_8 protein taxon:3702 20190907 UniProt TAIR:locus:2057946 +TAIR locus:505006303 GlcAT14C GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G37585 AT2G37585|GlcAT14C|GlcA transferase 14C protein taxon:3702 20190907 UniProt TAIR:locus:505006303 +TAIR locus:2057145 TBL34 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G38320 AT2G38320|TBL34|TRICHOME BIREFRINGENCE-LIKE 34|T19C21.19|T19C21_19 protein taxon:3702 20190907 UniProt TAIR:locus:2057145 +TAIR locus:2064163 GAUT7 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G38650 AT2G38650|GAUT7|LGT7|galacturonosyltransferase 7|LIKE GLYCOSYL TRANSFERASE 7|T6A23.15|T6A23_15|JS33 protein taxon:3702 20190820 UniProt TAIR:locus:2064163 +TAIR locus:2039697 MTP11 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G39450 AT2G39450|MTP11|ATMTP11|F12L6.11|F12L6_11 protein taxon:3702 20190723 UniProt TAIR:locus:2039697 +TAIR locus:2063947 AT2G39750 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G39750 AT2G39750|T5I7.5|T5I7_5 protein taxon:3702 20190907 UniProt TAIR:locus:2063947 +TAIR locus:2063078 AT2G40280 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G40280 AT2G40280|T7M7.24 protein taxon:3702 20190820 UniProt TAIR:locus:2063078 +TAIR locus:2058510 BZIP17 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G40950 AT2G40950|BZIP17|T20B5.15|T20B5_15|AtbZIP17 protein taxon:3702 20190404 UniProt TAIR:locus:2058510 +TAIR locus:2054371 STL1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G41770 AT2G41770|STL1|STELLO1|T11A7.13|T11A7_13 protein taxon:3702 20190907 UniProt TAIR:locus:2054371 +TAIR locus:2041036 ARA4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G43130 AT2G43130|ARA4|ATRAB11F|ATRABA5C|ARA-4|RABA5C|ARABIDOPSIS RAB GTPASE HOMOLOG A5C|F14B2.7|ARA-4 protein taxon:3702 20190907 UniProt TAIR:locus:2041036 +TAIR locus:2050564 AT2G44500 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G44500 AT2G44500|F4I1.31 protein taxon:3702 20190907 UniProt TAIR:locus:2050564 +TAIR locus:2043358 TSPO GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT2G47770 AT2G47770|ATTSPO|TSPO|TSPO(outer membrane tryptophan-rich sensory protein)-related|F17A22.16 protein taxon:3702 20190723 UniProt TAIR:locus:2043358 +TAIR locus:2102082 GAUT13 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G01040 AT3G01040|GAUT13|galacturonosyltransferase 13|T4P13.28|T4P13_28 protein taxon:3702 20190907 UniProt TAIR:locus:2102082 +TAIR locus:2076552 RRT2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G02250 AT3G02250|RRT2|F14P3.10|F14P3_10 protein taxon:3702 20181205 UniProt TAIR:locus:2076552 +TAIR locus:2074572 GAUT9 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G02350 AT3G02350|GAUT9|galacturonosyltransferase 9|F11A12.4|F11A12_4 protein taxon:3702 20190820 UniProt TAIR:locus:2074572 +TAIR locus:2097700 CSLD3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G03050 AT3G03050|CSLD3|KJK|ATCSLD3|RHD7|cellulose synthase-like D3|KOJAK|CELLULOSE SYNTHASE LIKE D3|ROOT HAIR DEFECTIVE 7|T17B22.26|T17B22_26 protein taxon:3702 20190404 UniProt TAIR:locus:2097700 +TAIR locus:2097745 GOT1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G03180 AT3G03180|GOT1|Golgi Transport 1|T17B22.13|T17B22_13 protein taxon:3702 20190907 UniProt TAIR:locus:2097745 +TAIR locus:2103040 APY1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G04080 AT3G04080|ATAPY1|APY1|apyrase 1|T6K12.30|T6K12_30|APYRASE 1 protein taxon:3702 20190820 UniProt TAIR:locus:2103040 +TAIR locus:2082450 GATL4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G06260 AT3G06260|GATL4|GolS9|galacturonosyltransferase-like 4|galactinol synthase 9|F28L1.20|F28L1_20 protein taxon:3702 20190907 UniProt TAIR:locus:2082450 +TAIR locus:2081071 GALT3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G06440 AT3G06440|GALT3|F24P17.7|F24P17_7 protein taxon:3702 20190907 UniProt TAIR:locus:2081071 +TAIR locus:2084279 RWA2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G06550 AT3G06550|RWA2|REDUCED WALL ACETYLATION 2|F5E6.12|F5E6_12 protein taxon:3702 20190820 UniProt TAIR:locus:2084279 +TAIR locus:2098545 ERMO2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G07100 AT3G07100|ERMO2|SEC24A|AtSEC24A|ENDOPLASMIC RETICULUM MORPHOLOGY 2|T1B9.25 protein taxon:3702 20190907 UniProt TAIR:locus:2098545 +TAIR locus:2079661 CSLC6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G07330 AT3G07330|ATCSLC06|CSLC06|ATCSLC6|CSLC6|CELLULOSE-SYNTHASE LIKE C6|Cellulose-synthase-like C6|F21O3.4 protein taxon:3702 20190820 UniProt TAIR:locus:2079661 +TAIR locus:2091122 AT3G07620 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G07620 AT3G07620|MLP3.7 protein taxon:3702 20190612 UniProt TAIR:locus:2091122 +TAIR locus:2083504 AT3G09320 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT3G09320 AT3G09320|F3L24.19 protein taxon:3702 20190907 UniProt TAIR:locus:2083504 diff --git a/src/__tests__/data-download/february/tair.gaf.gz b/src/__tests__/data-download/february/tair.gaf.gz new file mode 100644 index 0000000..f8157af Binary files /dev/null and b/src/__tests__/data-download/february/tair.gaf.gz differ diff --git a/src/__tests__/data-download/index.ts b/src/__tests__/data-download/index.ts new file mode 100644 index 0000000..807e795 --- /dev/null +++ b/src/__tests__/data-download/index.ts @@ -0,0 +1,36 @@ +import express from "express"; +import { StructuredData } from "../../ingest"; +import { getDataset } from "../../data_fetcher"; + +const serveFile = (filename: string, callback?: () => any) => { + const app = express(); + app.use("/annotations", express.static(filename)); + return app.listen(8080, () => { + console.log(`Serving file ${filename}`); + if (callback) { callback(); } + }); +}; + +test("data updates when files on the server change", async (done) => { + const path = require("path"); + process.env["UPDATE_INTERVAL"] = "5000"; + process.env["UPDATE_AT_MIDNIGHT"] = "false"; + process.env["SERVER_LIFETIME_LENGTH"] = "20000"; + process.env["FILE_URL"] = "http://localhost:8080/annotations/tair.gaf.gz"; + const januaryServer = await serveFile(path.join(__dirname + "/january"), + () => { + const backend = require(path.join(__dirname + "/../../index.ts")); + const januaryData: StructuredData = getDataset(); + + setTimeout(async () => { + januaryServer.close(); + let februaryServer = await serveFile(path.join(__dirname + "/february")); + setTimeout(() => februaryServer.close(), 10000); + }, 10000); + setTimeout(() => { + const februaryData: StructuredData = getDataset(); + expect(januaryData).not.toEqual(februaryData); + done(); + }, 12000); + }); +}, 30000); diff --git a/src/__tests__/data-download/january/tair.gaf b/src/__tests__/data-download/january/tair.gaf new file mode 100644 index 0000000..213fe5d --- /dev/null +++ b/src/__tests__/data-download/january/tair.gaf @@ -0,0 +1,125 @@ +!gaf-version: 2.1 +! +!Generated by GO Central +! +!Date Generated by GOC: 2019-10-07 +! +!Header from tair source association file: +!================================= +!Project_name: The Arabidopsis Information Resource (TAIR) +!URL: http://www.arabidopsis.org +!Contact Email: curator@arabidopsis.org +!Last Updated: 2019-10-01 +!================================= +! +!Header copied from paint_tair_valid.gaf +!================================= +!Created on Tue Jul 23 20:16:17 2019. +!PANTHER version: v.14.1. +!GO version: 2019-07-03. +! +!================================= +! +!Documentation about this header can be found here: https://github.com/geneontology/go-site/blob/master/docs/gaf_validation.md +! +DB DB Object ID DB Object Symbol Qualifier GO ID DB:Reference (JDB:Reference) Evidence Code With (or) From Aspect DB Object Name DB Object Type Taxon Date Assigned By Annotation Extension Gene Product Form ID +TAIR locus:2031476 ENO1 GO:0000015 TAIR:AnalysisReference:501756966 IEA InterPro:IPR000941 C AT1G74030 AT1G74030|ENO1|enolase 1|F2P9.10|F2P9_10 protein taxon:3702 20190907 InterPro TAIR:locus:2031476 +TAIR locus:2043067 ENOC GO:0000015 TAIR:AnalysisReference:501756966 IEA InterPro:IPR000941 C AT2G29560 AT2G29560|ENOC|ENO3|cytosolic enolase|enolase 3|F16P2.6|F16P2_6 protein taxon:3702 20190408 InterPro TAIR:locus:2043067 +TAIR locus:2044851 LOS2 GO:0000015 TAIR:AnalysisReference:501756966 IEA InterPro:IPR000941 C AT2G36530 AT2G36530|LOS2|ENO2|LOW EXPRESSION OF OSMOTICALLY RESPONSIVE GENES 2|enolase 2|F1O11.16|F1O11_16 protein taxon:3702 20190408 InterPro TAIR:locus:2044851 +TAIR locus:2032970 AT1G25260 GO:0000027 TAIR:AnalysisReference:501756966 IEA InterPro:IPR033867 P AT1G25260 AT1G25260|F4F7.35|F4F7_35 protein taxon:3702 20190404 InterPro TAIR:locus:2032970 +TAIR locus:2017963 TUN GO:0000030 TAIR:AnalysisReference:501756966 IEA InterPro:IPR026051 F AT1G16570 AT1G16570|TUN|TURAN|F19K19.11|F19K19_11 protein taxon:3702 20190907 InterPro TAIR:locus:2017963 +TAIR locus:2011962 ALATS GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT1G50200 AT1G50200|ALATS|ACD|Alanyl-tRNA synthetase|F14I3.17|F14I3_17|ALARS protein taxon:3702 20190327 UniProt TAIR:locus:2011962 +TAIR locus:2064821 CTEXP GO:0000049 TAIR:Publication:501746929 IDA F AT2G40730 AT2G40730|CTEXP|cytoplasmic tRNA export protein|T7D17.9|T7D17_9 protein taxon:3702 20120106 TAIR TAIR:locus:2064821 +TAIR locus:2074552 TRM1a GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT3G02320 AT3G02320|TRM1a|AtTRM1a|tRNA methyltransferase 1a|F11A12.1|F11A12_1 protein taxon:3702 20190907 UniProt TAIR:locus:2074552 +TAIR locus:2085455 AT3G58140 GO:0000049 TAIR:AnalysisReference:501756966 IEA InterPro:IPR002319 F AT3G58140 AT3G58140|F9D24.50 protein taxon:3702 20190907 InterPro TAIR:locus:2085455 +TAIR locus:2081217 GCN2 GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT3G59410 AT3G59410|ATGCN2|GCN2|ARABIDOPSIS THALIANA GENERAL CONTROL NON-REPRESSIBLE 2|GENERAL CONTROL NON-REPRESSIBLE 2|F25L23.270 protein taxon:3702 20190907 UniProt TAIR:locus:2081217 +TAIR locus:2119515 AT4G13780 GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT4G13780 AT4G13780|F18A5.170|F18A5_170 protein taxon:3702 20181101 UniProt TAIR:locus:2119515 +TAIR locus:2124519 AT4G18460 GO:0000049 TAIR:AnalysisReference:501756970 IEA UniProtKB-KW:KW-0820 F AT4G18460 AT4G18460|F28J12.130 protein taxon:3702 20190410 UniProt TAIR:locus:2124519 +TAIR locus:2125359 CTU2 GO:0000049 TAIR:AnalysisReference:501756966 IEA InterPro:IPR019407 F AT4G35910 AT4G35910|CTU2|CYTOPLASMIC THIOURIDYLASE 2|T19K4.40 protein taxon:3702 20190601 InterPro TAIR:locus:2125359 +TAIR locus:2136328 AT4G39280 GO:0000049 TAIR:AnalysisReference:501756966 IEA InterPro:IPR002319 F AT4G39280 AT4G39280|T22F8.180|T22F8_180 protein taxon:3702 20190907 InterPro TAIR:locus:2136328 +TAIR locus:2143266 TRM1b GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT5G15810 AT5G15810|TRM1b|AtTRM1b|tRNA methyltransferase 1b|F14F8.190|F14F8_190 protein taxon:3702 20190907 UniProt TAIR:locus:2143266 +TAIR locus:504954871 EMB1030 GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT5G22800 AT5G22800|EMB86|EMB1030|EMB263|EMBRYO DEFECTIVE 86|EMBRYO DEFECTIVE 1030|EMBRYO DEFECTIVE 263 protein taxon:3702 20190327 UniProt TAIR:locus:504954871 +TAIR locus:2154349 OVA2 GO:0000049 TAIR:AnalysisReference:501756966 IEA InterPro:IPR033708 F AT5G49030 AT5G49030|OVA2|ovule abortion 2|K19E20.18|K19E20_18 protein taxon:3702 20190601 InterPro TAIR:locus:2154349 +TAIR locus:2177477 ELO3 GO:0000049 TAIR:AnalysisReference:501756968 IEA UniProtKB-KW:KW-0820 F AT5G50320 AT5G50320|ELO3|HAG3|HAC8|ELP3|AtELP3|EAST1|ELONGATA 3|HISTONE ACETYLTRANSFERASE OF THE GNAT FAMILY 3|HISTONE ACETYLTRANSFERASE 8|Elongator protein 3|enhancer-of-asymmetric leaves-two 1|MXI22.3|MXI22_3 protein taxon:3702 20190919 UniProt TAIR:locus:2177477 +TAIR locus:2164381 ERS GO:0000049 TAIR:AnalysisReference:501756966 IEA InterPro:IPR008925 F AT5G64050 AT5G64050|ATERS|OVA3|ERS|OVULE ABORTION 3|glutamate tRNA synthetase|MHJ24.3|MHJ24_3 protein taxon:3702 20190907 InterPro TAIR:locus:2164381 +TAIR locus:2138743 ARGAH2 GO:0000050 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00158 P AT4G08870 AT4G08870|ARGAH2|arginine amidohydrolase 2|T3H13.10|T3H13_10 protein taxon:3702 20190612 UniProt TAIR:locus:2138743 +TAIR locus:2138718 ARGAH1 GO:0000050 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00158 P AT4G08900 AT4G08900|ARGAH1|arginine amidohydrolase 1|T3H13.7|T3H13_7 protein taxon:3702 20190612 UniProt TAIR:locus:2138718 +TAIR locus:2137380 ACBP2 GO:0000062 AGRICOLA_IND:IND22300138|TAIR:Publication:501680884 IDA F AT4G27780 AT4G27780|ACBP2|AtACBP2|acyl-CoA binding protein 2|T27E11.20|T27E11_20|ACYL-COA BINDING PROTEIN ACBP2 protein taxon:3702 20030709 TAIR TAIR:locus:2137380 +TAIR locus:2075507 AT3G02820 GO:0000076 TAIR:AnalysisReference:501756966 IEA InterPro:IPR040038 P AT3G02820 AT3G02820|F13E7.24|F13E7_24 protein taxon:3702 20190703 InterPro TAIR:locus:2075507 +TAIR locus:2079797 RAD9 GO:0000077 TAIR:AnalysisReference:501756966 IEA InterPro:IPR007268|InterPro:IPR026584 P AT3G05480 AT3G05480|ATRAD9|RAD9|F22F7.7|F22F7_7 protein taxon:3702 20190703 InterPro TAIR:locus:2079797 +TAIR locus:2042421 CYCP4;1 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT2G44740 AT2G44740|CYCP4;1|cyclin p4;1|F16B22.23 protein taxon:3702 20181101 InterPro TAIR:locus:2042421 +TAIR locus:2055552 cycp3;1 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT2G45080 AT2G45080|cycp3;1|cyclin p3;1|T14P1.11 protein taxon:3702 20181101 InterPro TAIR:locus:2055552 +TAIR locus:2088743 CYCP2;1 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT3G21870 AT3G21870|CYCP2;1|cyclin p2;1|MEK6.1 protein taxon:3702 20181101 InterPro TAIR:locus:2088743 +TAIR locus:2103391 CYCP3;2 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT3G60550 AT3G60550|CYCP3;2|cyclin p3;2|T8B10.210 protein taxon:3702 20181101 InterPro TAIR:locus:2103391 +TAIR locus:2099192 CYCP1;1 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT3G63120 AT3G63120|CYCP1;1|cyclin p1;1|T20O10.220 protein taxon:3702 20181101 InterPro TAIR:locus:2099192 +TAIR locus:2183394 CYCP4;3 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT5G07450 AT5G07450|CYCP4;3|cyclin p4;3|T2I1.160|T2I1_160 protein taxon:3702 20181101 InterPro TAIR:locus:2183394 +TAIR locus:2151656 CYCP4;2 GO:0000079 TAIR:AnalysisReference:501756966 IEA InterPro:IPR013922 P AT5G61650 AT5G61650|CYCP4;2|CYCP4|CYCLIN P4;2|K11J9.17|K11J9_17 protein taxon:3702 20181101 InterPro TAIR:locus:2151656 +TAIR locus:2144816 SDH3-1 GO:0000104 TAIR:AnalysisReference:501756966 IEA InterPro:IPR014314 F AT5G09600 AT5G09600|SDH3-1|succinate dehydrogenase 3-1|F17I14.210|F17I14_210 protein taxon:3702 20190703 InterPro TAIR:locus:2144816 +TAIR locus:505006113 ATP-PRT2 GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT1G09795 AT1G09795|ATATP-PRT2|HISN1B|ATP-PRT2|ATP phosphoribosyl transferase 2|ATP PHOSPHORIBOSYL TRANSFERASE 2 protein taxon:3702 20190907 UniProt TAIR:locus:505006113 +TAIR locus:2034516 AT-IE GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT1G31860 AT1G31860|AT-IE|HISN2|HISTIDINE BIOSYNTHESIS 2|F5M6.13|F5M6_13|PHOSPHORIBOSYL-ATP PYROPHOSPHOHYDROLASE protein taxon:3702 20181101 UniProt TAIR:locus:2034516 +TAIR locus:2196287 ATP-PRT1 GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT1G58080 AT1G58080|ATATP-PRT1|HISN1A|ATP-PRT1|ATP phosphoribosyl transferase 1|T15M6.9|T15M6_9|ATP PHOSPHORIBOSYL TRANSFERASE protein taxon:3702 20190907 UniProt TAIR:locus:2196287 +TAIR locus:2049470 APG10 GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT2G36230 AT2G36230|APG10|HISN3|ALBINO AND PALE GREEN 10|F2H17.16|F2H17_16|PHOSPHORIBOSYLFORMIMINO-5-AMINOIMIDAZOLE CARBOXAMIDE RIBOTIDE ISOMERASE|BBM II ISOMERASE protein taxon:3702 20190907 UniProt TAIR:locus:2049470 +TAIR locus:2129500 HISN5B GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT4G14910 AT4G14910|HISN5B|HISTIDINE BIOSYNTHESIS 5B|DL3495C|FCAALL.36 protein taxon:3702 20190723 UniProt TAIR:locus:2129500 +TAIR locus:2116422 AT-HF GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT4G26900 AT4G26900|AT-HF|HISN4|HIS HF protein taxon:3702 20181101 UniProt TAIR:locus:2116422 +TAIR locus:2136343 IMPL2 GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT4G39120 AT4G39120|IMPL2|HISN7|myo-inositol monophosphatase like 2|HISTIDINE BIOSYNTHESIS 7|T22F8.20|T22F8_20 protein taxon:3702 20190404 UniProt TAIR:locus:2136343 +TAIR locus:2163946 HDH GO:0000105 TAIR:AnalysisReference:501757242 IEA UniPathway:UPA00031 P AT5G63890 AT5G63890|ATHDH|HISN8|HDH|histidinol dehydrogenase|HISTIDINE BIOSYNTHESIS 8|MGI19.9|MGI19_9 protein taxon:3702 20190723 UniProt TAIR:locus:2163946 +TAIR locus:2174567 GS1 GO:0000121 TAIR:AnalysisReference:501756967 IEA EC:3.1.3.21 F AT5G57440 AT5G57440|GS1|GPP2|GLYCEROL-3-PHOSPHATASE 2|MUA2.2|MUA2_2 protein taxon:3702 20190601 UniProt TAIR:locus:2174567 +TAIR locus:2198698 AT1G05860 GO:0000123 TAIR:AnalysisReference:501756966 IEA InterPro:IPR026316 C AT1G05860 AT1G05860|T20M3.13|T20M3_13 protein taxon:3702 20190907 InterPro TAIR:locus:2198698 +TAIR locus:2065959 AT2G31600 GO:0000123 TAIR:AnalysisReference:501756966 IEA InterPro:IPR026316 C AT2G31600 AT2G31600|T9H9.12|T9H9_12 protein taxon:3702 20190907 InterPro TAIR:locus:2065959 +TAIR locus:2010667 TAFII59 GO:0000124 TAIR:AnalysisReference:501756966 IEA InterPro:IPR037796 C AT1G04950 AT1G04950|TAFII59|TAF6|ATTAF6|EMB2781|TATA BOX ASSOCIATED FACTOR II 59|TBP-associated factor 6|EMBRYO DEFECTIVE 2781|F13M7.6|F13M7_6|AtTAF6 protein taxon:3702 20190723 InterPro TAIR:locus:2010667 +TAIR locus:2091995 ENY2 GO:0000124 TAIR:AnalysisReference:501756966 IEA InterPro:IPR018783 C AT3G27100 AT3G27100|ENY2|MOJ10.18 protein taxon:3702 20190907 InterPro TAIR:locus:2091995 +TAIR locus:2024740 GATL5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G02720 AT1G02720|GATL5|AtGATL5|galacturonosyltransferase-like 5|T14P4.1|T14P4_1 protein taxon:3702 20190907 UniProt TAIR:locus:2024740 +TAIR locus:2024745 CSLD5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G02730 AT1G02730|ATCSLD5|CSLD5|SOS6|cellulose synthase-like D5|CELLULOSE SYNTHASE LIKE D5|SALT OVERLY SENSITIVE 6|T14P4.29 protein taxon:3702 20190404 UniProt TAIR:locus:2024745 +TAIR locus:2018329 AT1G04430 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G04430 AT1G04430|F19P19.11|F19P19_11 protein taxon:3702 20190820 UniProt TAIR:locus:2018329 +TAIR locus:2010657 AT1G04910 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G04910 AT1G04910|F13M7.10|F13M7_10 protein taxon:3702 20190820 UniProt TAIR:locus:2010657 +TAIR locus:2207225 AT1G05170 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G05170 AT1G05170|YUP8H12.22|YUP8H12_22 protein taxon:3702 20190907 UniProt TAIR:locus:2207225 +TAIR locus:2033092 GAUT6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G06780 AT1G06780|GAUT6|galacturonosyltransferase 6|F4H5.13|F4H5_13 protein taxon:3702 20181101 UniProt TAIR:locus:2033092 +TAIR locus:2033097 UXT3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G06890 AT1G06890|UXT3|UDP-XYLOSE TRANSPORTER3|F4H5.5|F4H5_5 protein taxon:3702 20181105 UniProt TAIR:locus:2033097 +TAIR locus:2025047 GONST2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G07290 AT1G07290|GONST2|golgi nucleotide sugar transporter 2|F22G5.37|F22G5_37 protein taxon:3702 20181105 UniProt TAIR:locus:2025047 +TAIR locus:2205135 TPST GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G08030 AT1G08030|TPST|AQC1|HPS7|tyrosylprotein sulfotransferase|active quiescent center1|hypersensitive to Pi starvation 7|T6D22.29|T6D22_29 protein taxon:3702 20181101 UniProt TAIR:locus:2205135 +TAIR locus:2025540 MGP2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G08660 AT1G08660|MGP2|SIA1|MALE GAMETOPHYTE DEFECTIVE 2|sialyltransferase-like 1|F22O13.14|F22O13_14 protein taxon:3702 20190820 UniProt TAIR:locus:2025540 +TAIR locus:2025640 PS1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G08700 AT1G08700|PS1|Presenilin-1|F22O13.18|F22O13_18 protein taxon:3702 20190723 UniProt TAIR:locus:2025640 +TAIR locus:2012350 GXM1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G09610 AT1G09610|GXM1|glucuronoxylan methyltransferase1|F14J9.29|F14J9_29 protein taxon:3702 20190907 UniProt TAIR:locus:2012350 +TAIR locus:2201916 ECA3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G10130 AT1G10130|ECA3|ATECA3|endoplasmic reticulum-type calcium-transporting ATPase 3|ARABIDOPSIS THALIANA ER-TYPE CA2+-ATPASE 3|T27I1.16|T27I1_16 protein taxon:3702 20190907 UniProt TAIR:locus:2201916 +TAIR locus:2012763 ADL6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G10290 AT1G10290|ADL6|DRP2A|dynamin-like protein 6|DYNAMIN-RELATED PROTEIN 2A|F14N23.17|F14N23_17 protein taxon:3702 20190723 UniProt TAIR:locus:2012763 +TAIR locus:2197364 TMN1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G10950 AT1G10950|TMN1|AtTMN1|EMP12|transmembrane nine 1|endomembrane protein 12|T19D16.13|T19D16_13 protein taxon:3702 20190820 UniProt TAIR:locus:2197364 +TAIR locus:2027352 AT1G11730 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G11730 AT1G11730|F25C20.12|F25C20_12 protein taxon:3702 20190907 UniProt TAIR:locus:2027352 +TAIR locus:2201966 ATBETAFRUCT4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G12240 AT1G12240|ATBETAFRUCT4|VAC-INV|FRUCT4|AtFRUCT4|VI2|AtVI2|VACUOLAR INVERTASE|fructosidase 4|vacuolar invertase 2|T28K15.3|T28K15_3 protein taxon:3702 20190408 UniProt TAIR:locus:2201966 +TAIR locus:2205314 GATL3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G13250 AT1G13250|GATL3|galacturonosyltransferase-like 3|T6J4.1|T6J4_1 protein taxon:3702 20190907 UniProt TAIR:locus:2205314 +TAIR locus:2014869 RRT4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G14020 AT1G14020|RRT4|F7A19.11|F7A19_11 protein taxon:3702 20190723 UniProt TAIR:locus:2014869 +TAIR locus:2006872 AT1G14670 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G14670 AT1G14670|F10B6.3|F10B6_3 protein taxon:3702 20190820 UniProt TAIR:locus:2006872 +TAIR locus:2017968 AT1G16560 GO:0000139 TAIR:AnalysisReference:501757241 IEA UniProtKB-SubCell:SL-0134 C AT1G16560 AT1G16560|F19K19.12|F19K19_12 protein taxon:3702 20181205 UniProt TAIR:locus:2017968 +TAIR locus:2015626 VHP2;2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G16780 AT1G16780|VHP2;2|AtVHP2;2|F17F16.2|F17F16_2 protein taxon:3702 20190907 UniProt TAIR:locus:2015626 +TAIR locus:2027453 GAUT11 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G18580 AT1G18580|GAUT11|galacturonosyltransferase 11|F25I16.8|F25I16_8 protein taxon:3702 20190820 UniProt TAIR:locus:2027453 +TAIR locus:2035030 XXT4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G18690 AT1G18690|XXT4|xyloglucan xylosyltransferase 4|F6A14.20|F6A14_20 protein taxon:3702 20190907 UniProt TAIR:locus:2035030 +TAIR locus:2016487 RRA3 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G19360 AT1G19360|RRA3|reduced residual arabinose 3|F18O14.8|F18O14_8 protein taxon:3702 20190820 UniProt TAIR:locus:2016487 +TAIR locus:2016392 AT1G19430 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G19430 AT1G19430|F18O14.20|F18O14_20 protein taxon:3702 20190820 UniProt TAIR:locus:2016392 +TAIR locus:2198581 SYTB GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G20080 AT1G20080|SYTB|ATSYTB|NTMC2TYPE1.2|NTMC2T1.2|SYT2|synaptotagmin 2|T20H2.13|T20H2_13 protein taxon:3702 20190907 UniProt TAIR:locus:2198581 +TAIR locus:2199557 URGT2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G21070 AT1G21070|URGT2|UDP-Rha/UDP-Gal transporter 2|T22I11.10|T22I11_10 protein taxon:3702 20181105 UniProt TAIR:locus:2199557 +TAIR locus:2201138 GONST5 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G21870 AT1G21870|GONST5|golgi nucleotide sugar transporter 5|T26F17.9|T26F17_9 protein taxon:3702 20181105 UniProt TAIR:locus:2201138 +TAIR locus:505006138 DD46 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G22015 AT1G22015|DD46 protein taxon:3702 20190907 UniProt TAIR:locus:505006138 +TAIR locus:2028862 CSLA03 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G23480 AT1G23480|ATCSLA03|CSLA03|ATCSLA3|CSLA3|cellulose synthase-like A3|F28C11.11 protein taxon:3702 20190404 UniProt TAIR:locus:2028862 +TAIR locus:2199917 CSLA10 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G24070 AT1G24070|ATCSLA10|CSLA10|cellulose synthase-like A10|CELLULOSE SYNTHASE LIKE A10|T23E23.23|T23E23_23 protein taxon:3702 20190404 UniProt TAIR:locus:2199917 +TAIR locus:2032357 LGT9 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G24170 AT1G24170|GATL8|LGT9|GALACTURONOSYLTRANSFERASE-LIKE 8|F3I6.10|F3I6_10 protein taxon:3702 20190907 UniProt TAIR:locus:2032357 +TAIR locus:2200660 GALT1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G26810 AT1G26810|GALT1|galactosyltransferase1|T24P13.20|T24P13_20 protein taxon:3702 20190907 UniProt TAIR:locus:2200660 +TAIR locus:2202805 AT1G26850 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G26850 AT1G26850|T2P11.4|T2P11_4 protein taxon:3702 20190820 UniProt TAIR:locus:2202805 +TAIR locus:2205774 GALT4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G27120 AT1G27120|GALT4|T7N9.18|T7N9_18 protein taxon:3702 20190907 UniProt TAIR:locus:2205774 +TAIR locus:2016004 GUT2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G27440 AT1G27440|GUT2|IRX10|ATGUT1|F17L21.23|F17L21_23|IRX10 protein taxon:3702 20190612 UniProt TAIR:locus:2016004 +TAIR locus:2010449 AGM1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G27930 AT1G27930|AGM1|F13K9.4|F13K9_4 protein taxon:3702 20190820 UniProt TAIR:locus:2010449 +TAIR locus:2013628 AT1G29470 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G29470 AT1G29470|F15D2.5|F15D2_5 protein taxon:3702 20190820 UniProt TAIR:locus:2013628 +TAIR locus:2204644 AT1G30630 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G30630 AT1G30630|T5I8.8|T5I8_8 protein taxon:3702 20190907 UniProt TAIR:locus:2204644 +TAIR locus:2015726 VSR6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G30900 AT1G30900|VSR6|VSR3;3|BP80-3;3|VACUOLAR SORTING RECEPTOR 6|VACUOLAR SORTING RECEPTOR 3;3|binding protein of 80 kDa 3;3|F17F8.23 protein taxon:3702 20190907 UniProt TAIR:locus:2015726 +TAIR locus:2034506 COG7 GO:0000139 TAIR:AnalysisReference:501757241 IEA UniProtKB-SubCell:SL-0134 C AT1G31780 AT1G31780|COG7|Conserved Oligomeric Golgi Complex 7|F5M6.21|F5M6_21 protein taxon:3702 20190116 UniProt TAIR:locus:2034506 +TAIR locus:2034522 AT1G31850 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G31850 AT1G31850|F5M6.14|F5M6_14 protein taxon:3702 20190820 UniProt TAIR:locus:2034522 +TAIR locus:2031735 OSCA1.8 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G32090 AT1G32090|OSCA1.8|F3C3.11|F3C3_11 protein taxon:3702 20190723 UniProt TAIR:locus:2031735 +TAIR locus:2031740 CSLD6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G32180 AT1G32180|ATCSLD6|CSLD6|cellulose synthase-like D6|CELLULOSE SYNTHASE LIKE D6|F3C3.4|F3C3_4 protein taxon:3702 20190404 UniProt TAIR:locus:2031740 +TAIR locus:2006892 UPEX1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G33430 AT1G33430|KNS4|UPEX1|KAONASHI 4|UNEVEN PATTERN OF EXINE1|F10C21.10|F10C21_10 protein taxon:3702 20190907 UniProt TAIR:locus:2006892 +TAIR locus:2012728 GXMT1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G33800 AT1G33800|GXMT1|AtGXMT1|GXM3|glucuronoxylan methyltransferase 1|glucuronoxylan methyltransferase3|F14M2.8|F14M2_8 protein taxon:3702 20190907 UniProt TAIR:locus:2012728 +TAIR locus:2009076 URGT6 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G34020 AT1G34020|URGT6|UDP-Rha/UDP-Gal transporter 6|F12G12.16|F12G12_16 protein taxon:3702 20181105 UniProt TAIR:locus:2009076 +TAIR locus:2008129 delta-ADR GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G48760 AT1G48760|delta-ADR|PAT4|AP-3delta|delta-adaptin|PROTEIN-AFFECTED TRAFFICKING 4|Adaptor protein 3 delta|F11I4.7|F11I4_7 protein taxon:3702 20190408 UniProt TAIR:locus:2008129 +TAIR locus:2017627 MCTP4 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G51570 AT1G51570|MCTP4|FTIP4|multiple C2 domain and transmembrane region protein 4|FT INTERACTING PROTEIN 4|F19C24.20|F19C24_20 protein taxon:3702 20190116 UniProt TAIR:locus:2017627 +TAIR locus:2017652 MSR2 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G51630 AT1G51630|MSR2|AtMSR2|Mannan Synthesis Related 2|F19C24.14|F19C24_14 protein taxon:3702 20190820 UniProt TAIR:locus:2017652 +TAIR locus:2018199 AT1G52360 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G52360 AT1G52360|F19K6.16|F19K6_16 protein taxon:3702 20190723 UniProt TAIR:locus:2018199 +TAIR locus:2009665 AT1G53290 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G53290 AT1G53290|F12M16.19|F12M16_19 protein taxon:3702 20190907 UniProt TAIR:locus:2009665 +TAIR locus:2197061 PME1 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G53840 AT1G53840|ATPME1|PME1|pectin methylesterase 1|T18A20.7|T18A20_7 protein taxon:3702 20190408 UniProt TAIR:locus:2197061 +TAIR locus:2020018 AT1G54320 GO:0000139 TAIR:AnalysisReference:501756971 IEA UniProtKB-SubCell:SL-0134 C AT1G54320 AT1G54320|F20D21.14|F20D21_14 protein taxon:3702 20190408 UniProt TAIR:locus:2020018 diff --git a/src/__tests__/data-download/january/tair.gaf.gz b/src/__tests__/data-download/january/tair.gaf.gz new file mode 100644 index 0000000..49d8e02 Binary files /dev/null and b/src/__tests__/data-download/january/tair.gaf.gz differ diff --git a/src/__tests__/test_data_fetcher.ts b/src/__tests__/test_data_fetcher.ts new file mode 100644 index 0000000..2d45587 --- /dev/null +++ b/src/__tests__/test_data_fetcher.ts @@ -0,0 +1,71 @@ +import express from "express"; +import { StructuredData } from "../ingest"; +import {startPeriodicallyCalling, getDataset} from "../data_fetcher"; + +describe("Periodically calling functions", () => { + + it("should call once for each period", () => { + let foo = jest.fn(); + startPeriodicallyCalling(foo, 300, new Date()); + setTimeout(() => expect(foo).toHaveBeenCalledTimes(3), 1000); + }); + + it("should only start calling after the start date", () => { + let bar = jest.fn(); + const startDate = new Date(); + startDate.setMilliseconds(startDate.getMilliseconds() + 500); + startPeriodicallyCalling(bar, 200, startDate); + setTimeout(() => expect(bar).toHaveBeenCalledTimes(0), 400); + setTimeout(() => expect(bar).toHaveBeenCalledTimes(2), 1000); + }); + + it("should stop running when a lifetime is provided", () => { + let foobar = jest.fn(); + startPeriodicallyCalling(foobar, 200, new Date(), 300); + setTimeout(() => expect(foobar).toHaveBeenCalledTimes(1), 500); + }); +}); + +test("The data getter reflects updates when the server changes", + async () => { + const path = require("path"); + + process.env["UPDATE_INTERVAL"] = "5000"; + process.env["UPDATE_AT_MIDNIGHT"] = "false"; + process.env["SERVER_LIFETIME_LENGTH"] = "20000"; + process.env["FILE_URL"] = "http://localhost:8080/annotations/tair.gaf.gz"; + + const januaryServer = serveFile(path.join(__dirname + "/january")); + + await new Promise(() => setTimeout(() => { + januaryServer.close(); + let februaryServer = serveFile(path.join(__dirname + "/february")); + setTimeout(() => februaryServer.close(), 10000); + }, 10000)); + + await new Promise(() => setTimeout(async () => { + const backend = require(path.join(__dirname + "/../../src/index.ts")); + + const januaryData: StructuredData = getDataset(); + await new Promise(() => setTimeout(() => { + const februaryData: StructuredData = getDataset(); + console.log(januaryData == februaryData); + console.log(januaryData === februaryData); + console.log(JSON.stringify(januaryData).split('at').length - 1); + console.log(JSON.stringify(februaryData).split('at').length - 1); + expect(januaryData).not.toEqual(februaryData); + expect(januaryData).toEqual(februaryData); + }, 12000)); + }, 5000)); +}, 25000); + +const serveFile = (filename: string, callback?: () => any) => { + const app = express(); + app.use("/annotations", express.static(filename)); + return app.listen(8080, () => { + console.log(`Serving file ${filename}`); + if (callback) { + callback(); + } + }); +}; diff --git a/src/data_fetcher.ts b/src/data_fetcher.ts new file mode 100644 index 0000000..ecf258f --- /dev/null +++ b/src/data_fetcher.ts @@ -0,0 +1,73 @@ +import {readFileSync} from "fs"; +import {resolve} from "path"; +import {ingestData, StructuredData, UnstructuredText} from "./ingest"; + +let mostRecentDataset: StructuredData; + +export const getDataset = (): StructuredData => { return mostRecentDataset; }; + +export const downloadData = (dataUrl: string) => { + const { spawnSync } = require("child_process"); + const path = require("path"); + const filepath = path.join(__dirname + "/../assets/"); + spawnSync("cd " + filepath + " ; rm tair.gaf"); + spawnSync("cd " + filepath + " ; wget " + dataUrl); + spawnSync("cd " + filepath + " ; gunzip *.gz"); +} + +export const updateData = () => { + const file_url = process.env["FILE_URL"] || "http://current.geneontology.org/annotations/tair.gaf.gz"; + downloadData(file_url); + console.log("Begin reading data"); + const genesText = readFileSync(resolve("assets/gene-types.txt")).toString(); + const annotationsText = readFileSync(resolve("assets/tair.gaf")).toString(); + const unstructuredText: UnstructuredText = {genesText, annotationsText}; + const maybeDataset = ingestData(unstructuredText); + if (!maybeDataset) throw new Error("failed to parse data"); + const dataset: StructuredData = maybeDataset; + mostRecentDataset = dataset; + console.log("Finished parsing data"); +}; + +export const startPeriodicallyCalling = (fn: (...args: any[]) => void, interval: number = (1000 * 60 * 60 * 24), startDate: Date = new Date(), lifetime?: number) => { + const now = new Date(); + + const update_at_midnight: string = process.env["UPDATE_AT_MIDNIGHT"] || "true"; + if (update_at_midnight === "true") { + startDate = getTomorrowMorning(); + } + + let timer; + if (isSameTimeOfDay(startDate, now)) { + timer = setInterval(fn, interval); + } else { + let difference = startDate.getTime() - now.getTime(); + if (difference > 0) { + if (lifetime) { + setTimeout(startPeriodicallyCalling, difference, fn, interval, startDate, lifetime); + } else { + setTimeout(startPeriodicallyCalling, difference, fn, interval, startDate); + } + return; + } else { + timer = setInterval(fn, interval); // Just begins the updates now if the startDate is in the past + } + } + + if (lifetime) { + setTimeout(clearInterval, lifetime, timer); + } +}; + +export const getTomorrowMorning = (): Date => { + const tomorrowMorning: Date = new Date(); + tomorrowMorning.setDate(tomorrowMorning.getDate() + 1); + tomorrowMorning.setHours(0); + tomorrowMorning.setMinutes(0); + tomorrowMorning.setSeconds(0); + return tomorrowMorning; +}; + +const isSameTimeOfDay = (time1, time2) => { + return time1.getHours() === time2.getHours() && time1.getMinutes() === time2.getMinutes(); +} diff --git a/src/index.ts b/src/index.ts index 3486fbe..14c263f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,6 +4,17 @@ import {V1Service} from "./services/v1"; import {resolve} from "path"; import cors from "cors"; import compression from "compression"; +import { updateData, startPeriodicallyCalling, getTomorrowMorning } from './data_fetcher'; + +updateData(); +const default_interval: string = (1000 * 60 * 60 * 24).toString(); +const interval: string = process.env["UPDATE_INTERVAL"] || default_interval; +const update_at_midnight: string = process.env["UPDATE_AT_MIDNIGHT"] || 'true'; +if (update_at_midnight === "true") { + startPeriodicallyCalling(updateData, parseInt(interval), getTomorrowMorning()); +} else { + startPeriodicallyCalling(updateData, parseInt(interval)); +} const app = express(); app.use(cors()); @@ -14,6 +25,11 @@ app.use(/\/$/, (req, res) => res.redirect("/app/")); app.use("/app/", express.static(process.env["FRONTEND_PUBLIC_PATH"] || resolve("../ifad-frontend/build"))); const PORT = process.env.PORT || 3000; -app.listen(PORT, () => { +const server = app.listen(PORT, () => { console.log(`🚢 Now listening on 0.0.0.0:${PORT} 🔥`); -}); \ No newline at end of file +}); + +const lifetime: string | null = process.env["SERVER_LIFETIME_LENGTH"] || null; +if (lifetime) { + setTimeout(() => server.close(() => console.log("Server closed")), parseInt(lifetime)); +} diff --git a/src/services/v1.ts b/src/services/v1.ts index ea6d6a9..f9e0a33 100644 --- a/src/services/v1.ts +++ b/src/services/v1.ts @@ -1,27 +1,11 @@ -import {readFileSync} from "fs"; -import {resolve} from "path"; import {Errors, GET, Path, QueryParam, Return, ContextResponse} from "typescript-rest"; import {GeneProductTypeFilter, Query, queryDataset, QueryOption, Segment, Strategy} from "../queries"; -import { - AnnotationStatus, - Aspect, - ingestData, - makeAnnotationIndex, - StructuredData, - UnstructuredText -} from "../ingest"; +import {AnnotationStatus, Aspect, makeAnnotationIndex, StructuredData} from "../ingest"; import {annotationsToGAF, genesToCSV, buildGenesMetadata, buildAnnotationMetadata} from '../export'; import express from "express"; +import { getDataset } from '../data_fetcher'; -// TODO use data fetcher rather than files. -console.log("Begin reading data"); -const genesText = readFileSync(process.env["GENES_FILE"] || resolve("assets/gene-types.txt")).toString(); -const annotationsText = readFileSync(process.env["ANNOTATIONS_FILE"] || resolve("assets/tair.gaf")).toString(); -const unstructuredText: UnstructuredText = {genesText, annotationsText}; -const maybeDataset = ingestData(unstructuredText); -if (!maybeDataset) throw new Error("failed to parse data"); -const dataset: StructuredData = maybeDataset; -console.log("Finished parsing data"); +const dataset: StructuredData = getDataset(); type Format = "gaf" | "gene-csv" | "json";