{"id":17060983,"url":"https://github.com/rhagenson/swsc","last_synced_at":"2025-09-21T01:21:57.024Z","repository":{"id":57493021,"uuid":"166289238","full_name":"rhagenson/swsc","owner":"rhagenson","description":"swsc implements the Sliding-Window Site Characteristics method of ultraconserved elements (UCEs) detailed by 10.1093/molbev/msy069","archived":false,"fork":false,"pushed_at":"2020-04-23T00:12:37.000Z","size":212,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-04T03:50:01.408Z","etag":null,"topics":["candidate-windows","sliding-windows","uce","uces","ultraconserved-elements-uces"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhagenson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2019-01-17T20:06:39.000Z","updated_at":"2020-04-23T00:12:40.000Z","dependencies_parsed_at":"2022-08-28T11:51:16.532Z","dependency_job_id":null,"html_url":"https://github.com/rhagenson/swsc","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/rhagenson/swsc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhagenson%2Fswsc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhagenson%2Fswsc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhagenson%2Fswsc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhagenson%2Fswsc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhagenson","download_url":"https://codeload.github.com/rhagenson/swsc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhagenson%2Fswsc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274232023,"owners_count":25245856,"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-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["candidate-windows","sliding-windows","uce","uces","ultraconserved-elements-uces"],"created_at":"2024-10-14T10:45:44.811Z","updated_at":"2025-09-21T01:21:56.983Z","avatar_url":"https://github.com/rhagenson.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![status](http://joss.theoj.org/papers/b01aa9474605d9516d710ae25b6b8168/status.svg)](http://joss.theoj.org/papers/b01aa9474605d9516d710ae25b6b8168)\n[![DOI](https://zenodo.org/badge/166289238.svg)](https://zenodo.org/badge/latestdoi/166289238)\n\n# swsc\n\n`swsc` implements the Sliding-Window Site Characteristics (SWSC) method as described in \u003chttps://doi.org/10.1093/molbev/msy069\u003e\n\nSample data taken from: [PFinderUCE-SWSC-EN]\n\n[PFinderUCE-SWSC-EN]: https://github.com/Tagliacollo/PFinderUCE-SWSC-EN\n\n## Insight into Interworkings\n\nIf using this program as a blackbox, here are a few things to consider about the interworkings:\n\n### swsc Window Types\n\nswsc consides three window types starting at `v5.0.0`:\n\n+ Candidate windows (size of `minWin`)\n+ Extended candidate windows (size of `minWin*2` via extending `minWin/2` in both directions)\n+ Window covering all candidates (size between `minWin*candidates` and UCE length)\n\n### Change `minWin` and `candidates`\n\nThe default settings for these values are provided as a rough guide to realistic values, but are not meant to be the values used for all runs.\n\n**For best results, `minWin*candidates` should be roughly `1/3` of the smallest UCE, indicating candidates can span the full length of the smallest UCE.**\n\n## Usage\n\n### Installation\n\n1. Install the Go language following instructions at: \u003chttps://golang.org/\u003e\n2. Run `go get -u github.com/rhagenson/swsc/...`\n3. Run `swsc` by either:\n    + Calling it directly if you added`$GOPATH/bin/` to your `$PATH`\n    + Navigating to `$GOPATH/src/github.com/rhagenson/swsc/` and running `go build main.go \u0026\u0026 ./swsc`\n\n### Running\n\nBoth `input`,`output`, and one metric (`--gc` or `--entropy`) must be set. See `swsc --help` for details.\n\n### Reporting Errors\n\nIf you have found an error, or this tools does not work for you, please create an issue at: \u003chttps://github.com/RHagenson/swsc/issues\u003e with details on when the error occurred, what the error states, and what was expected to occur, if known.\n\n## Input\n\n`swsc` reads a single nexus file processing two blocks:\n\n1. `DATA`, containing the UCE markers (unique by ID)\n2. `SETS`, containing the UCE locations (unique by ID, with inclusive range)\n\nExample (`...` denotes truncated content, see [PFinderUCE-SWSC-EN] for full file):\n\n```text\n#NEXUS\n\nBEGIN DATA;\nDIMENSIONS  NTAX=10 NCHAR=5786;\nFORMAT DATATYPE=DNA GAP=- MISSING=?;\nMATRIX\n\nsp1    AGAAAC...TGCAAAG\n...\n;\n\nEND;\n\nBEGIN SETS;\n\n    [loci]\n    CHARSET chr_2828 = 1-376;\n    CHARSET chr_4312 = 377-627;\n    ...\n\n    CHARPARTITION loci = 1:chr_2828, 2:chr_4312...;\n\nEND;\n```\n\n## Output\n\n`swsc` writes a `.csv` file containing the chosen characteristic for each site of the UCEs. It can also produce a `.cfg` for use by PartitionFinder2 by using the appropriate flag (`--cfg`).\n\n## Versions\n\nA quick explanation of versions:\n\n+ `v1.0.0`: Does a brute force search considering all possible windows `minWin` and up\n+ `v2.0.0`: Uses candidate windows plus extension procedure (optimize large alignment performance)\n+ `v3.0.0`: Candidate windows plus extension while using a single reference alignment (better performance)\n+ `v4.0.0`: Candidate windows plus extension, single reference alignment, and remove redundant calculations\n+ `v5.0.0`: Multiple candidate windows plus extension and single reference alignment\n+ `v5.1.0`: Same as `v5.0.0`, but done in parallel for each UCE\n+ `v6.1.0`: Update CLI to allow Nexus or FASTA+UCE csv input\n\nUse `git checkout \u003cversion\u003e` to move to a particular version (and `git checkout master` to move to the latest untagged development version). From there you can run either `go install` to install the particular version in `GOPATH` (overwriting any previous installed version) or `go build [-o \u003cbuild name\u003e]` to build the version in the current directory.\n\nVersions can give different results so I would recommend using `v1.0.0` if you want the absolute best result (and have the time to wait for it to run a long, long time) or `v6.1.0` with a realistic `--minWin` and `--candidates` settings (rule of thumb: `minWin*candidates` should be roughly `1/3` of the smallest UCE, indicating candidates can span the full length of the smallest UCE).\n\n# License\n\nThis work is licensed under the the Modified BSD License, see full terms of use in [LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhagenson%2Fswsc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhagenson%2Fswsc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhagenson%2Fswsc/lists"}