This is a job server to distribute sequencing tasks among portable devices that run f5n
- Clone the repository**
git clone https://github.com/AnjanaSenanayake/f5n_server.git
- Inside the cloned directory, compile source code**
mvn install
- Deploy in a jetty server(Feel free to use any server, jetty dependencies are already added in pom)**
mvn jetty:run
- Open localhost in any web browser.**
The source code for the Mobile Application can be found here
- Download a dataset
- Pair each reads.fastq(a) and the corresponding (multi)fast5 files. refer scripts.
- Compress each pair as a .zip file. (you should now have a folder with many number of .zip files)
- Run f5n-server
- Configure the folder path to the folder containing the .zip files.
- Configure a pipeline
- Create jobs
- Connect to f5n-server with mobile phones using the local IP address.
Since client-server communication happens only when a job is requested or to get updates of a job, server side is not multi-threaded. Rest of the client requests have to wait while the first client is served. Once a client is served(ex:a job is assigned) the socket is closed. Average service time is minimal thus, we assume mutli-threaded server will not enhance the performance. Also the fact that not all the clients try to connect to the server at the same time supports this. Moreover, there is a considerable time gap between intermediate minIT ouputs. Hence, a client may have to wait until a new job get listed.
minIT is changing their output file format continuously. Hence we advice the user to alter the code to cater for different scenarios.
- stop server & reconfiguration pipeline components
- data set update listner
- pipeline configuration form validations
- user messages/warnings/errors to frontend