{"id":20425100,"url":"https://github.com/databio/uniwig","last_synced_at":"2025-07-23T11:36:31.857Z","repository":{"id":229007303,"uuid":"279366159","full_name":"databio/uniwig","owner":"databio","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-10T21:20:35.000Z","size":20714,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-05T04:44:40.295Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/databio.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-13T17:15:45.000Z","updated_at":"2024-03-21T14:48:04.000Z","dependencies_parsed_at":"2024-11-15T07:22:19.886Z","dependency_job_id":null,"html_url":"https://github.com/databio/uniwig","commit_stats":null,"previous_names":["databio/uniwig"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/databio/uniwig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databio%2Funiwig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databio%2Funiwig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databio%2Funiwig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databio%2Funiwig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databio","download_url":"https://codeload.github.com/databio/uniwig/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databio%2Funiwig/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266670311,"owners_count":23965945,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-15T07:12:16.010Z","updated_at":"2025-07-23T11:36:31.790Z","avatar_url":"https://github.com/databio.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Uniwig\n\nGiven a set of bed files, we want to produce 3 [BigWig](http://genome.ucsc.edu/goldenPath/help/bigWig.html) output files: one track of the start coordinates, one track of the end coordinates, and one track for core coordinates.\n\n## Prerequisites\n\nUniwig will rely on [libBigWig](https://github.com/dpryan79/libBigWig), a C library for processing BigWig files. You will need to compile the `libBigWig` library locally first, then you can compile uniwig. The steps are described below.\n\n## Compiling uniwig\n\n### 1. Clone the `libBigWig` and `uniwig` repositories\n\nWe recommend you clone this repository so `libBigWig` and `uniwig` are parallel folders at the same level. \n\n```\ngit clone https://github.com/dpryan79/libBigWig\ngit clone https://github.com/databio/uniwig\n```\n\n### 2. Compile `libBigWig` with provided `Makefile`\n\nThis should add two library files `libBigWig.a` and `libBigWig.so` in your `libBigWig` local repository:\n\n```\ncd libBigWig\nmake install prefix=lib\n```\n\n### 3. Compile uniwig\n\nWith libBigWig compiled, you can use the `Makefile` to compile, test, or remove `uniwig`. The compiled program will have the path of `./bin/uniwig` (assuming you are already in the `uniwig` local repository). Below are some commands with different `Makefile` usage.\n\nTo compile `uniwig`:\n\n```\ncd uniwig\nmake uniwig\n```\n\nTo test `uniwig`:\n\n```\nmake tests\n```\n\nTo remove `uniwig` (remove `./bin/uniwig`):\n```\nmake clean\n```\n\nTo recompile a new version of `uniwig` after change:\n```\nmake rebuild\n```\n\nIf your `libBigWig` and `uniwig` local repositories are *not* located at the same level, then change the `LIB_DIR` in the `Makefile`. The default path for `LIB_DIR` is a relative path from `uniwig` local repository to `libBigWig` local repository, which has the library files already compiled.\n\n## Uniwig usage:\n\nTo use the compiled `uniwig` program located at `./bin/uniwig`, use the command with the following format\n\n```\n./bin/uniwig (-s) -m (5) -w (1) $combined_bed_file_path $chrom_size_file_path $bw_output_file_header\n```\n\nWith these parameters:\n\n- `-s` for specifying whether the provided combined bed file is already sorted by the chromosome number. If `-s` flag is not given, `uniwig` will sort the combined bed file by chromosome number.\n- `-m` for specifying the smooth size. The positive integer number given after the `-m` flag will be used to select the window size for smoothing the coordinates.\n- `-w` for specifying the write size. The data will be written into `.bw` files in chunks to reduce memory usage, and the chunk size (number of lines) will be determined by the `-w` flag.\n- `$combined_bed_file_path` for specifying the path of combined bed file. A relative path given would start changing directories from `uniwig` local repository (it is recommended to put the combined bed file in `./data/combined/`)\n- `$chrom_size_file_path` for specifying the path of chromosome size reference file. There is a reference file provided in this repository, located at `./test/hg38.chrom.sizes`, but you are welcome to use any other reference files (such as [refgenie](https://refgenie.databio.org/en/latest/))\n- `$bw_output_file_header` for specifying the header of the BigWig output file. There will be three `.bw` files produced, ending with `_start.bw`, `_end.bw`, and `_core.bw`. The input for this parameter will be added to the output file paths as prefixes (it is recommended to put the output BigWig file in `./data/bw/`)\n\nYou can also use the provided shell script for executing the entire workflow: from a set of raw data (bed files) to the final BigWig file output. There are two choices provided in this repository:\n- `create_unsorted.sh` is the shell script for executing `uniwig` without sorting the combined bed file by chromosome number before it's submitted to `uniwig`. In other words, `uniwig` will be responsible for sorting the chromosomes.\n- `create_sorted.sh` is the shell script for executing `uniwig` with sorting the combined bed file by chromosome number before it's submitted to `uniwig`. The sorting is done by shell script command `sort`.\n\nFor both shell script, the default paths for the required files are provided. It is recommended to organize your input files by the default choice, but make sure to change the paths to corresponding repositories if you are not using the default paths.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabio%2Funiwig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabio%2Funiwig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabio%2Funiwig/lists"}