# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):
# 
# Path: lib/stats.py
# class ReferenceMappingStatistics:
# class MappingRow:
# 	def __init__(self):
# 	def to_string(self):
# 	def to_csv(self):
# 	def computeMeasures(self):
# 	def diff(self, other):
# 	def __init__(self, alignment=None):


from lib import util
from lib import stats

def init(self):
	mapper = self.getMapper()

	if self._("output:bam"):
		self.setc("output:extension", ".bam")
	else:
		self.setc("output:extension", ".sam")

	self.setc("output:testee_path", self._("output:mapping_prefix") + mapper.getName() + self._("output:extension"))
	self.setc("output:sorted_testee_path", "sorted_" + self._("output:testee_path"))

	self.setc("input:sorted_mapping_comparison", "sorted_" + self._("input:mapping_comparison"))

	if self.mate._("evaluation:pos_threshold") != None:
		self.setc("evaluation:pos_threshold", self.mate._("evaluation:pos_threshold"))

	# Translate basic IO configuration into mapper parameters
	mapper.setInReferenceFile(self._("input:reference"))
	mapper.setInReadFiles(self._("input:reads"))
	mapper.setInPaired(self._("input:reads_paired_end"))
	mapper.setOutMappingFile(self._("output:testee_path"))
	mapper.addParams(self._("params"))

	# TODO: Fix
	if self._("output:bam"):
		mapper.addParams({"ngm": {"b": ""}})

	self.enterWorkingDirectory()
	self.dbg("Ref:   " + util.abs_path(self._("input:reference")))

# Path: lib/util.py
# STATUS_NORMAL=1
# STATUS_MAX_MEMORY_EXCEEDED=2
# STATUS_MAX_RUNTIME_EXCEEDED=3
# MAX_LEN_OUT = 10000
# def runAndMeasure(command,detailed=True,maxtime=0,maxmem=0):
# def runSimple(command):
# def runAndMeasureInternal(return_queue,command,maxtime=0,maxmem=0):
# def runInternal(control_queue,command,max_memory):
# def measureProcess(queue, initial_pids, command, measurement_interval=1, max_runtime=0, max_memory=0, debug=False):
# 	def extendTargets(targets, proc):
# 	def killTargets(targets):
# 	def updateTargets(targets, metrics):
# 	def updateMetrics(target, metrics):
# def loadConfig(name, parent_dir="", already_included=[]):
# def setCallDir(d):
# def setRootDir(d):
# def enterCallDir():
# def enterRootDir():
# def getRootDir():
# def nl2br(text):
# def msg(text="", level=1):
# def yes_no(b):
# def md5(text):
# def merge(x, y):
# def formatFilesize(n):
# def percent(val, base, offset=0):
# def abs_path(path):
# def get_sam_header_line_count(filename):
# def is_sam_sorted(filename):
# def sort_sam(filename,threads=1):
# def sort_sam_picard(filename,threads=-1):
# def line_count(filename):
# def sanitize_string(s):
# def makeExportDropdown(plot_id,csv_filename):
# def parseMD(md,seq):
# 
# Path: lib/stats.py
# class ReferenceMappingStatistics:
# class MappingRow:
# 	def __init__(self):
# 	def to_string(self):
# 	def to_csv(self):
# 	def computeMeasures(self):
# 	def diff(self, other):
# 	def __init__(self, alignment=None):


# Path: tests_base/base_mapping/init.py
from lib import util
from lib import stats


def init(self):
	mapper = self.getMapper()

	if self._("output:bam"):
		self.setc("output:extension", ".bam")
	else:
		self.setc("output:extension", ".sam")

	self.setc("output:testee_path", self._("output:mapping_prefix") + mapper.getName() + self._("output:extension"))
	self.setc("output:sorted_testee_path", "sorted_" + self._("output:testee_path"))

	self.setc("input:sorted_mapping_comparison", "sorted_" + self._("input:mapping_comparison"))

	if self.mate._("evaluation:pos_threshold") != None:
		self.setc("evaluation:pos_threshold", self.mate._("evaluation:pos_threshold"))

	# Translate basic IO configuration into mapper parameters
	mapper.setInReferenceFile(self._("input:reference"))
	mapper.setInReadFiles(self._("input:reads"))
	mapper.setInPaired(self._("input:reads_paired_end"))
	mapper.setOutMappingFile(self._("output:testee_path"))
	mapper.addParams(self._("params"))

	# TODO: Fix
	if self._("output:bam"):
		mapper.addParams({"ngm": {"b": ""}})

	self.enterWorkingDirectory()
	self.dbg("Ref:   " + util.abs_path(self._("input:reference")))

	self.dbg("Reads: " + util.abs_path(self._("input:reads")[0]))