969b42c220fc9641ecc3ca8a3f16fab6ca6467d5 wong Wed Sep 7 11:29:34 2011 -0700 updated sydh tfbs notes to reflect the mnaseD experiment revocation diff --git python/programs/dateCheck/dateCheck python/programs/dateCheck/dateCheck new file mode 100755 index 0000000..77f1028 --- /dev/null +++ python/programs/dateCheck/dateCheck @@ -0,0 +1,110 @@ +#!/usr/bin/python + +import sys +import os +import datetime +dir = os.path.dirname(os.path.abspath(__file__)) +#print "dir = %s" % dir + +library = os.path.join(dir,"../../lib") +#print library + + + +sys.path.append(library) +#sys.path.append('/cluster/home/wong/kent/python/lib/') + +from ucscgenomics.rafile.RaFile import * + +def indexhg18(rafile): + objlist = {} + rahg18 = RaFile(rafile) + + #structure is hg18expids[expIdviewreplicate] = information dict + #used for easy lookup of an equivalent hg18 object, it will only run through the list of expids first instead of all objects looking for a match + hg18expids = {} + + for key in rahg18.keys(): + stanza = rahg18[key] + if not ('replicate' in stanza): + stanza['replicate'] = "NA" + #print "hg18:%s" % (stanza['metaObject']) + if 'expId' in stanza: + info = {} + info['replicate'] = stanza['replicate'] + info['dateSubmitted'] = stanza['dateSubmitted'] + info['dateUnrestricted'] = stanza['dateUnrestricted'] + info['metaObject'] = stanza['metaObject'] + expid = stanza['expId'] + rep = stanza['replicate'] + objview = stanza['view'] + key = "%s%s%s" % (expid, rep, objview) + hg18expids[key] = info + + return(hg18expids) + + +def gethg19objects(rafile): + ra = RaFile(rafile) + objlist = {} + for key in ra.keys(): + stanza = ra[key] + objinfo = {} + if not ('replicate' in stanza): + stanza['replicate'] = "NA" + #print "hg19:%s" % (stanza['metaObject']) + if 'expId' in stanza: + objinfo['expId'] = stanza['expId'] + objinfo['view'] = stanza['view'] + objinfo['replicate'] = stanza['replicate'] + if 'dateUnrestricted' in stanza: + objinfo['dateUnrestricted'] = stanza['dateUnrestricted'] + objinfo['dateSubmitted'] = stanza['dateSubmitted'] + objlist[stanza['metaObject']] = objinfo + return(objlist) + + + +def main(): + + if len(sys.argv) != 3: + arglen = len(sys.argv) + print arglen + sys.exit("usage: dateCheck.py hg19.ra hg18.ra") + #sys.exit() + + + hg18expids = indexhg18(sys.argv[2]) + hg19objects = gethg19objects(sys.argv[1]) + date = datetime.date + today = str(date.today()) + #print today + + for key in hg19objects.keys(): + expid = hg19objects[key]['expId'] + rep = hg19objects[key]['replicate'] + view = hg19objects[key]['view'] + key2 = "%s%s%s" % (expid, rep, view) + #print "key2 = %s" % (key2) + if key2 in hg18expids: + infodict = hg18expids[key2] + setvars = "" + vars = "" + if infodict['dateSubmitted'] < hg19objects[key]['dateSubmitted']: + #print "\n" + #print "%s vs %s, dateSubmitted: %s vs %s" % (key, infodict['metaObject'], infodict['dateSubmitted'], hg19objects[key]['dateSubmitted']) + setvars = "dateSubmitted=%s dateResubmitted=%s" % (infodict['dateSubmitted'], hg19objects[key]['dateSubmitted']) + + if infodict['dateUnrestricted'] < hg19objects[key]['dateSubmitted'] and hg19objects[key]['dateUnrestricted'] > today: + #print "%s vs %s, dateUnrestricted: %s vs %s" % (key, infodict['metaObject'], infodict['dateUnrestricted'], hg19objects[key]['dateUnrestricted']) + setvars = "%s dateUnrestricted=%s" % (setvars, infodict['dateUnrestricted']) + + if setvars: + if rep == "NA": + vars = "expId=%s view=%s" % (expid, view) + else: + vars = "expId=%s view=%s replicate=%s" % (expid, view, rep) + print "mdbUpdate hg19 -vars=\"%s\" -setVars=\"%s\"" % (vars, setvars) + +if __name__ == "__main__": + main()