/*
 * PeakSeq
 * Version 1.01
 * Paper by Joel Rozowsky, et. al.
 * Coded in C by Theodore Gibson.
 * config.h
 * This file contains all of the parameters for the program, including input
 * 	and output file locations.
 */


#ifndef CONFIG_H
#define CONFIG_H


// The first chromosome used. (23 is X, 24 is Y, 25 is M.)
#define MIN_CNUM 1
// The last chromosome used. (23 is X, 24 is Y, 25 is M.)
#define MAX_CNUM 25
// Number of simulations per window to estimate FDR.
#define N_SIMS 10
// Average length of DNA fragments.
#define READ_LENGTH 200
// The maximum gap allowed between peaks for them to be merged together.  Hits
// 	that have greater separations aren't merged.
#define MAX_GAP 200
// Required false discovery rate.
#define MIN_FDR 0.05
// Maximum number of reads using the same starting nulceotide.
#define MAX_COUNT 3
// Window size for scoring (in nucleotides).
#define W_SIZE 1000000
// Number of windows per chromosome
#define W_PER_C 250
// Bin size for doing linear regression.
#define BIN_SIZE 10000
// Bin size for doing linear regression for mitochondria.
#define BIN_SIZE_M 1000
// The amount on each side that regions are extended when
// extended regions are used.
#define EXTENDED_REGION_SIZE 2000
// The threshold pvalue for a peak to be outputted to the final file.
#define PVAL_THRESH 0.05
// The largest region for which the extended region is evaluated.  For peaks
// 	larger than this, only the peak is evaluated for the control input file.
#define MAX_REG_EXT 1000

// The following are used to construct filenames.  A string of the format chr1
// 	to chrM is placed between the PREFIX and SUFFIX of each filename.
// The sample Eland files.
#define ELAND_PREFIX "../Score_hits_polII/new_PolII/sgr_files/PolII_eland_result."
#define ELAND_SUFFIX ".txt"
// The sample sgr files.
#define SGR_PREFIX "../Score_hits_polII/new_PolII/sgr_files/PolII."
#define SGR_SUFFIX ".sgr"
// The file with the information about the mappability fractions.
#define MAP_FILENAME "../Score_hits_polII/Code/Mapability_HG.txt"
// The control input Eland files.
#define INPUT_PREFIX "../Score_hits_polII/Input/sgr_files/Input_eland_result."
#define INPUT_SUFFIX ".txt"
// The location of the intermediate output file with peaks sorted by position.
#define OUTPUT "PolII.txt"
// The location of the final output file with peaks sorted by q-value (p-value
//	after BH correction for multiple hypothesis testing).
#define FINAL "PolII.final.txt"


// Parameters and calculations based on parameters that are not to be changed.
// Minimum allowed threshold.
#define MIN_THRESH 2
// Maximum allowed threshold.
#define MAX_THRESH 100
// The total number of thresholds.
#define N_THRESHES (MAX_THRESH - MIN_THRESH + 1)
// The total number of chromosomes used in the program.
#define N_CHRS (MAX_CNUM - MIN_CNUM + 1)
// The number of bins on a single chromosome.
#define N_BINS W_SIZE * W_PER_C / BIN_SIZE
// The maximum number of characters in a filename.
#define FILENAME_LENGTH 200
// The score of a start position of a read used in determining the aggregate
//	height of a position.
#define START 1
// The score of a stop position of a read used in determining the aggregate
//	height of a position.
#define STOP -1


#endif	/* CONFIG_H */
