- Getting me familiar with Rust (a language I had no previous experience in)
- Getting me familiar with Variation Graphs concepts, and with the Handlegraph API (which also has a Rust implementation)
So, in order convert from GFA to VCF, I have to:
- Consider one (or more) paths as a reference
- For each reference, explore all other possible paths
- When a different node is reached, consider its sequence as a variant (a "bubble")
With that in mind, I started writing Rust code by trying to stay as close as possible to Flavia's code. Unfortunately, since Python and Rust are very different languages, that didn't go as well as expected. For one, it was very hard to tell what variable types I had to use (since in Python types are implicit); secondly, I experienced many issues when trying to use closures/lambdas (something I had rarely done before).
Another unexpected thing I experienced is that some methods found in Flavia's code were missing from Handlegraph's Rust implementation (specifically for_each_path_handle and for_each_step_in_path). So, I created my own fork of rs-handlegraph but I'm still trying to figure out how to correctly implement them.
Currently, I still have to fix a few issues from the list above. Once I solve these issues, I'll start running comparisons between my program and Flavia's, to make sure they work in the same way.
No comments:
Post a Comment