# \[ANN\] BioRecordsProcessing.jl - Easily process your biological records

**URL:** <https://discourse.julialang.org/t/ann-biorecordsprocessing-jl-easily-process-your-biological-records/70149>\
**Category:** Package Announcements\
**Tags:** biology\
**Created:** [October 21, 2021, 1:10pm UTC](https://discourse.julialang.org/t/ann-biorecordsprocessing-jl-easily-process-your-biological-records/70149 "2021-10-21T13:10:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonathanBieler](https://avatars.discourse-cdn.com/v4/letter/j/82dd89/32.png) [@jonathanBieler](https://discourse.julialang.org/u/jonathanBieler)\
**Post date:** [October 21, 2021, 1:10pm UTC](https://discourse.julialang.org/t/ann-biorecordsprocessing-jl-easily-process-your-biological-records/70149/1 "2021-10-21T13:10:53Z")

</div>

This is a small utility package that help reduce the boilerplate when processing files containing biological records (fastqs, bams, vcfs, …). It deals with files management, opening & closing readers and writers, processing files in parallel, etc. In theory one can replicate most of the options in classic tools like samtools, vcftools, seqtk, etc (although it doesn’t really take advantage of indexed files currently).

Here’s an example where records in fasta files are filtered out according to the length of the sequence :

```julia
using BioRecordsProcessing, FASTX

BioRecordsProcessing.process_directory(FASTX.FASTA, input_directory, "*.fa", output_directory; max_records=100) do record
    return FASTX.FASTA.seqlen(record) < 50 ? nothing : record
end

```

I’ve used it a bit myself but I haven’t tested it very thoroughly, so double check that the outputs is correct.

> **[GitHub - jonathanBieler/BioRecordsProcessing.jl: Process your biological...](https://github.com/jonathanBieler/BioRecordsProcessing.jl)**
>
> Process your biological records with ease. Contribute to jonathanBieler/BioRecordsProcessing.jl development by creating an account on GitHub.
