wingolab-org / mpd-perl

Multiplex Primer Design
GNU General Public License v3.0
11 stars 6 forks source link

MPD - Multiplex Primer Design

This package assists in the automation of multiplex primer design. This package was designed for the companion MPD program, which you can find here (mpd-c).

Citation

Please cite our paper if you use MPD in your work. Thanks.

Installation

Optional features

Usage

From the ex (example) directory:

---
BedFile: ex/markers.txt.bed      # TARGET LIST
isPcrBinary: isPcr               # isPcr binary, optional
TwoBitFile: hg38.2bit            # TwoBitFile, optional (needed for isPcr)
MpdBinary: ../mpd-c/build/mpd    # mpd binary (see http://github.com/wingolab-org/mpd-c)
MpdIdx: hg38.d14.sdx             # HASHED GENOME, see mpd-c setup
dbSnpIdx: ds_flat.sdx            # LIST of FLAT DBSNP FILES, see mpd-c setup

CoverageThreshold: 0.8           # The definition of "covered"
PrimerSizeMin: 17                # Minimum primer size
PrimerSizeMax: 27                # Maximum primer size
PadSize: 60                      # The region flanking the target to search for primers
PoolMax: 10                      # Maximum number of primers in a pool
PoolMin: 5                       # Minimum number of primers in a pool

AmpSizeMax: 260                  # Initial maximum amplicon size
AmpSizeMin: 230                  # Initial minimum amplicon size
TmMax: 62                        # Initial maximum Tm
TmMin: 57                        # Initial minimum Tm
GcMax: 0.7                       # Initial maximum GC
GcMin: 0.3                       # Initial minimum GC

Iter: 2                          # Number of iterations to try to find primers
IncrTm: 1                        # degrees Celsius to widen the Min/Max Tm on successive trial
IncrTmStep: 1                    # degrees Celsius to widen the Tm step (within mpd-c) on successive trial
IncrAmpSize: 10                  # number of base pairs to widen the acceptable amplicon max/min on successive trial

From design.pl:

my $m = MPD->new_with_config(
  {
    configfile  => $config_file,
    BedFile     => 'target_regions.bed',
    OutExt      => 'myGreatPrimerPools',
    OutDir      => '/temp/',
    InitTmMin   => 58,
    InitTmMax   => 61,
    PoolMin     => 5,
    Debug       => 0,
    IterMax     => 2,
    RunIsPcr    => undef, # set to something perl evaluates to true if you want isPcr to check the in-silico PCR
    Act         => 1,     # set to something perl evaluates to true if you want the program to execute the mpd-c binary
    ProjectName => $out_ext,
    FwdAdapter  => '',    # your fwd adapter
    RevAdapter  => '',    # your rev adapter
    Offset      => 0,     # when printing pools where do we start?
    Randomize   => 1,     # should we shuffle the pools so they are in random order?
  }
);
$m->RunAll();             # run the design.