Skip to content
Commits on Source (7)
proteinortho (6.0.12+dfsg-2) UNRELEASED; urgency=medium
* Team upload.
* patch: Use #!/usr/bin/python3 (fixes autopkgtests)
* patch: Find the packaged version of the Diamond aligner
* patch: Improve build hardening via CPPFLAGS & CFLAGS
* Expanded autopkgtests, following `make test`
* patch: fix a spelling typo
-- Michael R. Crusoe <michael.crusoe@gmail.com> Mon, 13 Jan 2020 11:45:52 +0100
proteinortho (6.0.12+dfsg-1) unstable; urgency=medium
* Team upload.
......
......@@ -6,7 +6,8 @@ Priority: optional
Build-Depends: debhelper-compat (= 12),
ncbi-blast+,
liblapack-dev | libatlas-base-dev | liblapack.so,
diamond-aligner
diamond-aligner,
procps
Standards-Version: 4.4.1
Vcs-Browser: https://salsa.debian.org/med-team/proteinortho
Vcs-Git: https://salsa.debian.org/med-team/proteinortho.git
......@@ -16,10 +17,12 @@ Package: proteinortho
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
${python3:Depends},
${perl:Depends},
python3,
ncbi-blast+,
diamond-aligner,
liblapack3
liblapack3,
procps
Description: Detection of (Co-)orthologs in large-scale protein analysis
Proteinortho is a stand-alone tool that is geared towards large datasets
and makes use of distributed computing techniques when run on multi-core
......
Author: Michael R. Crusoe <michael.crusoe@gmail.com>
Description: Find some Debian packaged software under their original names
--- proteinortho.orig/proteinortho6.pl
+++ proteinortho/proteinortho6.pl
@@ -535,6 +535,9 @@
$NC="";
}
+# Find some Debian packaged software under their original names
+$ENV{PATH} = "$ENV{PATH}:/usr/lib/debian-med/bin";
+
##########################################################################################
# Parameters
##########################################################################################
--- proteinortho.orig/Makefile
+++ proteinortho/Makefile
@@ -265,7 +265,7 @@
fi
@echo -n " [3/12] -p=diamond test: "
- @if [ "$(shell which diamond)" = "" ]; then\
+ @if [ "$(shell which diamond-aligner)" = "" ]; then\
echo "$(ORANGE)diamond missing, skipping...$(NC)"; \
else \
./proteinortho6.pl -silent -force -project=test_diamond -p=diamond test/*.faa; \
From: Michael R. Crusoe <michael.crusoe@gmail.com>
Subject: Add CPPFLAGS & CFLAGS
And make the build more verbose so we can confirm this.
--- proteinortho.orig/Makefile
+++ proteinortho/Makefile
@@ -152,13 +152,13 @@
ifeq ($(USEPRECOMPILEDLAPACK),TRUE)
ifeq ($(STATIC),TRUE)
@echo "[ 20%] Building **proteinortho_clustering** with LAPACK (static linking)";
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -static -Wl,--allow-multiple-definition -llapack -lblas -lgfortran -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -lquadmath && ([ $$? -eq 0 ] ) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -static -Wl,--allow-multiple-definition -llapack -lblas -lgfortran -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -lquadmath && ([ $$? -eq 0 ] ) || ( \
echo "......$(ORANGE)static linking failed, now I try dynamic linking.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)dynamic linking failed too, now I try dynamic linking without -WL,-whole-archive (this should now work for OSX).$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)dynamic linking failed (without -WL,-whole-archive) too too, now I try to openblas.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -lopenblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -lopenblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)last linking failed too too too, now I try to recompile lapack (v.3.8.0) and then compile proteinortho_clustering with dynamic linking.$(NC)"; \
echo "......[ 33%] Extracting the LAPACK library"; \
if [ ! -d src/lapack-3.8.0 ]; then cd src; tar -xzvf lapack-3.8.0.tar.gz > /dev/null 2>&1; cd ..; fi; \
@@ -168,18 +168,18 @@
$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< -Isrc/lapack-3.8.0/build/include/ -Lsrc/lapack-3.8.0/build/lib/ -llapack -lblas $(LDFLAGS) $(LDLIBS) -lgfortran && echo "......OK dynamic linking was successful for proteinortho_clustering!" || ( echo "" ) ; ) ) ) )
else
@echo "[ 20%] Building **proteinortho_clustering** with LAPACK (dynamic linking)";
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -Wl,--whole-archive -lpthread -Wl,--no-whole-archive && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)dynamic linking failed too, now I try dynamic linking without -WL,-whole-archive (this should now work for OSX).$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -llapack -lblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)dynamic linking failed (without -WL,-whole-archive) too too, now I try to openblas.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -lopenblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< $(LDFLAGS) $(LDLIBS) -lopenblas -pthread -lpthread && ([ $$? -eq 0 ] && echo "......OK dynamic linking was successful for proteinortho_clustering!";) || ( \
echo "......$(ORANGE)last linking failed too too too, now I try to recompile lapack (v.3.8.0) and then compile proteinortho_clustering with dynamic linking.$(NC)"; \
echo "......[ 33%] Extracting the LAPACK library"; \
if [ ! -d src/lapack-3.8.0 ]; then cd src; tar -xzvf lapack-3.8.0.tar.gz > /dev/null 2>&1; cd ..; fi; \
echo "......[ 66%] Compiling the LAPACK library (using cmake + make)"; \
if [ ! -f src/lapack-3.8.0/build/lib/liblapack.a ]; then mkdir src/lapack-3.8.0/build 2> /dev/null; cd src/lapack-3.8.0/build; cmake .. -DCMAKE_CXX_COMPILER=$(CXX) > /dev/null; make all -j4 > /dev/null 2>&1; cd ../../.. ; fi; \
echo "......[ 99%] Building **proteinortho_clustering** with LAPACK (dynamic linking)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< -Isrc/lapack-3.8.0/build/include/ -Lsrc/lapack-3.8.0/build/lib/ -llapack -lblas $(LDFLAGS) $(LDLIBS) -lgfortran && echo "......OK dynamic linking was successful for proteinortho_clustering!" || ( echo "" ) ; ) ) )
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< -Isrc/lapack-3.8.0/build/include/ -Lsrc/lapack-3.8.0/build/lib/ -llapack -lblas $(LDFLAGS) $(LDLIBS) -lgfortran && echo "......OK dynamic linking was successful for proteinortho_clustering!" || ( echo "" ) ; ) ) )
endif
@if [ ! -e $(BUILDDIR)/proteinortho_clustering ]; then echo "proteinortho_clustering compilation failed. Please visit https://gitlab.com/paulklemm_PHD/proteinortho/wikis/Error%20Codes"; false; fi
else
@@ -188,47 +188,47 @@
@echo "[ 18%] Compiling the LAPACK library (using cmake + make)";
@if [ ! -f src/lapack-3.8.0/build/lib/liblapack.a ]; then mkdir src/lapack-3.8.0/build; cd src/lapack-3.8.0/build; cmake .. -DCMAKE_CXX_COMPILER=$(CXX) > /dev/null 2>&1; make all -j4 > /dev/null 2>&1; cd ../../.. ; fi;
@echo "[ 20%] Building **proteinortho_clustering** with LAPACK (dynamic linking)";
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< -Isrc/lapack-3.8.0/build/include/ -Lsrc/lapack-3.8.0/build/lib/ -llapack -lblas $(LDFLAGS) $(LDLIBS) -lgfortran;
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ $< -Isrc/lapack-3.8.0/build/include/ -Lsrc/lapack-3.8.0/build/lib/ -llapack -lblas $(LDFLAGS) $(LDLIBS) -lgfortran;
endif
endif
ifeq ($(USELAPACK),FALSE)
@echo "[ 20%] Building **proteinortho_clustering** WITHOUT(!) LAPACK";
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ src/proteinortho_clustering_nolapack.cpp $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ src/proteinortho_clustering_nolapack.cpp $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
echo "......$(ORANGE)static linking failed of proteinortho_clustering_nolapack, now i switch to dynamic linking.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ src/proteinortho_clustering_nolapack.cpp $(LDFLAGS) $(LDLIBS) && echo "......OK dynamic linking was successful for proteinortho_clustering_nolapack!"; )
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -fopenmp -o $@ src/proteinortho_clustering_nolapack.cpp $(LDFLAGS) $(LDLIBS) && echo "......OK dynamic linking was successful for proteinortho_clustering_nolapack!"; )
endif
$(BUILDDIR)/proteinortho_cleanupblastgraph: src/cleanupblastgraph.cpp
$(dir_guard)
@echo "[ 50%] Building **cleanupblastgraph**"
ifeq ($(STATIC),TRUE)
- @$(CXX) -std=c++11 $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
+ $(CXX) -std=c++11 $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
echo "......$(ORANGE)static linking failed of cleanupblastgraph, now i switch to dynamic linking.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< && echo "......OK dynamic linking was successful of cleanupblastgraph!"; )
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< && echo "......OK dynamic linking was successful of cleanupblastgraph!"; )
else
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS)
endif
$(BUILDDIR)/proteinortho_graphMinusRemovegraph: src/graphMinusRemovegraph.cpp
$(dir_guard)
@echo "[ 25%] Building **graphMinusRemovegraph**"
ifeq ($(STATIC),TRUE)
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
echo "......$(ORANGE)static linking failed of graphMinusRemovegraph, now i switch to dynamic linking.$(NC)"; \
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< && echo "......OK dynamic linking was successful of graphMinusRemovegraph!"; )
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< && echo "......OK dynamic linking was successful of graphMinusRemovegraph!"; )
else
- @$(CXX) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_PO) -o $@ $< $(LDFLAGS) $(LDLIBS)
endif
$(BUILDDIR)/proteinortho_treeBuilderCore: src/po_tree.c
$(dir_guard)
@echo "[ 75%] Building **po_tree**"
ifeq ($(STATIC),TRUE)
- @$(CC) $(CCFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
+ $(CC) $(CPPFLAGS) $(CCFLAGS) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS) -static && ([ $$? -eq 0 ] ) || ( \
echo "......$(ORANGE)static linking failed of po_tree, now i switch to dynamic linking.$(NC)"; \
- $(CC) $(CCFLAGS) -o $@ $< && echo "......OK dynamic linking was successful of po_tree!"; )
+ $(CC) $(CPPFLAGS) $(CCFLAGS) $(CFLAGS) -o $@ $< && echo "......OK dynamic linking was successful of po_tree!"; )
else
- @$(CC) $(CCFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS)
+ $(CC) $(CPPFLAGS) $(CCFLAGS) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDLIBS)
endif
.PHONY: install
From: Michael R. Crusoe <michael.crusoe@gmail.com>
Description: For Debian, we are only supporting Python version 3
--- proteinortho.orig/src/proteinortho_ffadj_mcs.py
+++ proteinortho/src/proteinortho_ffadj_mcs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
from sys import stderr, exit, argv, maxsize
from copy import deepcopy
python3
hardening
deb_diamond
spelling
From: Michael R. Crusoe <michael.crusoe@gmail.com>
Subject: Fix a typo
Found via Debian's "lintian"
--- proteinortho.orig/src/proteinortho_clustering.cpp
+++ proteinortho/src/proteinortho_clustering.cpp
@@ -1851,7 +1851,7 @@
}else{
do_normalPartitionAlgorithm:
- if (debug_level > 0) cerr << getTime() << " [DEBUG] perfoming a normal split of " << nodes.size()<< " nodes" << endl;
+ if (debug_level > 0) cerr << getTime() << " [DEBUG] performing a normal split of " << nodes.size()<< " nodes" << endl;
// Store data about two groups (Zero cannot be assigned with certainty)
map<unsigned int,bool> groupA, groupB, groupZero;
--- proteinortho.orig/src/proteinortho_clustering_nolapack.cpp
+++ proteinortho/src/proteinortho_clustering_nolapack.cpp
@@ -1611,7 +1611,7 @@
}else{
do_normalPartitionAlgorithm:
- if (debug_level > 0) cerr << getTime() << " [DEBUG] perfoming a normal split of " << nodes.size()<< " nodes" << endl;
+ if (debug_level > 0) cerr << getTime() << " [DEBUG] performing a normal split of " << nodes.size()<< " nodes" << endl;
// Store data about two groups (Zero cannot be assigned with certainty)
map<unsigned int,bool> groupA, groupB, groupZero;
proteinortho source: python3-depends-but-no-python3-helper proteinortho
......@@ -13,7 +13,57 @@ mkdir test
cp -a /usr/share/doc/${pkg}/examples/* test
gunzip -r *
proteinortho -project=test -synteny -singles test/*.faa
./test/chk_test.pl test.proteinortho.tsv
./test/chk_test.pl test.poff.tsv
proteinortho -force -project=test_blastp -p=blastp+ test/*.faa
./test/chk_test.pl test_blastp.proteinortho.tsv
proteinortho -force -project=test_synteny -synteny -singles -p=blastp+ test/*.faa
./test/chk_test.pl test_synteny.proteinortho.tsv
./test/chk_test.pl test_synteny.poff.tsv
proteinortho -force -project=test_diamond -p=diamond test/*.faa
./test/chk_test.pl test_diamond.proteinortho.tsv
proteinortho -force -project=test_diamondmoresensitive -p=diamond -subparaBlast="--more-sensitive" test/*.faa
./test/chk_test.pl test_diamondmoresensitive.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_lastp -p=lastp test/*.faa
#./test/chk_test.pl test_lastp.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_topaz -p=topaz test/*.faa
#./test/chk_test.pl test_topaz.proteinortho.tsv
# Not yet packaged
#proteinortho -force -project=test_usearch -p=usearch test/*.faa
#./test/chk_test.pl test_usearch.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_ublast -p=ublast test/*.faa
#./test/chk_test.pl test_ublast.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_rapsearch -p=rapsearch test/*.faa
#./test/chk_test.pl test_rapsearch.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_blatp -p=blatp test/*.faa
#./test/chk_test.pl test_blatp.proteinortho.tsv
# Not yet packaged?
#proteinortho -force -project=test_mmseqsp -p=mmseqsp test/*.faa
#./test/chk_test.pl test_blatp.proteinortho.tsv
proteinortho -force -project=test_blastall -p=blastp test/*.faa
./test/chk_test.pl test_blastall.proteinortho.tsv
/usr/lib/proteinortho/proteinortho_clustering -test
# Compare results of 'with lapack' and 'without lapack'
/usr/lib/proteinortho/proteinortho_clustering -epsilon 0 test_blastp.blast-graph
sort remove.graph -o test.A
/usr/lib/proteinortho/proteinortho_clustering -epsilon 0 -lapack 0 test_blastp.blast-graph
sort remove.graph -o test.B
diff test.A test.B
echo "Test okay"