{"id":39937902,"url":"https://github.com/zwicker-group/crossover-interference-length","last_synced_at":"2026-01-18T19:02:12.235Z","repository":{"id":252365814,"uuid":"840013221","full_name":"zwicker-group/crossover-interference-length","owner":"zwicker-group","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-01T08:28:57.000Z","size":1317,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T09:33:57.721Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwicker-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2024-08-08T19:34:40.000Z","updated_at":"2025-07-01T08:29:00.000Z","dependencies_parsed_at":"2024-08-09T10:03:03.510Z","dependency_job_id":"0f898ab9-5f8e-4c59-8244-d11743fe559e","html_url":"https://github.com/zwicker-group/crossover-interference-length","commit_stats":null,"previous_names":["zwicker-group/crossover-interference-length"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zwicker-group/crossover-interference-length","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fcrossover-interference-length","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fcrossover-interference-length/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fcrossover-interference-length/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fcrossover-interference-length/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwicker-group","download_url":"https://codeload.github.com/zwicker-group/crossover-interference-length/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fcrossover-interference-length/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28548947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T19:02:06.365Z","status":"ssl_error","status_checked_at":"2026-01-18T19:01:46.239Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-01-18T19:02:11.599Z","updated_at":"2026-01-18T19:02:12.216Z","avatar_url":"https://github.com/zwicker-group.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interference Length for measuring crossover interference\n\nThis repository contains code for quantifying crossover (CO) inteference in meiosis\nbased on the interference length \u003ci\u003eL\u003c/i\u003e\u003csub\u003eint\u003c/sub\u003e, which is defined in the\npre-print [Interference Length reveals regularity of crossover placement across species](https://biorxiv.org/cgi/content/short/2024.04.22.590575v1)\nby M. Ernst, R. Mercier, and D. Zwicker.\n\n[**↪ Try it out online**](https://zwicker-group.github.io/crossover-interference-length/measure_CO_interference.html)\n\n## JavaScript version\n\nThe JavaScript version should run in any decently modern browser by simply opening the\nfile `measure_CO_interference.html`.\nThere is the option to load example data using the button \"Load example data\", but you can also paste your own CO\npositions (as explained in the file).\nThe button \"Calculate quantities\" then calculates all quantities (and the respective standard deviations of the mean)\nand displays the result below.\n\nThe calculation of the coefficient of coincidence curve is based on the implementation given in\nhttps://github.com/mwhite4/MADpatterns/blob/master/interval_analysis.m\n\nThe positions need to be specified in fractions of the total chromosome length, so they are numbers between 0 and 1. The\nchromosome length can be specified in units of micrometer (µm) for cytological data, units of megabases (Mb) for genetic\ndata, or left set to 1 to obtain results normalized to the chromosome length.\n\n## Python version\n\n### Installation\n\nThe python version of the code requires the `numpy` and `scipy` packages, which can be installed using the requirements\nfiles.\n\n```bash\npip install -r requirements.txt\n```\n\n### Usage\n\nExemplary data from A. thalania (genetic data) from [[1, 2]](#references) for various genotypes (wild-type, HEI10oe, zyp1 and zyp1\nHEI10oe), both male/female and all five chromosomes (index 1..5) is contained in the folder `data/`.\nThe associated genetic chromosome lengths are stored in `data/chromosome_lengths.csv`, whereas the CO positions for the\nsamples are stored in files following the scheme `data/A_thalania_[genotype]_[sex]_[chromosome_index].csv`.\nRunning the python script displays summary statistics for various genotypes and sexes:\n\n\n```bash\npython example.py\n```\n\nThe functions are implemented in the python script `measure_CO_interference.py`.\nThe summary statistics (mean number of COs, interference length, normalized interference\nlength, gamma shape parameter and interference distance) can be used by calling the\npython function `get_interference_measures(positions, my_params)`, and the coefficient\nof coincidence can be computed using `coefficient_of_coincidence(positions, my_params)`.\n\nThe positions need to be specified in fractions of the total chromosome length, so they are numbers between 0 and 1. The\nchromosome length can be specified in units of micrometer (µm) for cytological data, units of megabases (Mb) for genetic\ndata, or left set to 1 to obtain results normalized to the chromosome length.\n\nThe parameter dictionary my_params has the following relevant parameters\n`length` which gives the length of the chromosome (or SC) in the respective unit. `NUM_BOOTSTRAP_SAMPLES` gives the\nnumber of bootstrap samples to compute the standard deviation of the mean. \n`NUM_INTERVALS` gives the number of bins of the coefficient of coincidence curve and \n`COC_IMPLEMENTATION` can be set to either **mwhite** to compute the curve according to\nthe implementation given in \nhttps://github.com/mwhite4/MADpatterns/blob/master/interval_analysis.m\nwhile setting it to **mernst** uses an implementation that does not require pre-binning\nand is described in the publication in SI-1B.\n\n## References\n\n[1] Durand, S., Lian, Q., Jing, J. et al. Joint control of meiotic crossover patterning by the synaptonemal complex and\nHEI10 dosage. Nat Commun 13, 5999 (2022). https://doi.org/10.1038/s41467-022-33472-w\n\n[2] Singh, D. K., Lian, L., Durand, S. et al. Heip1 is required for efficient meiotic crossover implementation and is \nconserved from plants to humans, Proceedings of the National Academy of Sciences 120, e2221746120 (2023). \nhttps://doi.org/10.1073/pnas.2221746120","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwicker-group%2Fcrossover-interference-length","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwicker-group%2Fcrossover-interference-length","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwicker-group%2Fcrossover-interference-length/lists"}