Skip to main content

A Basic Reader and Writer for CRAM format

Project description

Compressed Row-Access Matrix file format.

Goal : Simple and Efficient storage of 2d sparse matrices for memory efficient access of rows columns and ranges.

File Structure:

  1. Header Section:

    • Describes the overall file metadata.
    • Fixed size for simplicity.
  2. Index Section:

    • Row Index
      • Maps rows to their corresponding data offsets in the file.
  3. Data Section:

    • Row Data
      • Contains the actual sparse matrix data in a compressed Row Format. along with the column number

Detailed Layout

1. Header Section

Description: File identifiers and general fine info
Size: 40 bytes

Field Type Size (Bytes) Description
Magic Number ASCII 4 File identifier - CRAM
Version Integer 2 File format version
Rows Integer 4 Number of rows in the matrix
Columns Integer 4 Number of columns in the matrix
Non-Zero Count Integer 8 Total number of non-zero entries
Index Offset Integer 8 Byte offset to the index section
Data Offset Integer 8 Byte offset to the data section

2. Index Section

Description: Maps Rows to their corresponding data offsets
Size: 16 bytes

Field Type Size (Bytes) Description
Row ID Integer 4 Row ID
Offset Integer 8 Byte offset in the data section
Non-Zero Count Integer 4 Number of non-zero entries

3. Data Section

Description: Data elements of the
Size: 8

Field Type Size (Bytes) Description
Column Index Integer 4 Column index of the value
Value Float 4 The matrix value

Installation

To install the package

pip install sparse-CRAM

Usage:

cram_path = '/path/to/cram_file.cram'
fileparser = CRAM.FileParser(cram_path)
headers = fileparser.parse_headers()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sparse_cram-0.1.6.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sparse_cram-0.1.6.3-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file sparse_cram-0.1.6.3.tar.gz.

File metadata

  • Download URL: sparse_cram-0.1.6.3.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/22.6.0

File hashes

Hashes for sparse_cram-0.1.6.3.tar.gz
Algorithm Hash digest
SHA256 ae5570d74d2a74929ba946a5e1afdc56202de517080bca8f2cf8fae13011274a
MD5 ffc4dd8795e0b8281b532243d6f9dfa5
BLAKE2b-256 42bfccb56f95a1d723248e2c8791fbf76dce3ffd994c34a0e349aa0f852273c2

See more details on using hashes here.

File details

Details for the file sparse_cram-0.1.6.3-py3-none-any.whl.

File metadata

  • Download URL: sparse_cram-0.1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/22.6.0

File hashes

Hashes for sparse_cram-0.1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f6ce84eea4a463ef793f4de3e1efc4d0ca076858b7d3cdf8cfdc503b5e02abee
MD5 392872bd26472404b37a3c1724d7f3a6
BLAKE2b-256 2bce3bf32e4e4e855323e9dff3eff9d312e16807e6b7f16f389fb38a028f9841

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page