{"id":22314404,"url":"https://github.com/chrisarg/bio-seqalignment-examples-enhancing-edlib","last_synced_at":"2025-03-26T02:46:07.042Z","repository":{"id":244150623,"uuid":"814413264","full_name":"chrisarg/bio-seqalignment-examples-enhancing-edlib","owner":"chrisarg","description":"Parallelizing the Edlib sequencing library using MCE and OpenMP in Perl","archived":false,"fork":false,"pushed_at":"2024-06-21T03:32:22.000Z","size":7042,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T11:50:21.089Z","etag":null,"topics":["bioinformatics","rna-seq","sequence-alignment","sequencing-rna"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisarg.png","metadata":{"files":{"readme":"README","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-13T01:07:06.000Z","updated_at":"2024-06-21T03:32:25.000Z","dependencies_parsed_at":"2024-06-13T05:53:59.563Z","dependency_job_id":"7ee12d34-84b1-495b-bab6-ac5edd036d98","html_url":"https://github.com/chrisarg/bio-seqalignment-examples-enhancing-edlib","commit_stats":null,"previous_names":["chrisarg/bio-seqalignment-examples-enhancing-edlib"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisarg%2Fbio-seqalignment-examples-enhancing-edlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisarg%2Fbio-seqalignment-examples-enhancing-edlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisarg%2Fbio-seqalignment-examples-enhancing-edlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisarg%2Fbio-seqalignment-examples-enhancing-edlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisarg","download_url":"https://codeload.github.com/chrisarg/bio-seqalignment-examples-enhancing-edlib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245579582,"owners_count":20638676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","rna-seq","sequence-alignment","sequencing-rna"],"created_at":"2024-12-03T22:09:55.612Z","updated_at":"2025-03-26T02:46:07.025Z","avatar_url":"https://github.com/chrisarg.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"NAME\n    Bio::SeqAlignment::Examples::EnhancingEdlib - Parallelizing Edlib with\n    MCE, OpenMP using Inline and FFI::Platypus\n\nVERSION\n    version 0.03\n\nSYNOPSIS\n    A collection of examples that demonstrate how to enhance the sequence\n    alignment library Edlib by adding process level parallelism (through\n    MCE) and thread level parallelism (through OpenMP). These examples\n    hopefully demonstrate the general present day relevance of Perl for\n    constructing bioinformatic applications related to sequence mapping.\n\nDESCRIPTION\n    This distribution provides examples of sequence mapping applications\n    build on top of the Edlib library. The examples demonstrate how to use\n    the MCE and OpenMP parallelism libraries to speed up the sequence\n    alignment process through process and thread level parallelism. The\n    examples are meant to be illustrative of the capabilities of Perl to\n    create parallel components for sequencing applications. These examples\n    educational, and are not meant to be used in production code. However,\n    they can be used as a starting point for creating such applications,\n    which is the point we are trying to make in the presentation given at\n    the Perl and Raku conference 2024.\n\n    All scripts were used to generate data for the talk given to the Science\n    Track of the Perl \u0026 Raku conference 2024 https://tprc.us/tprc-2024-las/\n    https://blogs.perl.org/users/oodler_577/2024/01/perl-raku-conference-202\n    4-to-host-a-science-track.html\n\ndb\n    This is a directory that holds the sequence data used in the examples.\n    It contains two files : Homo_sapiens.GRCh38.cds.sample.strip.fasta :\n    1000 sequences Homo_sapiens.GRCh38.sample.end.strip.fasta : 648\n    sequences from the human transcriptome.\n\nscripts\n    This is a directory that holds various scripts in Perl and R that are\n    used to generate and analyze performance data for the MCE and openMP\n    enhanced versions of edlib.\n\n  testMapMCE_openMP.pl\n    Perl script that illustrates the use of the Linear dataflow and the\n    Generic Mapper dicussed in Bio::SeqAlignment::Components::SeqMapping\n    \u003chttps://metacpan.org/pod/Bio::SeqAlignment::Components::SeqMapping\u003e for\n    the creation of an MCE and OpenMP enhanced version of Edlib. Running the\n    script generates the results file timings_openMP.txt . Before running in\n    your own machine, please make sure that the number of workers and the\n    number of threads are set between 1 and the maximum number of\n    hyperthreads for your system.\n\n  testMapMCE_overC.pl\n    Perl script that illustrates the use of the Linear dataflow and the\n    Generic Mapper dicussed in Bio::SeqAlignment::Components::SeqMapping\n    \u003chttps://metacpan.org/pod/Bio::SeqAlignment::Components::SeqMapping\u003e for\n    the creation of an MCE enhanced version of Edlib. Running the script\n    generates the results file timings.txt . Before running in your own\n    machine, please make sure that the number of workers is set between 1\n    and the maximum number of hyperthreads for your system. Feel free to\n    experiment with different chunk sizes (the script only checks chunk\n    sizes between 1 and 20 query sequences).\n\n  plot_timings.R\n    R script that generates the figures for the benchmarking between the MCE\n    and MCE/OpenMP enhanced versions of Edlib.\n\n  timings.txt\n    Execution timings of the MCE version of the enhanced Edlib library. This\n    is a tab separated file with three columns: Workers : number of MCE\n    workers Time : execution time in seconds Chunk_Size : MCE chunk size\n\n  timings_openMP.txt\n    Execution timings of the MCE/openMP version of the enhanced Edlib\n    library. This is a tab separated file with three columns: Workers :\n    number of MCE workers Time : execution time in seconds Num_Threads :\n    Number of OpenMP threads\n\n  timings_chunk.png\n    Plot of the timings.txt file\n\n  timings_MCE_OMP.png\n    Plot of the execution times of the MCE enhanced version of Edlib (for\n    chunk size of one) for an increasing number of MCE workers v.s. the\n    MCE/OpenMP enhancement for an increasing number of threads for single\n    worker.\n\n  timings_MCE_with_OMP.png\n    Plot of the execution times of the MCE/OpenMP enhanced version of Edlib\n    for various combinations of workers and threads. The figure is a two\n    dimensional histogram (rendered as a contour plot) with the 5% best\n    performing combinations marked with a '+' sign.\n\n  spacetime_MCE_OMP.png\n    Plot of the resources (copies of data in memory x execution time) used\n    by the MCE enhanced version of Edlib (for chunk size of one) for an\n    increasing number of MCE workers v.s. the MCE/OpenMP enhancement for an\n    increasing number of threads for single worker.\n\n  spacetime_MCE_with_OMP.png\n    Plot of the resources (copies of data in memory x execution time) used\n    by the MCE/OpenMP enhanced version of Edlib for various combinations of\n    workers and threads. The figure is a two dimensional histogram (rendered\n    as a contour plot) with the 5% best performing combinations marked with\n    a '+' sign.\n\n  Worker_Thread_effects.png\n    Main effects of the number of workers and threads on the execution time\n    of the MCE/OpenMP enhanced version of Edlib. The figure is generated by\n    fitting a Generalized Additive Model (GAM) analysis of the data in the\n    timings_MCE_with_OMP.txt file and plotting the main effects of the\n    number of workers and threads.\n\n  Worker_Thread_interaction.png\n    Interaction effects of the number of workers and threads on the\n    execution time of the MCE/OpenMP enhanced version of Edlib. The figure\n    is generated by fitting a Generalized Additive Model (GAM) analysis of\n    the data in the timings_MCE_with_OMP.txt file and plotting the\n    generalized interaction term between the number of workers and threads.\n\nSEE ALSO\n    *   edlib \u003chttps://metacpan.org/pod/Alien::SeqAlignment::edlib\u003e\n\n        This distribution provides edlib static and shared libraries so that\n        they can be used by other Perl distributions that are on CPAN.\n\n    *   Bio::SeqAlignment \u003chttps://metacpan.org/pod/Bio::SeqAlignment\u003e\n\n        A collection of tools and libraries for aligning biological\n        sequences from within Perl.\n\n    *   Bio::SeqAlignment::Components::SeqMapping\n        \u003chttps://metacpan.org/pod/Bio::SeqAlignment::Components::SeqMapping\u003e\n\n        Components (modules for dataflow in sequencing applications and\n        generic mappers) to create sequence mapping applications in Perl.\n\n    *   Bio::SeqAlignment::Components::Libraries::edlib\n        \u003chttps://metacpan.org/pod/Bio::SeqAlignment::Components::Libraries::\n        edlib\u003e\n\n        Edlib sequence mapping library binding for Perl. Two versions are\n        provided, one that is FFI based and one that is Inline based.\n\n    *   MCE \u003chttps://metacpan.org/pod/MCE\u003e\n\n        MCE (Many-Core Engine) is a high performance parallel processing\n        library for Perl. It is designed to take advantage of the many cores\n        available on modern processors and provides a simple interface for\n        creating parallel components in Perl.\n\n    *   OpenMP \u003chttps://www.openmp.org/\u003e\n\n        The OpenMP ARB (Architecture Review Boards) mission is to\n        standardize directive-based multi-language high-level parallelism\n        that is performant, productive and portable. Jointly defined by a\n        group of major computer hardware and software vendors and major\n        parallel computing user facilities, the OpenMP API is a portable,\n        scalable model that gives shared-memory parallel programmers a\n        simple and flexible interface for developing parallel applications\n        on platforms ranging from embedded systems and accelerator devices\n        to multicore systems and shared-memory systems.\n\n    *   PDL \u003chttps://metacpan.org/pod/PDL\u003e\n\n        The Perl Data Language (PDL) gives standard Perl the ability to\n        compactly store and speedily manipulate the large N-dimensional data\n        arrays which are the bread and butter of scientific computing. PDL\n        turns Perl into a free, array-oriented, numerical language that can\n        be a very solid alternative to switching to Python or R for\n        numerical computations during complex data analysis tasks and\n        pipelines.\n\nAUTHOR\n    Christos Argyropoulos \u003cchrisarg@cpan.org\u003e\n\nCOPYRIGHT AND LICENSE\n    This software is copyright (c) 2024 by Christos Argyropoulos.\n\n    This is free software; you can redistribute it and/or modify it under\n    the same terms as the Perl 5 programming language system itself.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisarg%2Fbio-seqalignment-examples-enhancing-edlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisarg%2Fbio-seqalignment-examples-enhancing-edlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisarg%2Fbio-seqalignment-examples-enhancing-edlib/lists"}