BP2CM program

Jurg Ott 19 Dec 2014


This program takes a standard PLINK [1] map file as input (default: plink.map) and outputs this file with basepair positions replaced by map positions (default: plinkMAP.map).


The main use for this program is in homozygosity mapping [2] such that lengths of runs of homozygosity (ROHs) are on a genetic length scale, which does not suffer from the deleterious effects of linkage disequilibrium (LD) varying over the genome.


The program makes use of the Rutgers Maps [3] v.3, GRCh37 Patch 5/hg19, which may be found at http://compgen.rutgers.edu/download_maps.shtml. The map files for chromosomes 1-22 must be downloaded from the Rutgers website and put into a suitable folder as indicated below.

Windows: The program expects the Rutgers chromosome files in the \Rmap folder on your work drive, so you need to create this folder before downloading the chromosome files. The program must be in the system path or in the folder in which you want to use it.

Linux: The program package contains program files for Windows and Linux; the Linux executable is called bp2cmLINUX. The program is currently set up to expect the Rutgers chromosome files in your work folder. Thus, you need to download all 22 chromosome files into this folder. If you want these files in a different folder you need to change the program source code and recompile it with the Free Pascal compiler (in Ubuntu Linux, just type pc and then you will see directions on how to install this compiler), or make arrangement with your system so it finds the chromosome files when you need them. The Windows and Linux versions of the program or only different in the way they find the Rutgers chromosome files.

The program reads a standard PLINK map file, reads for each SNP its rs number and basepair position, and then looks up that rs number in the proper Rutgers chromosome file. If the rs number is not found it will be added to a list of SNPs in the file, plinkexcl.txt. For rs numbers found in the Rutgers chromosome file, the bp position in the PLINK map file will be replaced by a map position, where map position is in units of 106 cM so they are comparable to bp positions. Note: The program will work with rs numbers only and disregards the bp positions in the PLINK map file. For your records, it will append the bp position found in the Rutgers chromosome file to the map position it inserts into your PLINK map file, just in case your bp positions are different from those in the Rutgers chromosome files.

After the modified map file is produced, if some SNPs have not been found in the Rutgers database, run PLINK with the option --exclude plinkexcl.txt so it will only work with the SNPs found in the Rutgers database.

A small toy map file is provided as chr1920.map. When you run the program on this map file, it will first ask for the input map file name to which you will type chr1920 (the map extension will be added by the program). Then simply press Enter as the answer to the second question and wait for the result.

Comments and suggestions by email are welcome!


1 Purcell S, Neale B, Todd-Brown K, Thomas L, Ferreira MA, Bender D, Maller J, Sklar P, de Bakker PI, Daly MJ, Sham PC: PLINK: A tool set for whole-genome association and population-based linkage analyses. Am J Hum Genet 2007;81:559-575.

2 Ott et al (in preparation)

3 Matise TC, Chen F, Chen W, De La Vega FM, Hansen M, He C, Hyland FC, Kennedy GC, Kong X, Murray SS, Ziegle JS, Stewart WC, Buyske S: A second-generation combined linkage physical map of the human genome. Genome Res 2007;17:1783-1786.