# Introduction¶

BioShell is a set of command-line programs for easy data manipulation from a UNIX-like terminal or a shell script. The programs can read and write standard file formats and handle protein sequences and structures. The tools helps also in simple calculations, like sequence alignment, Phi/Psi angles, crmsd and many more. See Programs page for details.

BioShell comes with extensive set of example applications, which have been created with a few subsequent goals in mind. Programs with names starting with ap_ are in fact yet another applications that extend the standard BioShell set. The difference between these test and standard apps is that the latter perform only a single action and their command line is simplified. These programs are integration tests at the same time Files of the second group of tests are actual unit tests and named ex_*. Input data as well as curated output from sets of tests is versioned in git repository along the source code. These tests serve also as examples illustrating a given functionality or showing how to use a certain piece of code. All the examples are included in respective API documentation pages. Since the test are continuously tested, the serve as a source of validated snippets for creating future programs.

BioShell distribution provides also bindings to Python scripting language; that is, BioShell is also a versatile library for python scripting. BioShell objects can be imported as any other python modules. Example scripts are also included in the repository.

Finally, BioShell is a C++ software library. Both ap_* and ex_* BioShell tests are included in respective API documentation pages. Since the test are continuously tested, they serve as a source of validated snippets for creating future programs.

## Previous versions¶

### BioShell versions 1.x¶

The original BioShell package was designed as a suite of programs designed for pre- and post-processing in protein structure modeling protocols. The package has been providing a convenient set of tools for in conversion between various sequence and structure formats. It has been also possible to calculate simple properties of protein conformations. The very first commands (e.g. HCPM for clustering protein structures) were implemented in C, later on the development switched to C++.

### BioShell versions 2.x¶

Around 2006/07 BioShell has been reimplemented in JAVA, designed as a library for scripting languages running on Java Virtual Machine, most notably Python, but also Scala, Ruby, Groovy and many others. Currently the most recent stable release is 2.2. API docs as well as example scripts may be found in documentation. All program from 1.x versions were also ported to JAVA.

## Citations¶

• BioShell - the first version:
1. Gront and A. Kolinski “BioShell - a package of tools for structural biology computations” Bioinformatics 2006 22(5):621-622
• BioShell - the second version:
1. Gront and A. Kolinski “Utility library for structural bioinformatics” Bioinformatics 2008 24(4):584-585
• Program for clustering protein structures (currently named clust):
1. Gront and A. Kolinski “HCPM - program for hierarchical clustering of protein models” Bioinformatics 2005 21(14):3179-3180
• BBQ - program for backbone reconstruction:
1. Gront, S. Kmiecik, A. Kolinski “Backbone Building from Quadrilaterals. A fast and accurate algorithm for protein backbone reconstruction from alpha carbon coordinates.” J. Comput. Chemistry 2007 28(9):1593-1597