Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

alejandrogzi/packbed

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

packbed

Version Badge Crates.io Version GitHub License Crates.io Total Downloads

pack a .bed into overlapping components

Features

  • pack any number of .bed files into overlapping components through a binary, Rust library or Python module
  • write a unique overlapping-component-colorized bed file out of any number of .bed files through a binary, Rust library or Python module
  • split components into separate .bed files through a binary, Rust library or Python module
  • write serialized components to a binary file through a binary and Rust library
  • read serialized components from a binary file through a Rust library or Python module
  • write specific components each to a different .bed file through a Rust library or Python module

What's new on packbed v0.0.7!

  • Implements a new query range algorithm to pack components
  • Reduces time by more than x25 when working with more than 1 million reads

Usage

Binary

Usage: packbed [OPTIONS] --bed <PATHS>... --output <PATH>

Arguments:
    -b, --bed <PATHS>...     Paths to BED12 files delimited by comma
    -o, --output <PATH>      Path to output BED12 file [not required if -c flag is set]

Options:
    -t, --threads <THREADS>  Number of threads [default: 8]
    --type <TYPE>   Type of output [default: bed] [possible values: bin, comp, bed]
    --overlap_type <TYPE>  Type of overlap [default: exon]
    -s, --subdirs   Flag to split components into separate BED files in subdirectories
    --colorize      Flag to colorize components in output BED(s) file
    -h, --help      Print help
    --version:      Print version

Tip

If you want to get components in separate .bed files use:

packbed -b path/to/b1.bed,path/to/b2.bed -o path/to/output --type comp

in case you want to send each component to a different subdirectory (good to parallelize processes):

packbed -b path/to/b1.bed,path/to/b2.bed -o path/to/output --type comp -s

if you want to colorize the components but send them all to just 1.bed file [default]:

packbed -b path/to/b1.bed,path/to/b2.bed -o path/to/output --colorize

Library

use packbed::packbed;

fn main() {

    let bed1 = PathBuf::new("/path/to/b1.bed");
    let bed2 = PathBuf::new("/path/to/b2.bed");
    let beds = vec![bed1, bed2];

    let overlap_type = OverlapType::Exon;
    let colorize = true;

    let comps: HashMap<String, Vec<Vec<Arc<GenePred>>>> = packbed(
        beds,
        overlap_type,
        colorize)
    .unwrap();
}

Python

build the port to install it as a pkg:

git clone https://github.com/alejandrogzi/packbed.git && cd packbed/py-packbed
hatch shell
maturin develop --release

use it:

from packbed import pack

beds = ["path/to/bed1.bed", "path/to/bed2.bed"]
comps = pack(beds)

About

pack a .bed into overlapping components

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.