#!/opt/conda/conda-bld/albatradis_1758427780971/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pl/bin/python
import argparse
import sys
import os
import pkg_resources
sys.path.append('../')
sys.path.append('./')
from albatradis.AlbaTraDISScatterPlot import AlbaTraDISScatterPlot


version = ''
try:
	version = pkg_resources.get_distribution("albatradis").version
except pkg_resources.DistributionNotFound:
	version = 'x.y.z'

parser = argparse.ArgumentParser(
	description = 'Create scatter plot of controls vs conditions',
	usage = 'albatradis-scatterplot [options] --control control1.plot --control control2.plot --condition condition1.plot --condition condition2.plot', formatter_class=argparse.ArgumentDefaultsHelpFormatter)

parser.add_argument('--control', '-c',  help='control files (use 2 or more)', type=str, action='append')
parser.add_argument('--condition', '-d',  help='condition files (use 2 or more)', type=str, action='append')
parser.add_argument('--window_size',	       '-w', help='Window size', type=int, default= 50)
parser.add_argument('--outputfile', '-o',  help='Output filename prefix', type=str, default='scatter')

parser.add_argument('--normalise', '-n', action='store_true', help='normalise the files', default = False)

parser.add_argument('--verbose', '-v', action='store_true', help='Print out more information while it runs', default = False)
parser.add_argument('--debug', action='store_true', help='Turn on debugging', default = False)
parser.add_argument('--version', action='version', version=str(version))


options = parser.parse_args()

if options.debug:
	options.verbose = True
	import cProfile, pstats, io
	pr = cProfile.Profile()
	pr.enable()
		
	albatradis = AlbaTraDISScatterPlot(options)
	albatradis.run()
		
	pr.disable()
	s = io.StringIO()
	sortby = 'cumulative'
	ps = pstats.Stats(pr, stream=s).sort_stats(sortby)
	ps.print_stats()
	print(s.getvalue())
else:
	albatradis = AlbaTraDISScatterPlot(options)
	albatradis.run()
