pythia Code
                
                Brought to you by:
                
                    tobiaspmann
                    
                
            
            
        
        
        
    Pythia 1.0 -Introduction Pythia is a python based PCR primer design module, based primarily on thermodynamic considerations. Pythia is distributed under the FreeBSD license. -Requirements WINDOWS: To build this, you need cygwin with python 2.5 and swig. Cygwin should have been installed with the mingw compiler, and the numpy package (all available from the cygwin installer). In addition, you will probably need to build the libpython2.5.a library for linking, which is somewhat involved. See, for example, the instructions in http://sebsauvage.net/python/mingw.html (section "Create libpython22.a"). Although these instructions worked for me, they are a little outdated. I needed to create a file with the name "libpython2.5.a" rather than "libpython25.a", and I needed to put it in $PYTHON/lib/python2.5/config for successful linking. LINUX: You need to have python installed with the numpy package, swig, and gcc. Building on linux is usually much more straightforward, although you'll either have to supply the --prefix option to setup.py put the modules in a custom directory, or you'll have to run the install as root (or ask your friendly system administrator to do it for you). -Build You should be able to run the standard python module installation procedure. If running as root, or under cygwin: > python setup.py build > pythin setup.py install If running as a local user, be sure to specify the custom directory (you won't have access to the system python), and update your python path: > python setup.py build > pythin setup.py install --prefix=/full/path/to/custom/directory > export PYTHONPATH=/full/path/to/custom/directory/lib/python2.X/site-packages:$PYTHONPATH Note that the python path must be set to /full/path/to/custom/directory/lib/python2.X/site-packages when you specify the prefix option in the install step. after building and installation, the scripts index_dnafiles, pythia_pcr, and pythia_tile should work. To test: > cd test > bash design_primers.sh This script demonstrates the primer design workflow, and how to call the modules. -Workflow In order to design primers, you need to first build indexes on the background dna, and then provide a fasta file with the sequence with the amplicon template. To build indexes, call index_dnafiles.exe <dirname>/*.fasta_extension, where 'fasta_extension' is usually .fa or .fasta. This will build suffix array indexes on all of the fasta files in the directory, and produce a file called 'index_list.txt' which should be provided as input to the design modules. Pythia supports two kinds of primer design. You can either design one primer pair to amplify a locus, or you can tile a locus with amplicons. See examples for both design in the script test/design_primers.sh. -Outputs Pythia writes the primer designs to standard out. Each line is tab delimited, with the following fields: primer1_sequence start stop tm primer2_sequence start stop tm so save designs to a file, run with standard out redirected to a file, i.e. > pythia_pcr.exe locus.fasta > locus_designs.txt -Examples The script desgin_primers.sh shows the whole workflow, from indexing the background DNA against which primer specificity is checked, to designing primers with and without specificity checks. To run demo script: > cd test > bash design_primers.sh design_primers.sh shows how to index background DNA files for primer specificity search, how to design a single primer pair, and how to tile a locus, with and without specificity search. To see a list of options for any of the programs, run them with the '-h' option. -Release notes This release contains the full module source. This is the release to get if you use a windows platform and can compile python extensions, or if you are on a linux platform. If you are on a windows/cygwin platform, and don't want to compile anything, but just want to design primes, get the pythia_1.0_cygwin_binaries_only release.