Browse Source

academic/perlprimer: Updated for version 1.2.3_f7d3bd0.

Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
pull/47/head
Petar Petrov 7 years ago
committed by David Spencer
parent
commit
5c821121ec
  1. 157
      academic/perlprimer/01_sytaxerrors.patch
  2. 11
      academic/perlprimer/02_fix-defined-slist.patch
  3. 18
      academic/perlprimer/README
  4. 24
      academic/perlprimer/perlprimer.SlackBuild
  5. 8
      academic/perlprimer/perlprimer.info
  6. 2
      academic/perlprimer/slack-desc

157
academic/perlprimer/01_sytaxerrors.patch

@ -1,157 +0,0 @@
Author: Steffen Moeller <steffen_moeller@gmx.de>
Description: Fixes a series of errors indicated by Perl 5.18.
Forwarded: https://sourceforge.net/p/perlprimer/patches/6/
Index: git/perlprimer.pl
===================================================================
--- git.orig/perlprimer.pl
+++ git/perlprimer.pl
@@ -3093,23 +3093,24 @@
# and because it's 3' primer-dimers that are the real problem in PCR.
# create a binding array for each of the four bases
- for $l (0 .. $pfl-1) {
+ foreach $l (0 .. $pfl-1) {
my $mbase = substr($fprimer_r, $l, 1);
$primer_hash{$mbase}[$l]=1;
- for $k qw(a g c t) {
+ my @nucleotides = qw(a g c t);
+ foreach $k (@nucleotides) {
$primer_hash{$k}[$l] ||=0;
}
}
# create the primer matrix
my @primer_comp;
- for $k (0 .. $prl-1) {
+ foreach $k (0 .. $prl-1) {
$primer_comp[$k]=$primer_hash{substr($rcomprlc, $k, 1)};
}
# read each combination from the matrix, calculate dG for each dimer
my $pd_len = ($pd_full ? $pfl+$prl-1 : $pl-2);
- for $k (0 .. $pd_len) {
+ foreach $k (0 .. $pd_len) {
$score[$k]=0;
my $bind;
my $score_p=0;
@@ -3129,7 +3130,7 @@
# }
# read the binding data
- for $l (0 .. $prl-1) {
+ foreach $l (0 .. $prl-1) {
if (($k-$l)<$pfl) {
$bind .= $primer_comp[$l][$k-$l] if ($k-$l)>=0;
} else {
@@ -3148,7 +3149,7 @@
# Find start and end of similarity
my ($pb_init,$pb_end);
- for $l (0 .. length($bind)-1) {
+ foreach $l (0 .. length($bind)-1) {
# at first I tried finding the initiating terminal bases with
# regexps, but that was much slower ...
if (substr($bind, $l, 1) eq "1") {
@@ -3159,7 +3160,7 @@
if (defined($pb_init)) {
# deltaG calculation
- for $l ($pb_init .. $pb_end-1) {
+ foreach $l ($pb_init .. $pb_end-1) {
next if substr($bind, $l, 2) eq "00";
next if substr($bind, $l, 1) eq "2";
$score_p+=$oligo_dG{substr($primer_f, $pfl-$k+$l-1, 2).substr($rprimer_r, $l, 2)};
@@ -3228,44 +3229,44 @@
# and because it's 3' primer-dimers that are the real problem in PCR.
# create a binding array for each of the four bases
- for $l (0 .. $pfl-1) {
+ foreach $l (0 .. $pfl-1) {
my $mbase = substr($fprimer_r, $l, 1);
$primer_hash{$mbase}[$l]=1;
- for $k qw(a g c t) {
+ foreach $k (qw(a g c t)) {
$primer_hash{$k}[$l] ||=0;
}
}
# create the primer matrix
my @primer_comp;
- for $k (0 .. $prl-1) {
- $primer_comp[$k]=$primer_hash{substr($rcomprlc, $k, 1)};
+ foreach my $kk (0 .. $prl-1) {
+ $primer_comp[$kk]=$primer_hash{substr($rcomprlc, $kk, 1)};
}
# print the matrix - for debugging
print "$primer_f vs. $primer_r - full pd = $pd_full\n";
print " \t";
- for $l (0 .. $pfl-1) {
+ foreach $l (0 .. $pfl-1) {
my $mbase = substr($fprimer_r, $l, 1);
print "$mbase ";
}
print "\n";
- for $k (0 .. $prl-1) {
- my $base = substr($rprimer_r, $k, 1);
- print "$base:\t@{$primer_comp[$k]}\n";
+ foreach my $kk (0 .. $prl-1) {
+ my $base = substr($rprimer_r, $kk, 1);
+ print "$base:\t@{$primer_comp[$kk]}\n";
}
my @binding_data;
# read each combination from the matrix, calculate dG for each dimer
my $pd_len = ($pd_full ? $pfl+$prl-1 : $pl-2);
- for my $k (0 .. $pd_len) {
- $score[$k]=0;
+ foreach my $kk (0 .. $pd_len) {
+ $score[$kk]=0;
my $bind;
my $score_p=0;
# starting coords
- my $pf_coord_start = ($k >= $pfl ? $pfl-1 : $k);
- my $pr_coord_start = ($k - $pfl > 0 ? $k - $pfl : 0);
+ my $pf_coord_start = ($kk >= $pfl ? $pfl-1 : $kk);
+ my $pr_coord_start = ($kk - $pfl > 0 ? $kk - $pfl : 0);
my ($pf_coord, $pr_coord, $first, $flag);
# read through each combination finding multiple matches
@@ -3285,7 +3286,7 @@
}
} elsif ($flag) {
# end of a binding stretch
- push @binding_data, [$k, $first, $bind] if $bind > 1;
+ push @binding_data, [$kk, $first, $bind] if $bind > 1;
$bind=0;
$flag=0;
}
@@ -3325,7 +3326,7 @@
# # }
#
# # read the binding data
- # for $l (0 .. $prl-1) {
+ # foreach $l (0 .. $prl-1) {
# if (($k-$l)<$pfl) {
# $bind .= $primer_comp[$l][$k-$l] if ($k-$l)>=0;
# } else {
@@ -3344,7 +3345,7 @@
#
# # Find start and end of similarity
# my ($pb_init,$pb_end);
- # for $l (0 .. length($bind)-1) {
+ # foreach $l (0 .. length($bind)-1) {
# # at first I tried finding the initiating terminal bases with
# # regexps, but that was much slower ...
# if (substr($bind, $l, 1) eq "1") {
@@ -3355,7 +3356,7 @@
#
# if (defined($pb_init)) {
# # deltaG calculation
- # for $l ($pb_init .. $pb_end-1) {
+ # foreach $l ($pb_init .. $pb_end-1) {
# next if substr($bind, $l, 2) eq "00";
# next if substr($bind, $l, 1) eq "2";
# $score_p+=$oligo_dG{substr($primer_f, $pfl-$k+$l-1, 2).substr($rprimer_r, $l, 2)};

11
academic/perlprimer/02_fix-defined-slist.patch

@ -1,11 +0,0 @@
--- orig/perlprimer.pl 2016-11-22 21:06:25.135978000 +0200
+++ new/perlprimer.pl 2016-11-22 21:08:09.001971413 +0200
@@ -5226,7 +5226,7 @@ sub generate_report {
}
my ($hlist_sel) = $$hlist_ref->selectionGet;
- unless (defined(@$slist) && defined($hlist_sel)) {
+ unless (@$slist && defined($hlist_sel)) {
dialogue("The Generate Report function saves the statistics and alignment of a particular primer pair - please select a primer pair first");
return;
}

18
academic/perlprimer/README

@ -1,21 +1,21 @@
PerlPrimer is a free, open-source GUI application written in Perl
that designs primers for standard PCR, bisulphite PCR, real-time PCR
(QPCR) and sequencing. It aims to automate and simplify the process
of primer design.
PerlPrimer is a free, open-source GUI application written in Perl
that designs primers for standard PCR, bisulphite PCR, real-time PCR
(QPCR) and sequencing. It aims to automate and simplify the process
of primer design.
PerlPrimer's current features include the following:
- Calculation of possible primer-dimers
- Retrieval of genomic or cDNA sequences from Ensembl (including both
- Retrieval of genomic or cDNA sequences from Ensembl (including both
sequences automatically for QPCR)
- Ability to BLAST search primers using the NCBI server or a local
- Ability to BLAST search primers using the NCBI server or a local
server
- Results can be saved or optionally exported in a tab-delimited
- Results can be saved or optionally exported in a tab-delimited
format that is compatible with most spreadsheet applications.
- ORF and CpG island detection algorithms
- Ability to add cloning sequences to primers, automatically adjusted
- Ability to add cloning sequences to primers, automatically adjusted
to be in-frame
- QPCR primer design without manual intron-exon boundary entry
- QPCR primer design without manual intron-exon boundary entry
An optional run-time dependency is spidey, for Real Time PCR.

24
academic/perlprimer/perlprimer.SlackBuild

@ -2,7 +2,7 @@
# Slackware build script for perlprimer
# Copyright 2011-2016 Petar Petrov slackalaxy@gmail.com
# Copyright 2011-2018 Petar Petrov slackalaxy@gmail.com
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -23,8 +23,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=perlprimer
VERSION=${VERSION:-1.1.21}
BUILD=${BUILD:-3}
VERSION=${VERSION:-1.2.3_f7d3bd0}
COMMIT=${COMMIT:-f7d3bd0b7f509d88cb0aded4fc08042bcff7f5dd}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
ARCH=noarch
@ -39,9 +40,9 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
rm -rf $PRGNAM-$COMMIT
tar xvf $CWD/$PRGNAM-$COMMIT.tar.gz
cd $PRGNAM-$COMMIT
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@ -49,14 +50,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Thanks to Debian for the patch!
patch -p1 -i $CWD/01_sytaxerrors.patch
# A quick fix to this issue:
# https://bugs.launchpad.net/ubuntu/+source/perlprimer/+bug/1575074
patch -p1 -i $CWD/02_fix-defined-slist.patch
install -D -m755 perlprimer.pl $PKG/usr/bin/perlprimer.pl
install -D -m755 $PRGNAM $PKG/usr/bin/perlprimer.pl
install -D -m644 gcg.603 $PKG/usr/share/$PRGNAM/gcg.603
mkdir -p $PKG/usr/share/{applications,pixmaps}
@ -65,7 +59,7 @@ cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
Changelog ReadMe.txt todo tutorial.html tutorial_files \
Changelog LICENSE README.md tutorial.html tutorial_files \
$PKG/usr/doc/$PRGNAM-$VERSION/
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/References > $PKG/usr/doc/$PRGNAM-$VERSION/References

8
academic/perlprimer/perlprimer.info

@ -1,8 +1,8 @@
PRGNAM="perlprimer"
VERSION="1.1.21"
HOMEPAGE="http://perlprimer.sourceforge.net/"
DOWNLOAD="http://downloads.sourceforge.net/perlprimer/perlprimer-1.1.21.tar.bz2"
MD5SUM="016eb870b988a280cdb730a86dd67591"
VERSION="1.2.3_f7d3bd0"
HOMEPAGE="https://github.com/owenjm/perlprimer"
DOWNLOAD="https://github.com/owenjm/perlprimer/archive/f7d3bd0/perlprimer-f7d3bd0b7f509d88cb0aded4fc08042bcff7f5dd.tar.gz"
MD5SUM="c4fe53c120d3ed61514dacd355a93791"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libwww-perl perl-tk"

2
academic/perlprimer/slack-desc

@ -14,6 +14,6 @@ perlprimer: (QPCR) and sequencing. It aims to automate and simplify the process
perlprimer: of primer design.
perlprimer:
perlprimer: Home: http://perlprimer.sourceforge.net/
perlprimer: References: /usr/doc/perlprimer-1.1.21/References
perlprimer:
perlprimer:
perlprimer:
Loading…
Cancel
Save