jpayne@69: Metadata-Version: 2.1 jpayne@69: Name: bio jpayne@69: Version: 1.6.2 jpayne@69: Summary: bio jpayne@69: Home-page: https://github.com/ialbert/bio jpayne@69: Author: Istvan Albert jpayne@69: Author-email: istvan.albert@gmail.com jpayne@69: Classifier: Programming Language :: Python :: 3 jpayne@69: Classifier: License :: OSI Approved :: MIT License jpayne@69: Classifier: Operating System :: OS Independent jpayne@69: Requires-Python: >=3.7 jpayne@69: Description-Content-Type: text/markdown jpayne@69: License-File: LICENSE jpayne@69: Requires-Dist: biopython >=1.80 jpayne@69: Requires-Dist: requests jpayne@69: Requires-Dist: tqdm jpayne@69: Requires-Dist: mygene jpayne@69: Requires-Dist: pandas jpayne@69: Requires-Dist: pooch jpayne@69: Requires-Dist: gprofiler-official jpayne@69: jpayne@69: # bio: making bioinformatics fun again jpayne@69: jpayne@69: `bio` - command-line utilities to make bioinformatics explorations more enjoyable. jpayne@69: jpayne@69: `bio` is a bioinformatics toy to play with. jpayne@69: jpayne@69: Like LEGO pieces that match one another `bio` aims to provide you with commands that naturally fit together and let you express your intent with short, explicit and simple commands. It is a project in an exploratory phase, we'd welcome input and suggestions on what it should grow up into. jpayne@69: jpayne@69: ## What does this software do? jpayne@69: jpayne@69: jpayne@69: If you've ever done bioinformatics, you know how even seemingly straightforward tasks require multiple steps, arcane incantations, and various other preparations that slow down progress. jpayne@69: jpayne@69: Even well-defined, supposedly simple tasks can take a seemingly inordinate number of complicated steps. The `bio` package is meant to solve that tedium. jpayne@69: jpayne@69: ## Usage examples jpayne@69: jpayne@69: # Fetch genbank data jpayne@69: bio fetch NC_045512 MN996532 > genomes.gb jpayne@69: jpayne@69: # Convert the first then bases of the genomes to FASTA. jpayne@69: bio fasta genomes.gb --end 10 jpayne@69: jpayne@69: # Align the coding sequences for the S protein jpayne@69: bio fasta genomes.gb --gene S --protein | bio align | head jpayne@69: jpayne@69: # Print the GFF record that corresponds to the coding sequence for gene S jpayne@69: bio gff genomes.gb --gene S jpayne@69: jpayne@69: # Show the descendants of taxid 117565 jpayne@69: bio taxon 117565 | head jpayne@69: jpayne@69: # Show the lineage of a taxonomic rank. jpayne@69: bio taxon 117565 --lineage | head jpayne@69: jpayne@69: # Get metadata on a viral sample jpayne@69: bio meta 11138 -H | head jpayne@69: jpayne@69: # Define a sequence ontology terms jpayne@69: bio define exon jpayne@69: jpayne@69: # Define a gene ontology terms jpayne@69: bio define food vacuole jpayne@69: jpayne@69: ## Documentation jpayne@69: jpayne@69: Detailed documentation is maintained at jpayne@69: jpayne@69: * https://www.bioinfo.help/ jpayne@69: jpayne@69: ## Quick install jpayne@69: jpayne@69: `bio` works on Linux and Mac computers and on Windows when using the Linux Subsystem. jpayne@69: jpayne@69: pip install bio --upgrade jpayne@69: jpayne@69: See more details in the [documentation][docs]. jpayne@69: jpayne@69: ## `bio` is stream oriented jpayne@69: jpayne@69: `bio` supports stream oriented programming where the output of one task may be chained into the second. Take the example above jpayne@69: but now start with a file `acc.txt` that contains just the accession numbers: jpayne@69: jpayne@69: NC_045512 jpayne@69: MN996532 jpayne@69: jpayne@69: we can run `bio` to generate a VCF file with the variants of the S nucleotides forming the S protein like so: jpayne@69: jpayne@69: cat acc.txt | bio fetch | bio fasta --gene S | bio align --vcf | head jpayne@69: jpayne@69: to print: jpayne@69: jpayne@69: ##fileformat=VCFv4.2 jpayne@69: ##FORMAT= jpayne@69: ##FILTER= jpayne@69: ##INFO= jpayne@69: ##contig= jpayne@69: #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT QHR63300.2 jpayne@69: YP_009724390.1 33 33C/T C T . PASS TYPE=SNP GT 1 jpayne@69: YP_009724390.1 54 54T/A T A . PASS TYPE=SNP GT 1 jpayne@69: YP_009724390.1 60 60C/T C T . PASS TYPE=SNP GT 1 jpayne@69: YP_009724390.1 69 69A/G A G . PASS TYPE=SNP GT 1 jpayne@69: jpayne@69: jpayne@69: ## Who is `bio` designed for? jpayne@69: jpayne@69: The software was written to teach bioinformatics and is the companion software to the [Biostar Handbook][handbook] textbook. The targeted audience comprises: jpayne@69: jpayne@69: - Students learning about bioinformatics. jpayne@69: - Bioinformatics educators who need a platform to demonstrate bioinformatics concepts. jpayne@69: - Scientists working with large numbers of similar genomes (bacterial/viral strains). jpayne@69: - Scientists who need to investigate and understand the precise details of a genomic region closely. jpayne@69: jpayne@69: The ideas and motivations fueling `bio` have been developed while educating the many cohorts of students who used the handbook in the classroom. `bio` is an opinionated take on how bioinformatics, particularly data representation and access, should be simplified and streamlined. jpayne@69: jpayne@69: [handbook]: https://www.biostarhandbook.com/ jpayne@69: [docs]: https://www.bioinfo.help/ jpayne@69: jpayne@69: ## Development jpayne@69: jpayne@69: If you clone the repository, we recommend that you install it as a development package with: jpayne@69: jpayne@69: python setup.py develop jpayne@69: jpayne@69: ## Testing jpayne@69: jpayne@69: `bio` can test itself, to run all tests execute: jpayne@69: jpayne@69: bio test jpayne@69: jpayne@69: Tests are automatically built from a shell script that mimics real-life usage scenarios. jpayne@69: jpayne@69: * https://github.com/ialbert/bio/blob/master/test/usage.sh jpayne@69: jpayne@69: ## Generating documentation jpayne@69: jpayne@69: To generate the docs, you will need the `bookdown` package: jpayne@69: jpayne@69: conda install r-bookdown r-servr jpayne@69: jpayne@69: To run the docs in a browse: jpayne@69: jpayne@69: make jpayne@69: jpayne@69: then visit http://localhost:8000 jpayne@69: