All Projects → bow → crimson

bow / crimson

Licence: BSD-3-Clause license
Bioinformatics tool outputs converter to JSON or YAML

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to crimson

Perun
A command-line validation tool for AWS Cloud Formation that allows to conquer the cloud faster!
Stars: ✭ 82 (+173.33%)
Mutual labels:  yaml, converter
Remarshal
Convert between CBOR, JSON, MessagePack, TOML, and YAML
Stars: ✭ 421 (+1303.33%)
Mutual labels:  yaml, converter
Swagger Toolbox
💡 Swagger schema model (in yaml, json) generator from json data
Stars: ✭ 194 (+546.67%)
Mutual labels:  yaml, converter
K2tf
Kubernetes YAML to Terraform HCL converter
Stars: ✭ 477 (+1490%)
Mutual labels:  yaml, converter
Gelatin
Transform text files to XML, JSON, or YAML
Stars: ✭ 150 (+400%)
Mutual labels:  yaml, converter
Tfk8s
A tool for converting Kubernetes YAML manifests to Terraform HCL
Stars: ✭ 167 (+456.67%)
Mutual labels:  yaml, converter
bafi
Universal JSON, BSON, YAML, CSV, XML converter with templates
Stars: ✭ 65 (+116.67%)
Mutual labels:  yaml, converter
flutter plus
Develop applications in Flutter more quickly and easily. Customize Containers, Buttons, Texts and TextFields in a few lines. Navigate between Screens and open BottomSheets, Dialogs and Snackbars without context from any point.
Stars: ✭ 17 (-43.33%)
Mutual labels:  yaml
it-tools
Aggregated set of useful tools that every developer may need once in a while.
Stars: ✭ 222 (+640%)
Mutual labels:  converter
i7n-pdfhtml
pdfHTML is an iText 7 add-on for C# (.NET) that allows you to easily convert HTML and CSS into standards compliant PDFs that are accessible, searchable and usable for indexing.
Stars: ✭ 111 (+270%)
Mutual labels:  converter
convertron3000
Convertron3000 commodore 64 graphics converter
Stars: ✭ 24 (-20%)
Mutual labels:  converter
jsons2xsd
Highly configurable converter from JSON-schema to XML-schema (XSD).
Stars: ✭ 65 (+116.67%)
Mutual labels:  converter
Wallpaper-Engine-Pkg-to-Zip
Simple program to convert the wallpaper engine pkg files to zip and back!
Stars: ✭ 57 (+90%)
Mutual labels:  converter
scout
Reading and writing in JSON, Plist, YAML and XML data made simple when the data format is not known at build time. Swift library and command-line tool.
Stars: ✭ 110 (+266.67%)
Mutual labels:  yaml
docx-you-want
An unusual PDF-to-DOCX converter.
Stars: ✭ 40 (+33.33%)
Mutual labels:  converter
osx-callhistory-decryptor
macOS (incl big sur) call history decryptor/converter to CSV format.
Stars: ✭ 19 (-36.67%)
Mutual labels:  converter
cq
Clojure Command-line Data Processor for JSON, YAML, EDN, XML and more
Stars: ✭ 111 (+270%)
Mutual labels:  yaml
recode-converter
A modern & simple audio converter for video files
Stars: ✭ 22 (-26.67%)
Mutual labels:  converter
csv2keepassxml
Convert CSV files into KeePass 2 XML files.
Stars: ✭ 31 (+3.33%)
Mutual labels:  converter
cvscan
Your not so typical resume parser
Stars: ✭ 46 (+53.33%)
Mutual labels:  converter

Crimson

pypi ci coverage

Crimson converts non-standard bioinformatics tool outputs to JSON or YAML.

Currently it can convert outputs of the following tools:

The conversion can be done using the command line interface or by calling the tool-specificparser functions in your Python script.

Installation

Crimson is available on the Python Package Index and you can install it via pip:

$ pip install crimson

It is also available on BioConda, both through the conda package manager or as a Docker container.

For running as Docker, you may also use the GitHub Docker registry. This registry hosts the latest version, but does not host any versions from 1.1.0 and earlier.

docker pull ghcr.io/bow/crimson

Usage

As a command line tool

The general command is crimson {program_name} and by default the output is written to stdout. For example, to use the picard parser, you would execute:

$ crimson picard /path/to/a/picard.metrics

You can also specify a file name directly to write to a file. The following command will write the output to a file named converted.json:

$ crimson picard /path/to/a/picard.metrics converted.json

Some parsers may also accept additional input format. The FastQC parser, for example, also works if you specify a path to a FastQC output directory:

$ crimson fastqc /path/to/a/fastqc/dir

or path to a zipped result:

$ crimson fastqc /path/to/a/fastqc_result.zip

When in doubt, use the --help flag:

$ crimson --help            # for the general help
$ crimson fastqc --help     # for parser-specific (FastQC) help

As a Python library function

Generally, the function to import is located at crimson.{program_name}.parser. For example, to use the picard parser in your script, you can do:

from crimson import picard

# You can specify the input file name as a string ...
parsed = picard.parse("/path/to/a/picard.metrics")

# ... or a file handle
with open("/path/to/a/picard.metrics") as src:
    parsed = picard.parse(src)

Why?

  • Not enough tools use standard output formats.
  • Writing and re-writing the same parsers across different scripts is not a productive way to spend the day.

Local Development

Setting up a local development requires that you set up all of the supported Python versions. We use pyenv for this.

# Clone the repository and cd into it.
$ git clone https://github.com/bow/crimson
$ cd crimson

# Create your local development environment.
$ make install-dev

# Run the test and linter suite to verify the setup.
$ make lint test

# Whenever in doubt, just run `make` without any arguments.
$ make

Contributing

If you are interested, Crimson accepts the following types contribution:

  • Documentation additions (if anything seems unclear, feel free to open an issue)
  • Bug reports
  • Support for tools' outputs which can be converted to JSON or YAML.

For any of these, feel free to open an issue in the issue tracker or submit a pull request.

License

Crimson is BSD-licensed. Refer to the LICENSE file for the full license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].