This page contains the source code for some of the bioinformatics scripts used by the Liston Lab. Most of the scripts are written in Python 2.6.4 and are designed for Unix systems. A few are written as a list of unix commands designed to be executables.
Python Script Conventions
The scripts must be compiled using a Python compiler in the following format:
python theScript.py [modifiers] <Arguments>.
For example, in order to run the script sumqual.py one could enter the following into an Unix shell:
python sumqual.py -c -v ../myQualFile.qual ../myMumFile
This would compile and run the script sumqual.py with the modifiers -c and -v, using myQualFile.qual and myMumFile as arguments. All of the scripts save their output in a file in the current working directory, with a name usually composed of some combination of the arguments and the name of the script. However, one can save the output anywhere, under any name, using the following technique:
python sumqual.py -c -v ../myQualFile.qual ../myMumFile > ../myOutput.ext
The order in which the modifiers are given is not important, however, the order of the required arguments is important. For Example the above modifiers could be entered in the opposite order (-v -c), but the two file paths need to be in a predetermined order. Some scripts have modifiers that require arguments of their own. These modifier arguments should be written directly after their respective modifier. For example, if the above modifier, -c, had a argument, one would type,
python sumqual.py -c theArgument -v ../myQualFile.qual ../myMumFile
Every Script has a description of what it does and how/when to use it in its source code. The list all the modifiers that the script supports and what they do is also included. A similar help menu can be viewed by calling the script with no arguments. For example, typing the following,
would cause a help menu to be printed to the screen.
|Script Name||Discription||Input File Format||Output File Format|
|alignreads.py v2.0||A pipeline for combining the free aligner NUCmer and the free short read assembler YASRA so full alignments can be made with one command. Alignreads uses the following scripts from the Liston lab: runyasra.py, sumqual.py, and qualtofa.py. It must be possible for the python interpreter to find these scripts to run alignreads; this can be done saving copies of scripts in the Python26 folder, your bin folder, or modifying you .chsrc file to search where they are saved on your system. alignreads preserves almost all of the functionality and output of the 5 programs it uses, so there are many options (over 40). Because there are so many modifiers, the help menu reached by not providing arguments only has what are expected to be the options used most often; to get all of the options type 'python alignreads.py -H' or 'python alignreads.py --advanced-help'. Since there are many files associated with the alignment the output is a folder with numerous files organized into subfolders. alignreads.py can also start the pipeline from a folder produced by a previous run of alignreads.py or runyasra.py. In that case, the output is saved in the input folder.||A FASTA file containing reads, and A FASTA file containg a reference OR a folder from a previous run of alingreades or runyasra.||A folder containing all of the ouput from every part of the pipeline|
|allcomb.py v1.2||Finds all possible combinations of elements (or group of elements) for every line of a tab-delimitated text file and output every combination, on its own line, to a .txt file.||tab-delimitated .txt file||tab-delimitated .txt file|
|baseanno.py v1.0||Converts a file containing a list of annotations, as well as each of their respective start and stop indices, into a file containing a list of base indices, each followed by any annotations that apply at that specific base. Each line of the input file is expected to be whitespace-deliminated, however if your annotations have spaces in them, the script can be made to enforce tab-delimitation. The output file is always tab-delaminated.||[Annotation text] [Start Index] [End Index]||[Base Index] [Annotation1] [Annotation2] ... [AnnotationX]|
|basediff.py v1.2||Finds base differences between multiple aligned sequences in a single FASTA file and output a tab-deliminated txt file containing the base values for all the sequences at the index where the difference occurred. The script has many modifiers that change what is considered a difference.||FASTA file containing two or more aligned sequences||.txt file in the following format: [Base index] [Seq 1 value] [Seq 2 value] ... [Seq N value]|
|BPstats.py v1.2||Performs and outputs various statistical tests for each contig in a GSS basepile output. it is assumed that the information for each contig is 1000 bases long. The following statistics are outputted in a tab-delimitated list for each contig by the script:
||GSS Basepile output. 1000 bases per contig||tab-deliminated list of the statistics for each contig|
|gapstrip.py v1.0||Removes all of the gaps (i.e. '-') that are common (i.e. at the same index) to all of the sequences in an aligned FASTA file. By default, the first sequence is considered the reference and is excluded from the analysis, but the number of sequences that are treated as such can be changed.||FASTA file containing two or more aligned sequences.||FASTA file same number of sequences as the input file but, with gaps removed|
|sumqual.py v1.7||A script used in conjunction with the free aligners NUCmer and the free short read assembler YASRA. Creates a file with a similar to the format to that of the .qual file YASRA outputs, except each base can have multiple sets of quality values. Uses a .qual file containing the quality scores of multiple contigs and the output file of NUCmer to make a "consensus" .qual file, which contains the quality values in terms of the reference. Given the reference used with NUCmer to get the alignment, sumqual can output a fasta file containing all the sequence for which there is no quality data.||
||similar to .qual input file, except each base can hold the information from more than one contig|
|qualtofa.py v2.3||Selectively extracts the sequence from a quality file and outputs it to a FASTA file. It is designed to be used in conjunction with sumqual.py and accepts its consensus-style output. Conflicting bases from a consensus-style output are condensed into IUPAC ambiguity codes or gaps are added to the reference to accomodate repeated or unmatched sequence. It has an option to mask all bases with a quality value of less than a user-specified threshold. Another threshold can be assigned for SNPs if a reference is given.||quality file (.qual); accepts sumqual.py's output||FASTA file|
|fatomum.py v1.0||Creates a MUMmer-style output from a FASTA file of aligned sequences. The first line is always considered the reference and is not included in the output. The start index in terms of the reference, and in terms of the contig, as well as the length are recorded for each matching section of the contig.||FASTA file containing a reference and its aligned contigs||MUMmuer-like output|