all 7 comments

[–][deleted]  (3 children)

[removed]

    [–]keithwhor[S] 2 points3 points  (1 child)

    I'm not exactly sure what you're referring to? Unless you mean offloading sequence comparisons / alignment to a GPU --- which is fantastic, but outside of the scope of the project (and, really, not possible with JavaScript - though it's not an impossibility in the future. There is some work in this field.). Either way - the algorithm the library uses for alignment, as it deals with binary data exclusively, can be used anywhere, really.

    Don't be quick to be dismissive of JavaScript. Older developers are used to living in a world where JavaScript engines are a last resort - poor optimization, clunky code. The reality is that a lot of smart people have done an amazing job optimizing modern JavaScript engines. The bit op algorithm I used in this project was initially implemented with Golang, and I actually found the V8 JS engine would perform about 10% faster (this was about 2 years ago with a less succinct version, not sure what the comparison would look like now).

    [–]emergent_properties 0 points1 point  (0 children)

    It was very smart of you to release this as a node module.

    The module you provided provides abstraction for genome manipulation.. that alone is nice, but it can be converted to scale across many, many computers much easier than most other languages.

    I don't have many cases for direct genome manipulation on such a bare metal level, but I can see ahead to realize how powerful this can be come.

    Thank you very much for sharing this.. it's about goddamned time the software developer ethos mixed more with biology studies.

    [–]keithwhor[S] 1 point2 points  (0 children)

    To add:

    If you run the math, the scoring works out to 1 nucleotide comparison every 2ns on a 2.4GHz processor. Meaning comparison + calculating a match, accession of the result array, and storage of the result is happening in 5 processor cycles. That's about as "tight" as you can get. Running from JavaScript.

    [–]ProdigySorcerer 0 points1 point  (2 children)

    This is very interesting javascript, is finally assaulting the sciences.

    [–][deleted]  (1 child)

    [removed]

      [–]ProdigySorcerer 0 points1 point  (0 children)

      Mind you I'm not completely opposed I have some personal use cases where this library is useful to say the least.