# Implementing parallel correlation with rust ### Notes In an attempt to speed the current gn2 correlation we are doing an reimplentation in rust to support parralel computation ## Tags * assigned:alem,Fred * type: upgrade * priority: medium * status: closed, completed * keywords: correlation,rust,parralel ## Tasks * [X] implementation of basic pearson and spearman correlation in rust * [X] add unittests and benchmarks * [X] loading datasets;format * [X] package the library as a guix package * [x] gn2 integration * [x] parsing input datasets * [x] benchmark for all datasets rust v gn2 version * [ ] Figure out how to tell cargo to use the declared dependencies, rather than dowloading the dependencies * [*] db queries migration to gn3 or use partial correlation queries * [x] add parralel computation * [x] code optimization and minor fixes * [x] lmbd parser * [x] implement biweight mid correlation for rust * [] fix lmdb-rust packaging * [] production deployment ## Notes You can call the lib as an external process from any language or directly call it in a rust cargo code can be found here: => https://github.com/Alexanderlacuna/correlation_rust.git added a documentation for correlation rust => https://github.com/Alexanderlacuna/correlation_rust/blob/main/README.md PR for integrating to genenetwork: => https://github.com/genenetwork/genenetwork3/pull/93 ### 8 ,July 2022 worked on input data parsing and enhancements PR for parsing datasets => https://github.com/genenetwork/genenetwork3/pull/96 ## 17,Aug 2022 integration of correlation rust ongoing with @fred working also including optimizing of slow queries,code refatoring ## 5 Sept 2022 use text files similar to gn1 see example => https://github.com/genenetwork/genenetwork1/blob/d2381dd5bb35cb906032f7d530e9d14984e1de21/web/webqtl/correlation/CorrelationPage.py#L271 also something to be considered is lmdb ## 20 Sept 2022 integrated codebase to store db in text files for probeset types => https://github.com/genenetwork/genenetwork2/pull/736 ## 11 july 2023 * implemented Parallel computation implementation with rust completed * implemented both lmdb and csv parser in rust => https://github.com/Alexanderlacuna/correlation_rust/pull/3/files#diff-87f0275ed65ae8ffe36df25091c9b975defbc920da7b5ec3c2dadb7d57ad4d67