see_chrom.c
This high-level file directs the entire process from start to finish.
1) Creating markov models of each region on each chromosome
Refer to see_chromeread_input and see_chrom_gen_model.c
2) Computing differences between regions
First, get a 'task list' which is a list of pairs of chromosomes. Note that
because the similarity score is symmetrical, if we compute the similarities
between regions in chromosomes 1 and 2, we don't need to compute similarities
between 2 and 1.
Because this is a cpu-intensive process, I added worker threads that
can work in parallel. There is a simple threadpool-like model, where
each worker gets a task from the task list (guarded by a mutex),
and then performs the task.
If we divided the work in advance, this can be poor utilization if the tasks
take an uneven amount of time to complete.
3) Getting the most similar regions and making a visualization
Refer to see_chrom_vis.c
These files encompass the most salient points of how see_chrom_regions works. I welcome any questions and feedback.