64f127cb71252486ce096a832ac7fad3deb324a5
mmaddren
  Wed Sep 14 17:04:53 2011 -0700
large-scale renaming change to allow python to be built into cluster/bin, also mkGeoPkg now renames files
diff --git python/programs/mkChangeNotes/mkChangeNotes python/programs/mkChangeNotes/mkChangeNotes
new file mode 100755
index 0000000..6115da6
--- /dev/null
+++ python/programs/mkChangeNotes/mkChangeNotes
@@ -0,0 +1,123 @@
+#!/hive/groups/encode/dcc/bin/python
+import sys, os, shutil, stat, argparse, datetime
+from ucscgenomics.compositetrack.CompositeTrack import *
+from ucscgenomics.rafile.RaFile import *
+from ucscgenomics.softfile.SoftFile import *
+from ucscgenomics.cvfile.CvFile import *
+
+def diff(list1, list2):
+	return list1.difference(list2), list1.intersection(list2), list2.difference(list1)
+	
+def diff2(dict1, dict2):
+	for file in list1.itervalues():
+		if file.name in list2:
+			if file.md5sum == dict2[file.name].md5sum:
+				same.append(file)
+			else:
+				new.append(file)
+		else:
+			dep.append(file)
+	
+	for file in dict2.itervalues():
+		if file.name not in dict1:
+			new.append(file)
+			
+	return new, same, dep
+	
+def main():
+
+	parser = argparse.ArgumentParser(description = 'Prepares a submission to GEO. Creates a soft file and shell script with the correct call to aspera.')
+	parser.add_argument('-t', '--trackPath', help='Overrides the default track path ~/kent/src/hg/makeDb/trackDb/')
+	parser.add_argument('-i', '--instrument', help='If specified, expIds without instruments listed will default to this value. Use the no-spacing name eg Illumina_GA2')
+	parser.add_argument('database', help='The database, typically hg19 or mm9')
+	parser.add_argument('composite', help='The composite name, wgEncodeCshlLongRnaSeq for instance')
+	parser.add_argument('expIds', nargs='*', help='Any number of expIds separated by spaces, you can also specify a range by using a hyphen, "140 150 160-170" for instance, or leave blank to specify the entire file')
+	
+	if len(sys.argv) == 1:
+		parser.print_usage()
+		return
+	
+	args = parser.parse_args(sys.argv[1:])
+		
+	compositeTrack = CompositeTrack(args.database, args.composite, args.trackPath)
+	
+	cvPath = compositeTrack.trackPath + 'cv/alpha/cv.ra'
+	cv = CvFile(cvPath)
+	
+	same = list()
+	new = list()
+	changed = list()
+	dep = list()
+	
+	r1 = 0
+	r2 = 1
+	print len(compositeTrack.releases)
+	
+	for file in compositeTrack.releases[r1].itervalues():
+		if file.name in compositeTrack.releases[r2]:
+			if file.md5sum == compositeTrack.releases[r2][file.name].md5sum:
+				same.append(file)
+			else:
+				new.append(file)
+		else:
+			dep.append(file)
+		
+	for file in compositeTrack.releases[r2].itervalues():
+		if file.name not in compositeTrack.releases[r1]:
+			new.append(file)
+			
+	print 'Same: ' + str(len(same))
+	for file in same:
+		print file.name
+		
+	print 'New: ' + str(len(new))
+	for file in new:
+		print file.name
+		
+	print 'Deprecated: ' + str(len(dep))
+	for file in dep:
+		print file.name
+		
+	alphafiles = compositeTrack.alphaMetaDb.filter(lambda s: 'fileName' in s, lambda s: s['fileName'])
+	publicfiles = compositeTrack.publicMetaDb.filter(lambda s: 'fileName' in s, lambda s: s['fileName'])
+	
+	sameMdb = list()
+	newMdb = list()
+	depMdb = list()
+	
+	for file in alphafiles:
+		if file in publicfiles:
+			sameMdb.append(file)
+		else:
+			depMdb.append(file)
+		
+	for file in publicfiles:
+		if file not in alphafiles:
+			newMdb.append(file)
+			
+	print 'Same Mdb: ' + str(len(same))
+	for file in sameMdb:
+		print file
+		
+	print 'New Mdb: ' + str(len(new))
+	for file in newMdb:
+		print file
+		
+	print 'Deprecated Mdb: ' + str(len(dep))
+	for file in depMdb:
+		print file
+		
+	onlyAlphaMdb = list()
+	bothAlpha = list()
+	onlyAlphaD = list()
+	
+	onlyPublicMdb = list()
+	bothPublic = list()
+	onlyPublicD = list()
+	
+	for file in alphafiles:
+		
+
+	
+if __name__ == '__main__':
+	main()
\ No newline at end of file