`*.ccmap`

and `*.npbin`

files¶

- This package implements the Chromosome Contact Map (ccmap) data in a specific format, which contains two inter-related files,
`*.ccmap`

: It is a text file and contains meta-data for the Chromosome Contact Map.`*.npbin`

or`*.npbin.gz`

: This file contains the Chromosome Contact Map data, which is a memory mapped 2D matrix.

In contrast to `gcmap`

file, the `*.ccmap`

and `*.npbin`

paired files contain only one contact map. To perform mathematical
operations directly using `gcmap`

is slow
(see here),
therefore, gcMapExplorer uses `*.ccmap`

and `*.npbin`

paired files during mathematical calculations.

## Why two files?¶

Contact map is a two-dimensional matrix. Size of matrix can be very huge for large chromosome at high resolutions.
Memory required to handle such huge matrices could be very large and sometimes beyond the available hardware.
Therefore, we used a matrix mapped to the file `*.npbin`

(compressed `*.npbin.gz`

), which is stored in external disk.
For each Contact map, we also need to store some properties like its title/name, size, minimum and maximum values, columns/rows with missing data, and
path to memory mapped matrix file. These properties are stored in `*.ccmap`

file.

## Advantages of memory mapped matrix file¶

- It is a binary indexed file and any particular region of the matrix can be rapidly accessed.
- This file is generated using numpy memmap, and therefore, it can be used as numpy array. See also here for more about numpy array.
- Because, it can be used as a numpy array, indexing and slicing operations can be performed to access the data.
- All mathematical operations available in numpy and scipy modules can be directly performed.

## Contents of `*.ccmap`

file¶

`*.ccmap`

is a text file and its content is shown as example:

```
{
"title":null,
"path2matrix":"chr22_100kb_normKR.npbin",
"xlabel":null,
"minvalue":"7.207987891888479e-06",
"bLog":false,
"state":"saved",
"maxvalue":"0.28213343024253845",
"binsize":100000,
"shape":[
"513",
"513"
],
"matrix":null,
"yticks":[
"0",
"51300000"
],
"bNoData":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"xticks":[
"0",
"51300000"
],
"ylabel":null,
"dtype":"float32"
}
```

- Following properties are included in Contact Map metadata file:
`title`

: Title of the data. Used to display in browser.`path2matrix`

: Path to`*.npbin`

or`*.npbin.gz`

file`bLog`

: Whether values in matrix is Logarithm values`maxvalue`

: Maximum value`minvalue`

: Minimum value`binsize`

: Resolution of data.`shape`

: Shape of matrix along X and Y axis`xticks`

: Upper and lower limits of X-axis`yticks`

: Upper and lower limits of Y-axis`xlabel`

: Label for x-axis`ylabel`

: Label for y-axis`matrix`

: See`gcMapExplorer.lib.CCMAP.matrix`

`state`

: See`gcMapExplorer.lib.CCMAP.state`

`dtype`

: Data type for memory mapped matrix file. e.g. float, float32, float64 etc.`bNoData`

: Whether data is missing for entire row/column