{"id":15914575,"url":"https://github.com/bbengfort/brisera","last_synced_at":"2025-04-03T03:44:19.418Z","repository":{"id":33771416,"uuid":"37428125","full_name":"bbengfort/brisera","owner":"bbengfort","description":"A Spark implementation of a distributed seed and reduce algorithm","archived":false,"fork":false,"pushed_at":"2015-06-14T20:38:21.000Z","size":11940,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T17:45:52.908Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbengfort.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-14T20:19:09.000Z","updated_at":"2015-06-14T20:39:44.000Z","dependencies_parsed_at":"2022-09-08T18:01:14.554Z","dependency_job_id":null,"html_url":"https://github.com/bbengfort/brisera","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Fbrisera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Fbrisera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Fbrisera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbengfort%2Fbrisera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbengfort","download_url":"https://codeload.github.com/bbengfort/brisera/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933357,"owners_count":20857052,"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":[],"created_at":"2024-10-06T17:04:25.359Z","updated_at":"2025-04-03T03:44:19.398Z","avatar_url":"https://github.com/bbengfort.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Brisera\n=======\n\nA Python implementation of a distributed seed and reduce algorithm (similar to BlastReduce and CloudBurst) that utilizes RDDs (resilient distributed datasets) to perform fast iterative analyses and dynamic programming without relying on chained MapReduce jobs.\n\nQuick Start\n-----------\n\nThe code is organized as follows:\n\n- `apps/` - this directory contains the SparkApplications to be run\n- `brisera/` - this is the python module with the code\n- `tests/` - contains a stub testing library for ensuring things work\n- `fixtures/` - contains reference data for running the apps against\n- `docs/` - stubs for documentation for the project\n\nTo install the required dependencies:\n\n    $ pip install -r requirements.txt\n\nThe code for Brisera is found in the `brisera` Python module. This module must be available to the spark applications (e.g. able to be imported) either by running the spark applications locally in the working directory that contains `brisera` or by using a virtual environment (recommended). You can install `brisera` and all dependencies, use the setup.py function:\n\n    $ python setup.py install\n\nBut note that you will still have to have access to the Spark applications that are in the `apps/` directory - don't delete them out of hand!\n\nUsage\n-----\n\nTo read a burst sequence file (e.g. `fixtures/cloudburst/100k.br`) in order to compare results from CloudBurst to Brisera, you can use the `read_burst.py` Spark application as follows:\n\n    $ spark-submit --master local[*] apps/read_burst.py \u003csequence_file\u003e \u003coutput_dir\u003e\n\nThis will write out each record (or chunk) from the sequence file to a text file on disk.\n\nTo convert a FASTA file for use with Brisera alignments, you can use the `convert_fasta.py` Spark application as follows:\n\n    $ spark-submit --master local[*] apps/convert_fasta.py input.fa output.ser\n\nThis command will transform a single FASTA file into a chunked, binary format that can be used with Spark in a computationally efficient way (preparing the chunks for seed reduce).\n\nTo compute alignments, use the `brisera_align.py` Spark application. Note that this application takes its configuration from the `conf/brisera.yaml` file, an example of which is included. You can modify the configuration for the app by modifying that file. Run the alignment as follows:\n\n    $ spark-submit --master local[*] apps/brisera_align.py refpath qrypath outpath\n\nThe input is as follows:\n\n- The `refpath` is the converted FASTA file of the reference genome you wish to align to\n- The `qrypath` is the set of queries or reads that you would like aligned to the reference\n- The `outpath` is where the alignment information will be written to when complete\n\nDepending on the value you set for K, this could take seconds to hours; be aware of how modifying the settings can change things!\n\nOther Details\n-------------\n\nBrisera means to \"explode\" or to \"burst\" in Swedish. Since I'm reworking CloudBurst and BlastReduce (both of which use BLAST) to Spark (weirdly all the same terminology) it felt right to name the project something burst/explode related. (I tried a few languages, but Swedish had the best result).\n\n### References\n\n1. M\\. C. Schatz, “BlastReduce: high performance short read mapping with MapReduce,” University of Maryland, [http://cgis. cs.umd.edu/Grad/scholarlypapers/papers/MichaelSchatz](http://cgis. cs.umd.edu/Grad/scholarlypapers/papers/MichaelSchatz). pd f, 2008.\n\n1. M\\. C. Schatz, “CloudBurst: highly sensitive read mapping with MapReduce,” Bioinformatics, vol. 25, no. 11, pp. 1363–1369, 2009.\n\n1. X\\. Li, W. Jiang, Y. Jiang, and Q. Zou, “Hadoop Applications in Bioinformatics,” in Open Cirrus Summit (OCS), 2012 Seventh, 2012, pp. 48–52.\n\n1. R\\. K. Menon, G. P. Bhat, and M. C. Schatz, “Rapid parallel genome indexing with MapReduce,” in Proceedings of the second international workshop on MapReduce and its applications, 2011, pp. 51–58.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbengfort%2Fbrisera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbengfort%2Fbrisera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbengfort%2Fbrisera/lists"}