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.