# Working with genomics data Genomic data can reach large volumes and is typically stored in domain-specific file formats such as CRAM, BAM or VCF. In `MODOs` genomics files are linked to a metadata element and directly stored within the object. To access region-specific information without downloading the entire file the remote storage is linked to a htsget server that allows secure streaming over the network. ## Data streaming `MODOs` supports streaming of data from CRAM, BAM, VCF and BCF files to access specific genomic regions. In `MODOs` ::::{tab-set} :::{tab-item} python :sync: python ```{code-block} python from modos.api import MODO # Load MODO from remote storage modo=MODO(path= 's3://modos-demo/ex', endpoint = 'http://localhost') # Stream a specific region modo.stream_genomics(file_path = "demo1.cram", region = "BA000007.3") ``` ::: :::{tab-item} cli :sync: cli ```{code-block} console # Stream chromosome BA000007.3 from modos-demo/ex/demo1.cram modos --endpoint http://localhost stream --region BA000007.3 s3://modos-demo/ex/demo1.cram ``` ::: :::: :::{warning} We highly recommend using the `MODOs` CLI for streaming. The output can directly be passed to tools like samtools. Streaming using the `MODOs` python api will return a pysam object. `pysam` does not allow reading from byte-streams and thus the streamed region will be written into an temporary file before parsing to `pysam`. For large files/regions this can cause issues. :::