mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-12 02:40:31 +08:00
perlPackages.BioExtAlign: bug fix and add test
Bug: with perl > 5.36, the compiler is more restrictive with errors. This package has implicit function definitions. The fix is to ignore the errors as vep, the main package for that, runs without issue. Also this package is no longer maintained We also add test that were missing from the package. Not all test can be run as they depends on other Perl modules in Bioper.
This commit is contained in:
@@ -8,10 +8,7 @@ buildPerlPackage rec {
|
||||
pname = "BioExtAlign";
|
||||
version = "1.5.1";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
outputs = [ "out" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bioperl";
|
||||
@@ -20,7 +17,15 @@ buildPerlPackage rec {
|
||||
sha256 = "sha256-+0tZ6q3PFem8DWa2vq+njOLmjDvMB0JhD0FGk00lVMA=";
|
||||
};
|
||||
|
||||
patches = [ ./fprintf.patch ];
|
||||
patches = [
|
||||
# Starting for Perl 5.6, implicit function declaration are treated as errors
|
||||
# There may be an error but ensembl-vep (the main package for this dependency)
|
||||
# runs
|
||||
./no-implicit-function.patch
|
||||
# Tests need other parts of BioExt, disabling them
|
||||
./disable-other-tests.patch
|
||||
./fprintf.patch
|
||||
];
|
||||
|
||||
# Do not install other Bio-ext packages
|
||||
preConfigure = ''
|
||||
@@ -30,6 +35,15 @@ buildPerlPackage rec {
|
||||
# Disable tests as it requires Bio::Tools::Align which is in a different directory
|
||||
buildPhase = ''
|
||||
make
|
||||
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
make test
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
meta = {
|
||||
@@ -39,5 +53,6 @@ buildPerlPackage rec {
|
||||
Part of BioPerl Extensions (BioPerl-Ext) distribution, a collection of Bioperl C-compiled extensions.
|
||||
'';
|
||||
license = with lib.licenses; [ artistic1 ];
|
||||
maintainers = with lib.maintainers; [ apraga ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
diff --git a/Bio/Ext/Align/test.pl b/Bio/Ext/Align/test.pl
|
||||
index 72411f3..1deb77b 100755
|
||||
--- a/Bio/Ext/Align/test.pl
|
||||
+++ b/Bio/Ext/Align/test.pl
|
||||
@@ -8,13 +8,10 @@ my $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
|
||||
BEGIN {
|
||||
eval { require Test; };
|
||||
use Test;
|
||||
- plan tests => 9;
|
||||
+ plan tests => 4;
|
||||
}
|
||||
|
||||
use Bio::Ext::Align;
|
||||
-use Bio::Tools::dpAlign;
|
||||
-use Bio::Seq;
|
||||
-use Bio::AlignIO;
|
||||
|
||||
$loaded = 1;
|
||||
ok(1); # modules loaded
|
||||
@@ -34,64 +31,3 @@ $alb = &Bio::Ext::Align::Align_Sequences_ProteinSmithWaterman($seq1,$seq2,
|
||||
$seq2->seq,15,50,STDERR) if $DEBUG;
|
||||
|
||||
|
||||
-warn( "Testing Local Alignment case...\n") if $DEBUg;
|
||||
-
|
||||
-$alnout = new Bio::AlignIO(-format => 'pfam', -fh => \*STDERR);
|
||||
-$aln = &Bio::Ext::Align::Align_DNA_Sequences("AATGCCATTGACGG",
|
||||
- "CAGCCTCGCTTAG",3,-1,3,1,
|
||||
- Bio::Tools::dpAlign::DPALIGN_LOCAL_MILLER_MYERS);
|
||||
-
|
||||
-$out = Bio::SimpleAlign->new();
|
||||
-
|
||||
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln1,
|
||||
- -start => $aln->start1,
|
||||
- -end => $aln->end1,
|
||||
- -id => "one"));
|
||||
-
|
||||
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln2,
|
||||
- -start => $aln->start2,
|
||||
- -end => $aln->end2,
|
||||
- -id => "two"));
|
||||
-$alnout->write_aln($out) if $DEBUG;
|
||||
-
|
||||
-$aln = &Bio::Ext::Align::Align_Protein_Sequences("WLGQRNLVSSTGGNLLNVWLKDW","WMGNRNVVNLLNVWFRDW",0,
|
||||
- Bio::Tools::dpAlign::DPALIGN_LOCAL_MILLER_MYERS);
|
||||
-$out = Bio::SimpleAlign->new();
|
||||
-ok($aln);
|
||||
-
|
||||
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln1,
|
||||
- -start => $aln->start1,
|
||||
- -end => $aln->end1,
|
||||
- -id => "one"));
|
||||
-
|
||||
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln2,
|
||||
- -start => $aln->start2,
|
||||
- -end => $aln->end2,
|
||||
- -id => "two"));
|
||||
-$alnout->write_aln($out) if $DEBUG;
|
||||
-ok(1);
|
||||
-
|
||||
-warn( "Testing Global Alignment case...\n") if $DEBUG;
|
||||
-
|
||||
-$factory = new Bio::Tools::dpAlign('-alg' => Bio::Tools::dpAlign::DPALIGN_GLOBAL_MILLER_MYERS);
|
||||
-$s1 = new Bio::Seq(-id => "one", -seq => "AATGCCATTGACGG", -alphabet => 'dna');
|
||||
-$s2 = new Bio::Seq(-id => "two", -seq => "CAGCCTCGCTTAG", -alphabet => 'dna');
|
||||
-$aln = $factory->pairwise_alignment($s1, $s2);
|
||||
-$alnout->write_aln($aln) if $DEBUG;
|
||||
-$factory->align_and_show($s1, $s2) if $DEBUG;
|
||||
-
|
||||
-ok(1);
|
||||
-
|
||||
-$s1 = new Bio::Seq(-id => "one", -seq => "WLGQRNLVSSTGGNLLNVWLKDW",
|
||||
- -alphabet => 'protein');
|
||||
-$s2 = new Bio::Seq(-id => "two", -seq => "WMGNRNVVNLLNVWFRDW",
|
||||
- -alphabet => 'protein');
|
||||
-$aln = $factory->pairwise_alignment($s1, $s2);
|
||||
-$alnout->write_aln($aln) if $DEBUG;
|
||||
-$factory->align_and_show($s1, $s2) if $DEBUG;
|
||||
-ok(1);
|
||||
-
|
||||
-$prof = $factory->sequence_profile($s1);
|
||||
-warn( "Optimal Alignment Score = %d\n", $factory->pairwise_alignment_score($prof, $s2)) if $DEBUG;
|
||||
-
|
||||
-ok($factory->pairwise_alignment_score($prof,$s2),77);
|
||||
@@ -7,7 +7,7 @@ index 0e07b67..0eab932 100644
|
||||
dpAlign_fatal(char * s)
|
||||
{
|
||||
- fprintf(stderr, s);
|
||||
+ fputs(stderr, s);
|
||||
+ fputs(s, stderr);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/Bio/Ext/Align/Makefile.PL b/Bio/Ext/Align/Makefile.PL
|
||||
index cc6c343..ea5cffa 100755
|
||||
--- a/Bio/Ext/Align/Makefile.PL
|
||||
+++ b/Bio/Ext/Align/Makefile.PL
|
||||
@@ -5,7 +5,7 @@ WriteMakefile(
|
||||
'NAME' => 'Bio::Ext::Align',
|
||||
'VERSION' => '1.5.1',
|
||||
'LIBS' => ['-lm'], # e.g., '-lm'
|
||||
- 'DEFINE' => '-DPOSIX -DNOERROR', # e.g., '-DHAVE_SOMETHING'
|
||||
+ 'DEFINE' => '-DPOSIX -DNOERROR -Wno-implicit-function-declaration', # e.g., '-DHAVE_SOMETHING'
|
||||
'INC' => '-I./libs', # e.g., '-I/usr/include/other'
|
||||
'MYEXTLIB' => 'libs/libsw$(LIB_EXT)',
|
||||
'clean' => { 'FILES' => 'libs/*.o libs/*.a' }
|
||||
Reference in New Issue
Block a user