[Devices]
# Tensorflow distribution strategy
DistStrategy = MirroredStrategy
# Use old-style explicit build device placement instead of the distribution strategy
Simple_build = False
# Model build device
Device_build = /device:GPU:0


[DataLoad]
# Use TFREcordDatasets
Use_TFData = True
# Alternatively: Use generators to use data batch-by-batch, if it doesn't fit in memory
LoadTrainingByBatch = True
# Use multiprocessing - disable if training freezes
Multiprocessing = False
# No. of threads to use for batch-by-batch loading
BatchWorkers = 4
# Batch queue size
BatchQueue = 128

[InputData]
# Read length
SeqLength = 250
# Mask zeros (padding and Ns) in input
MaskZeros = False
# Use subreads
UseSubreads = False
# Min subread length (closed interval [min,max])
MinSubreadLength = 50
# Max subread length (closed interval [min,max])
MaxSubreadLength = 250
# Subread length distribution (not implemented)
DistSubread = uniform

[Architecture]
# Reverse complement architecture. none (no RC), siam (separate flow for each strand) or full (full RC mode)
RC_Mode = full
# No. of convolutional layers
N_Conv = 0
# No. of recurrent layers
N_Recurrent = 1
# No. of dense layers
N_Dense = 0
# Random seed for weight initialization
Seed = 0
# Use advanced Keras activations, e.g. PReLU (not implemented)
AdvancedActivations = False
# Weight initializer: he_uniform or glorot_uniform
WeightInit = he_uniform
# Gain for the orthogonal recurrent initializer (change only if you know why)
OrthoGain = 1.0
# Input dropout rate
Input_Dropout = 0.20
# No. of convolutional filters
Conv_Units = 0
# Convolutional filter size
Conv_FilterSize = 0
# Activation function
Conv_Activation = relu
# Use batch normalization
Conv_BN = False
# Pooling mode: max, average, last_max, last_average or none. Max & last_max are incompatible with shap
Conv_Pooling = average
# Dropout rate
Conv_Dropout = 0.0
# No. of recurrent units
Recurrent_Units = 384
# Use batch normalization
Recurrent_BN = False
# Dropout rate
Recurrent_Dropout = 0.5
# Dense merge function:
#    maximum: motif on fwd fuzzy OR rc (Goedel t-conorm)
#    multiply: motif on fwd fuzzy AND rc (product t-norm)
#    add: motif on fwd PLUS/"OR" rc (Shrikumar-style)
#    average: motif on fwd PLUS/"OR" rc (Shrikumar-style), rescaled
Dense_Merge = add
# No. of units in the dense layer
Dense_Units = 256,256
# Activation function
Dense_Activation = relu
# Use batch normalization
Dense_BN = False
# Dropout rate
Dense_Dropout = 0.0

[ClassWeights]
# Use a weighting scheme
UseWeights = False
# Negative class count if needed
ClassCounts = 2508805,17491368
# Initialize bias of the final layer with log(pos/neg)
LogInit = False

[Paths]
# Path to training data
TrainingData = ./train_data.npy
# Path to training labels
TrainingLabels = ./train_labels.npy
#Path to validation data
ValidationData = ./val_data.npy
# Path to validation labels
ValidationLabels = ./val_labels.npy
# A prefix used for the model and output files
RunName = img-sensitive-lstm

[Training]
# First epoch (1-indexed)
EpochStart = 1
# Max last epoch, exclusive (1-indexed)
EpochEnd = 15
# Batch size
BatchSize = 512
# Early stopping patience
Patience = 10
# L2 regularization factor
Lambda_L2 = 0.0
# Learning rate
LearningRate = 0.001
# Keras optimizer
Optimizer = adam
# Log memory usage (rss)
MemUsageLog = True
# Print and plot summaries. Uses Keras for plotting, so requires graphviz and pydot
Summaries = False
# Logging path
LogPath = logs
# Use TensorBoard
Use_TB = False
# TensorBoard histogram freq
TBHistFreq = 1
