Peax is a tool for interactive visual pattern search and exploration in epigenomic data based on unsupervised representation learning with autoencoders
It should also be possible to start with an already initialized classifier. Technically this could be achieved by passing in a custom constructor that returns an already initialized classifier. In this case, Peax should only assume that the classifier's API matches SKLearn's API and crash mindfully if it does not. I.e., it should print an info message that it's the user's responsibility to ensure that the API conforms to SKLearn.
may I ask you how did you implement the communication between FE and BE after having triggered time-consuming operations such as model training (which run in separated threads)? How does the BE inform FE (for rerendering entire information on the page) after finishing a time-consuming job?
At the first glance, I could see that you don't use sockets.
I stumbled on your software, and would be interested to use it on an HPC cluster (e.g., with job management via SLURM). Do you have documentation / protocol to do this? Is running the server (with the GUI) absolutely required?
Currently, the search is based on a sliding-window approach over the input data. Each window is taken as is and encoded using the associated autoencoder. This approach is geared towards search in a global context, i.e., find two peaks that appear as peaks in the global context. This requires the underlying distribution is roughly the same across the entire datasets.
In cases where this is not the case, it can be useful to allow instance-based normalization. I.e., prior to encoding a window, the window could be normalized based on its local neighborhood. This could theoretically be done prior to the search but it would be convenient if Peax supports this out of the box at runtime.