#!/bin/tcsh -efx

# Kill any running daemons
killall edwRunDaemon

# Destroy current encodeDataWarehouse and make a fresh one
hgsql encodeDataWarehouse -e "drop database encodeDataWarehouse"

# Create fifos for submission daemon.  Write 'hi' to
# is so that it'll notice that the database is gone and kill itself
# if it is already running
set subFifo = /usr/local/apache/userdata/edwSubmit.fifo
if (! -e $subFifo) then
    mkfifo $subFifo
    chmod a+x $subFifo
endif
echo hi > $subFifo &

# Do same thing for QA agent daemon.
set qaFifo = /usr/local/apache/userdata/edwQaAgent.fifo
if (! -e $qaFifo) then
    mkfifo $qaFifo
    chmod a+x $qaFifo
    echo hi > $qaFifo &
endif
echo hi > $qaFifo &

# Do the often time consuming removal of all data.
rm -rf /hive/groups/encode/encode3/encodeDataWarehouse

# Make new data directory.
mkdir /hive/groups/encode/encode3/encodeDataWarehouse

# Create database and populate it with empty tables.
hgsql hgFixed -e "create database encodeDataWarehouse"
hgsql encodeDataWarehouse < encodeDataWarehouse.sql

# Add to database settings
hgsql -e "insert into edwSettings (name,val) values ('prefix', 'DEVFF')" encodeDataWarehouse

# Create users
edwCreateUser kent@soe.ucsc.edu
hgsql -e "update edwUser set isAdmin=1 where email='kent@soe.ucsc.edu'" encodeDataWarehouse
edwCreateUser euriehong@stanford.edu
hgsql -e "update edwUser set isAdmin=1 where email='euriehong@stanford.edu'" encodeDataWarehouse
edwCreateUser edw@encodedcc.sdsc.edu
edwCreateUser cherry@stanford.edu
edwCreateUser vmalladi@stanford.edu
hgsql -e "update edwUser set isAdmin=1 where email='vmalladi@stanford.edu'" encodeDataWarehouse
edwCreateUser cricketsloan@stanford.edu
hgsql -e "update edwUser set isAdmin=1 where email='cricketsloan@stanford.edu'" encodeDataWarehouse
edwCreateUser etchan@stanford.edu
hgsql -e "update edwUser set isAdmin=1 where email='etchan@stanford.edu'" encodeDataWarehouse
edwCreateUser jseth@stanford.edu 
hgsql -e "update edwUser set isAdmin=1 where email='jseth@stanford.edu'" encodeDataWarehouse
edwCreateUser lrowe@stanford.edu
edwCreateUser kate@soe.ucsc.edu
edwCreateUser brianlee@soe.ucsc.edu
edwCreateUser katrina@soe.ucsc.edu
edwCreateUser chinhli@soe.ucsc.edu
hgsql -e "update edwUser set isAdmin=1 where email='chinhli@soe.ucsc.edu'" encodeDataWarehouse
edwCreateUser chli@ucsc.edu
edwAddAssembly 9606 hg19 hg19 /hive/data/genomes/hg19/hg19.2bit -symLink=bcdbfbe9da62f19bee88b74dabef8cd3
edwAddAssembly 9606 male.hg19 hg19 /hive/groups/encode/encode3/encValData/hg19/male.hg19.2bit -symLink=d536cde4657b63e92c52719cd1bd71d1
edwAddAssembly 9606 female.hg19 hg19 /hive/groups/encode/encode3/encValData/hg19/female.hg19.2bit -symLink=b7fe3540ba1bf22f8c89a7bbded3f4ee
edwAddAssembly 9606 hg38 hg38 /hive/data/genomes/hg38/hg38.2bit -symLink=dcc3ea27079aa6dc3f9deccd7275e0f8
edwAddAssembly 9606 male.hg38 hg38 /hive/groups/encode/encode3/encValData/male.hg38/male.hg38.2bit -symLink=c375a5dfe63d3855204650ba32844ded
edwAddAssembly 9606 female.hg38 hg38 /hive/groups/encode/encode3/encValData/female.hg38/female.hg38.2bit -symLink=a2bf270b37a1d5964f3092216584be73
edwAddAssembly 10090 mm9 mm9 /gbdb/mm9/mm9.2bit -symLink=e47354d24b9d95e832c337d42b9f8f71
edwAddAssembly 10090 mm10 mm10 /gbdb/mm10/mm10.2bit -symLink=fcfcc276799031793a513e2e9c07adad
edwAddAssembly 10090 male.mm9 mm9 /hive/groups/encode/encode3/encValData/mm9/male.mm9.2bit -symLink=be61b8e211215b75be377d33db77caa8
edwAddAssembly 10090 female.mm9 mm9 /hive/groups/encode/encode3/encValData/mm9/female.mm9.2bit -symLink=79e6601f7f4bbcfad657c7a9708477b8
edwAddAssembly 10116 rn4 rn4 /gbdb/rn4/rn4.2bit -symLink=9f0ed3cd87ab900be5e8157dbeaee12e
edwAddAssembly 7227 dm3 dm3 /gbdb/dm3/dm3.2bit -symLink=4ec509b470010829be44ed8e7bfd7f57
edwAddAssembly 559292 sacCer3 sacCer3 /gbdb/sacCer3/sacCer3.2bit -symLink=880201a7d1ec95c0185b0b4783c80411
edwAddAssembly 6239 ce10 ce10 /gbdb/ce10/ce10.2bit -symLink=3d0bab4bc255fc5b3276a476e13d230c
edwAddAssembly 562 escCol1 escCol1 /hive/groups/encode/encode3/encValData/escCol1/escCol1.2bit
edwAddAssembly 7227 dm6 dm6 /gbdb/dm6/dm6.2bit -symLink=a2855251bb81479b1742dbbbd575fdc
edwAddQaEnrichTarget open hg19 /hive/groups/encode/encode3/encValData/hg19/regions/open.bb
edwAddQaEnrichTarget exon hg19 /hive/groups/encode/encode3/encValData/hg19/regions/exon.bb
edwAddQaEnrichTarget promoter hg19 /hive/groups/encode/encode3/encValData/hg19/regions/promoter.bb
edwAddQaEnrichTarget coding hg19 /hive/groups/encode/encode3/encValData/hg19/regions/coding.bb
edwAddQaEnrichTarget intron hg19 /hive/groups/encode/encode3/encValData/hg19/regions/intron.bb
edwAddQaEnrichTarget utr hg19 /hive/groups/encode/encode3/encValData/hg19/regions/utr.bb
edwAddQaEnrichTarget utr3 hg19 /hive/groups/encode/encode3/encValData/hg19/regions/utr3.bb
edwAddQaEnrichTarget utr5 hg19 /hive/groups/encode/encode3/encValData/hg19/regions/utr5.bb
edwAddQaEnrichTarget chrX hg19 /hive/groups/encode/encode3/encValData/hg19/regions/chrX.bb
edwAddQaEnrichTarget chrY hg19 /hive/groups/encode/encode3/encValData/hg19/regions/chrY.bb
edwAddQaEnrichTarget open mm9 /hive/groups/encode/encode3/encValData/mm9/regions/open.bb
edwAddQaEnrichTarget exon mm9 /hive/groups/encode/encode3/encValData/mm9/regions/exon.bb
edwAddQaEnrichTarget promoter mm9 /hive/groups/encode/encode3/encValData/mm9/regions/promoter.bb
edwAddQaEnrichTarget coding mm9 /hive/groups/encode/encode3/encValData/mm9/regions/coding.bb
edwAddQaEnrichTarget intron mm9 /hive/groups/encode/encode3/encValData/mm9/regions/intron.bb
edwAddQaEnrichTarget utr3 mm9 /hive/groups/encode/encode3/encValData/mm9/regions/utr3.bb
edwAddQaEnrichTarget utr5 mm9 /hive/groups/encode/encode3/encValData/mm9/regions/utr5.bb
edwAddQaEnrichTarget utr mm9 /hive/groups/encode/encode3/encValData/mm9/regions/utr.bb
edwAddQaEnrichTarget chrX mm9 /hive/groups/encode/encode3/encValData/mm9/regions/chrX.bb
edwAddQaEnrichTarget chrY mm9 /hive/groups/encode/encode3/encValData/mm9/regions/chrY.bb
edwAddQaEnrichTarget open mm10 /hive/groups/encode/encode3/encValData/mm10/regions/open.bb
edwAddQaEnrichTarget exon mm10 /hive/groups/encode/encode3/encValData/mm10/regions/exon.bb
edwAddQaEnrichTarget promoter mm10 /hive/groups/encode/encode3/encValData/mm10/regions/promoter.bb
edwAddQaEnrichTarget coding mm10 /hive/groups/encode/encode3/encValData/mm10/regions/coding.bb
edwAddQaEnrichTarget intron mm10 /hive/groups/encode/encode3/encValData/mm10/regions/intron.bb
edwAddQaEnrichTarget utr3 mm10 /hive/groups/encode/encode3/encValData/mm10/regions/utr3.bb
edwAddQaEnrichTarget utr5 mm10 /hive/groups/encode/encode3/encValData/mm10/regions/utr5.bb
edwAddQaEnrichTarget utr mm10 /hive/groups/encode/encode3/encValData/mm10/regions/utr.bb
edwAddQaEnrichTarget chrX mm10 /hive/groups/encode/encode3/encValData/mm10/regions/chrX.bb
edwAddQaEnrichTarget chrY mm10 /hive/groups/encode/encode3/encValData/mm10/regions/chrY.bb
edwAddQaEnrichTarget open hg38 /hive/groups/encode/encode3/encValData/hg38/regions/open.bb
edwAddQaEnrichTarget exon hg38 /hive/groups/encode/encode3/encValData/hg38/regions/exon.bb
edwAddQaEnrichTarget promoter hg38 /hive/groups/encode/encode3/encValData/hg38/regions/promoter.bb
edwAddQaEnrichTarget coding hg38 /hive/groups/encode/encode3/encValData/hg38/regions/coding.bb
edwAddQaEnrichTarget intron hg38 /hive/groups/encode/encode3/encValData/hg38/regions/intron.bb
edwAddQaEnrichTarget utr hg38 /hive/groups/encode/encode3/encValData/hg38/regions/utr.bb
edwAddQaEnrichTarget utr3 hg38 /hive/groups/encode/encode3/encValData/hg38/regions/utr3.bb
edwAddQaEnrichTarget utr5 hg38 /hive/groups/encode/encode3/encValData/hg38/regions/utr5.bb
edwAddQaEnrichTarget chrY hg38 /hive/groups/encode/encode3/encValData/hg38/regions/chrY.bb
edwAddQaEnrichTarget exon dm3 /hive/groups/encode/encode3/encValData/dm3/regions/exon.bb
edwAddQaEnrichTarget promoter dm3 /hive/groups/encode/encode3/encValData/dm3/regions/promoter.bb
edwAddQaEnrichTarget intron dm3 /hive/groups/encode/encode3/encValData/dm3/regions/intron.bb
edwAddQaEnrichTarget exon ce10 /hive/groups/encode/encode3/encValData/ce10/regions/exon.bb
edwAddQaEnrichTarget promoter ce10 /hive/groups/encode/encode3/encValData/ce10/regions/promoter.bb
edwAddQaEnrichTarget intron ce10 /hive/groups/encode/encode3/encValData/ce10/regions/intron.bb
edwAddQaEnrichTarget exon dm6 /hive/groups/encode/encode3/encValData/dm6/regions/exon.bb
edwAddQaEnrichTarget promoter dm6 /hive/groups/encode/encode3/encValData/dm6/regions/promoter.bb
edwAddQaEnrichTarget intron dm6 /hive/groups/encode/encode3/encValData/dm6/regions/intron.bb
edwAddQaContamTarget hg19
edwAddQaContamTarget mm10
edwAddQaContamTarget ce10
edwAddQaContamTarget dm3
edwAddQaContamTarget rn4
edwAddQaContamTarget sacCer3
edwAddQaContamTarget escCol1
edwAddQaContamTarget hg38
# edwAddQaContamTarget dm6
hgsql encodeDataWarehouse -e 'create view enrichedFiles as select f.id,v.format,v.enrichedIn,e.enrichment,left(f.submitFileName,70) submitFileName from edwQaEnrich e,edwValidFile v,edwFile f,edwQaEnrichTarget t where e.fileId=f.id and v.fileId=f.id and t.id=e.qaEnrichTargetId and v.enrichedIn=t.name;'
hgsql encodeDataWarehouse -e 'create view crossEnrichments as select e.id aId,e.edwFileName aFileName,y.id bId,y.edwFileName bFileName,ev.enrichedIn enrich,sampleSampleEnrichment xEnrichment from edwFile e,edwQaPairSampleOverlap p, edwFile y,edwValidFile ev where e.id=p.elderFileId and y.id=p.youngerFileId and ev.fileId = e.id'
hgsql encodeDataWarehouse -e 'create view correlations as select e.id aId,e.edwFileName aFileName,y.id bId,y.edwFileName bFileName,pearsonInEnriched from edwFile e,edwQaPairCorrelation p, edwFile y where  e.id=p.elderFileId and y.id=p.youngerFileId'
hgsql encodeDataWarehouse -e 'create view vf as select e.id fileId,submitId,submitFileName,edwFileName,FROM_UNIXTIME(endUploadTime) endUploadTime,FROM_UNIXTIME(updateTime) updateTime,size,md5,tags,errorMessage,deprecated,replacedBy,v.id validId,licensePlate,format,outputType,experiment,replicate,enrichedIn,ucscDb,itemCount,basesInItems,mapRatio,depth,singleQaStatus,replicateQaStatus,technicalReplicate,pairedEnd,qaVersion,uniqueMapRatio from edwFile e, edwValidFile v where e.id = v.fileId'

hgsql encodeDataWarehouse -e 'create view xf as select fileId,submitId,submitFileName,edwFileName,endUploadTime endUploadTime,updateTime updateTime,size,md5,tags,errorMessage,deprecated,replacedBy,validId,licensePlate,format,outputType,experiment,replicate,enrichedIn,ucscDb,itemCount,basesInItems,mapRatio,depth,singleQaStatus,replicateQaStatus,technicalReplicate,pairedEnd,qaVersion,uniqueMapRatio,rfa,assayType,dataType,lab,biosample,ipTarget from vf,edwExperiment ex where vf.experiment = ex.accession'

#Add experiment table,  just a local one rather than from stanford
hgsql encodeDataWarehouse -e 'load data local infile "../oneShot/rsyncEdwExpDataType/jan17.tab" into table edwExperiment'
hgsql encodeDataWarehouse -e 'load data local infile "../oneShot/edwFakeBiosample/jan3.tab" into table edwBiosample'


## Add eap tables and run eap setup script
hgsql encodeDataWarehouse < ../../eap/lib/eapDb.sql
../../eap/lib/addSoftware

# Relaunch edwRunDaemons.  Send them initial wake up message
restartDeamons
