[med-svn] [Git][med-team/kmer][master] 7 commits: d/control: apply Multiarch hints.
Michael R. Crusoe (@crusoe)
gitlab at salsa.debian.org
Tue Aug 12 09:01:06 BST 2025
Michael R. Crusoe pushed to branch master at Debian Med / kmer
Commits:
ec6279a5 by Michael R. Crusoe at 2025-08-12T08:58:32+02:00
d/control: apply Multiarch hints.
- - - - -
52b9f398 by Michael R. Crusoe at 2025-08-12T09:09:00+02:00
Cleanup patch metadata.
- - - - -
2d0b85ed by Michael R. Crusoe at 2025-08-12T09:21:19+02:00
d/tests: make the test scripts shellcheck-clean. Also fixes a lintian warning about a bash-ism.
- - - - -
e20527f5 by Michael R. Crusoe at 2025-08-12T09:22:39+02:00
Standards-Version: 4.7.2 (routine-update)
- - - - -
1eae2a7a by Michael R. Crusoe at 2025-08-12T09:30:27+02:00
d/patches/fix_wrong_evaluation_order.patch: mark as forwarded
- - - - -
8daec100 by Michael R. Crusoe at 2025-08-12T09:53:04+02:00
d/atac.lintian-overrides: silence a false positive
- - - - -
e4472af7 by Michael R. Crusoe at 2025-08-12T09:53:04+02:00
routine-update: Ready to upload to unstable
- - - - -
13 changed files:
- + debian/atac.lintian-overrides
- debian/changelog
- debian/control
- debian/patches/2to3.patch
- debian/patches/allow-freebsd-build.patch
- debian/patches/atac-helper-script-paths.patch
- debian/patches/atac-readme.patch
- debian/patches/drop_distutils
- debian/patches/fix_wrong_evaluation_order.patch
- debian/patches/linux-cflags.patch
- debian/patches/spelling.patch
- debian/tests/atac-unit-test
- debian/tests/sim4db-unit-test
Changes:
=====================================
debian/atac.lintian-overrides
=====================================
@@ -0,0 +1,2 @@
+# false positive; gnuplot is both a virtual package and metapackage that defaults to gnuplot-qt
+atac: virtual-package-depends-without-real-package-depends Depends: gnuplot
=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+kmer (0~20150903+r2013-10) unstable; urgency=medium
+
+ * Team upload.
+ * d/control: apply Multiarch hints.
+ * Cleanup patch metadata.
+ * d/tests: make the test scripts shellcheck-clean. Also fixes a
+ lintian warning about a bash-ism.
+ * Standards-Version: 4.7.2 (routine-update)
+ * d/patches/fix_wrong_evaluation_order.patch: mark as forwarded
+ * d/atac.lintian-overrides: silence a false positive
+
+ -- Michael R. Crusoe <crusoe at debian.org> Tue, 12 Aug 2025 09:42:29 +0200
+
kmer (0~20150903+r2013-9) unstable; urgency=medium
* Team upload.
=====================================
debian/control
=====================================
@@ -9,7 +9,7 @@ Build-Depends: debhelper-compat (= 13),
dh-sequence-python3,
python3-dev,
dh-python | dh-sequence-python3
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
Vcs-Browser: https://salsa.debian.org/med-team/kmer
Vcs-Git: https://salsa.debian.org/med-team/kmer.git
Homepage: http://kmer.sourceforge.net
@@ -64,6 +64,7 @@ Description: in- and out-of-core kmer counting and utilities
Package: libmeryl-dev
Architecture: any
+Multi-Arch: same
Section: libdevel
Depends: ${shlibs:Depends},
${misc:Depends}
@@ -147,6 +148,7 @@ Description: genome assembly-to-assembly comparison
Package: kmer-examples
Architecture: all
+Multi-Arch: foreign
Depends: ${misc:Depends}
Enhances: sim4db,
atac
=====================================
debian/patches/2to3.patch
=====================================
@@ -1,11 +1,35 @@
-Description: Use 2to3 to port from Python2 to Python3
+From: Andreas Tille <tille at debian.org>
+Date: Thu, 19 Dec 2019 10:45:52 +0100
+Subject: Use 2to3 to port from Python2 to Python3
+
Bug-Debian: https://bugs.debian.org/936802
-Author: Andreas Tille <tille at debian.org>
-Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
+Last-Update: 2020-05-16
+---
+ Makefile.wiki | 4 +-
+ atac-driver/atac.pl | 2 +-
+ atac-driver/chainer/halign/halignmodule.C | 13 +-
+ .../localalign/localAlignerInterfacemodule.C | 13 +-
+ atac-driver/chainer/python/AtacDriver.py | 203 ++++++++++-----------
+ atac-driver/chainer/python/AtacFile.py | 18 +-
+ atac-driver/chainer/python/IdxStore.py | 16 +-
+ atac-driver/chainer/python/MatchRecord.py | 8 +-
+ atac-driver/chainer/python/MyFile.py | 78 ++++----
+ atac-driver/chainer/python/PerfectRuns.py | 42 ++---
+ atac-driver/chainer/python/TrimMatchOverlaps.py | 62 +++----
+ atac-driver/chainer/python/UniqueFilter.py | 44 ++---
+ atac-driver/chainer/python/dedashMatches.py | 12 +-
+ atac-driver/chainer/python/fillIntraRunGaps.py | 118 ++++++------
+ atac-driver/chainer/python/mkstats.py | 12 +-
+ atac-driver/chainer/python/squeezeIntraRunGaps.py | 58 +++---
+ atac-driver/config.py | 4 +-
+ configure.sh | 6 +-
+ 18 files changed, 369 insertions(+), 344 deletions(-)
+diff --git a/Makefile.wiki b/Makefile.wiki
+index c8bab56..3f33a92 100644
--- a/Makefile.wiki
+++ b/Makefile.wiki
-@@ -1370,9 +1370,9 @@
+@@ -1370,9 +1370,9 @@ there the <tt>_OS|FULL_</tt> is useful, since different platforms
install LAPACK in all sorts of ways.
<pre>
@@ -17,6 +41,68 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
ifeq (${_OS_}${_CC_},TRU64)
CFLAGS_PY :=-I/usr/local/ir/Python-2.2.2 -I/usr/local/ir/Python-2.2.2/Include
PYTHON :=/usr/local/ir/bin/python
+diff --git a/atac-driver/atac.pl b/atac-driver/atac.pl
+index 4acc7a4..3d6c237 100755
+--- a/atac-driver/atac.pl
++++ b/atac-driver/atac.pl
+@@ -732,7 +732,7 @@ sub makeChains {
+ #
+ $ENV{'PYTHONPATH'} = "$LIBdir";
+
+- if (runCommand("python $chainer $ATACdir/work/$matches.matches.extended")) {
++ if (runCommand("python3 $chainer $ATACdir/work/$matches.matches.extended")) {
+ print STDERR "PYTHONPATH=$ENV{'PYTHONPATH'}\n";
+ die "Chainer failed.\n";
+ }
+diff --git a/atac-driver/chainer/halign/halignmodule.C b/atac-driver/chainer/halign/halignmodule.C
+index 2015647..30300e4 100644
+--- a/atac-driver/chainer/halign/halignmodule.C
++++ b/atac-driver/chainer/halign/halignmodule.C
+@@ -54,7 +54,16 @@ registration_table[] = {
+ {NULL, NULL, 0, NULL}
+ };
+
++static struct PyModuleDef cModMethods =
++{
++ PyModuleDef_HEAD_INIT,
++ "halign", /* name of module */
++ "", /* module documentation, may be NULL */
++ -1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
++ registration_table
++};
++
+ extern "C"
+-void inithalign(void) {
+- Py_InitModule("halign", registration_table);
++void PyInit_halign(void) {
++ PyModule_Create(&cModMethods);
+ }
+diff --git a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
+index ffdde01..840865f 100644
+--- a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
++++ b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
+@@ -227,8 +227,17 @@ registration_table[] = {
+ };
+
+
++static struct PyModuleDef cModMethods =
++{
++ PyModuleDef_HEAD_INIT,
++ "localAlignerInterface", /* name of module */
++ "", /* module documentation, may be NULL */
++ -1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
++ registration_table
++};
++
+ extern "C"
+-void initlocalAlignerInterface() {
+- Py_InitModule("localAlignerInterface", registration_table);
++void PyInit_localAlignerInterface() {
++ PyModule_Create(&cModMethods);
+ }
+
+diff --git a/atac-driver/chainer/python/AtacDriver.py b/atac-driver/chainer/python/AtacDriver.py
+index 5a7bc14..a104d75 100755
--- a/atac-driver/chainer/python/AtacDriver.py
+++ b/atac-driver/chainer/python/AtacDriver.py
@@ -1,4 +1,4 @@
@@ -25,7 +111,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
"""
The environmental variable "PYTHONPATH" is a colon separated list
-@@ -28,12 +28,9 @@
+@@ -28,12 +28,9 @@ import fillIntraRunGaps
#import dedashMatches
@@ -40,7 +126,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def cvm(f,x,y):
# A cvm variant (flag ? y : x) = (x,y)[f]
-@@ -58,7 +55,7 @@
+@@ -58,7 +55,7 @@ class GlobalParam:
def usage (*_):
@@ -49,7 +135,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end def
def filterByMatchLength( inpfile, outfile, minimum_length):
-@@ -69,7 +66,7 @@
+@@ -69,7 +66,7 @@ def filterByMatchLength( inpfile, outfile, minimum_length):
FM = MatchRecord.MatchRecord(line)
if (FM.x_length >= minimum_length and
FM.y_length >= minimum_length ):
@@ -58,7 +144,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
# end if
# end for
-@@ -90,7 +87,7 @@
+@@ -90,7 +87,7 @@ def onlyKeepLongRuns ( inpfile, outname, lengthThreshold ):
SL = FM.x_length
if FL != None and FL.runid != FM.runid :
for x in store:
@@ -67,7 +153,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end for
store = []
lenInMatches = SL
-@@ -102,10 +99,10 @@
+@@ -102,10 +99,10 @@ def onlyKeepLongRuns ( inpfile, outname, lengthThreshold ):
store.append(FM)
else:
for x in store:
@@ -80,7 +166,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
FL = FM
# end if
-@@ -142,10 +139,10 @@
+@@ -142,10 +139,10 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
assert(py >= 0)
assert(ny >= 0)
if (not (not needs_to_share_diagonal or nx == ny)):
@@ -95,7 +181,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
assert((hghHitPX == None or (not needs_to_share_diagonal) or nx == ny))
forward = (curF.x_orientation == curF.y_orientation)
-@@ -182,7 +179,7 @@
+@@ -182,7 +179,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
firstF.y_start = lowHitPY
firstF.x_length = hghHitPX - lowHitPX
firstF.y_length = hghHitPY - lowHitPY
@@ -104,7 +190,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
firstF = curF
lowHitPX = lowMerPX
-@@ -209,7 +206,7 @@
+@@ -209,7 +206,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
firstF.y_start = lowHitPY
firstF.x_length = hghHitPX - lowHitPX
firstF.y_length = hghHitPY - lowHitPY
@@ -113,7 +199,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
return
# end def
-@@ -243,12 +240,12 @@
+@@ -243,12 +240,12 @@ def boxRecovery( inpfile, rawfile, outname):
if( rawline[0] == 'M'):
rawMatch = MatchRecord.MatchRecord(rawline)
if(rawMatch.sameAs(rightMatch)):
@@ -128,7 +214,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
# end if
# end if
-@@ -260,7 +257,7 @@
+@@ -260,7 +257,7 @@ def boxRecovery( inpfile, rawfile, outname):
if( rawline[0] == 'M'):
rawMatch = MatchRecord.MatchRecord(rawline)
if(rawMatch.sameAs(rightMatch)):
@@ -137,7 +223,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
break
else:
# print >>STDERR, "Discard rawMatch=", rawMatch
-@@ -281,7 +278,7 @@
+@@ -281,7 +278,7 @@ def boxRecovery( inpfile, rawfile, outname):
class AtacDriver(AtacFile.AtacFile):
def runOld(self):
self.globals['atacAlgorithmVersion'] = str(17)
@@ -146,7 +232,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# The ATAC globals used by this script:
opt_t = int(self.globals['globalMatchMinSize'])
-@@ -295,7 +292,7 @@
+@@ -295,7 +292,7 @@ class AtacDriver(AtacFile.AtacFile):
assemblyFile2 = self.globals['assemblyFile2']
boxRecoveryOn = 0 # Deprecated for same species comparisons 2003/09/09.
@@ -155,7 +241,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
boxRecoveryOn = int(self.globals['boxRecoveryOn'])
t0 = time.time()
-@@ -309,24 +306,24 @@
+@@ -309,24 +306,24 @@ class AtacDriver(AtacFile.AtacFile):
redo = 0
keep = 0
step = 0
@@ -189,7 +275,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
outfile = MyFile.myfile()
UniqueFilter.main( self.matches, outfile)
self.matches = outfile
-@@ -334,11 +331,11 @@
+@@ -334,11 +331,11 @@ class AtacDriver(AtacFile.AtacFile):
self.checkpoint(outprefix)
step += 1
@@ -205,7 +291,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
outfile = MyFile.myfile()
filterByMatchLength( self.matches, outfile, opt_t)
self.matches = outfile
-@@ -346,15 +343,15 @@
+@@ -346,15 +343,15 @@ class AtacDriver(AtacFile.AtacFile):
self.checkpoint(outprefix)
step += 1
@@ -226,7 +312,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
outprefix += '.trim'
self.checkpoint(outprefix)
-@@ -363,11 +360,11 @@
+@@ -363,11 +360,11 @@ class AtacDriver(AtacFile.AtacFile):
rawfile = self.matches
step += 1
@@ -242,7 +328,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = PerfectRuns.formPerfectRuns(self.matches,
MatchRecord.sortInXorderAP,
MatchRecord.sortInYorderAP,
-@@ -378,22 +375,22 @@
+@@ -378,22 +375,22 @@ class AtacDriver(AtacFile.AtacFile):
# end if
step += 1
@@ -273,7 +359,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = PerfectRuns.formPerfectRuns(self.matches,
MatchRecord.sortInYorderAP,
MatchRecord.sortInXorderAP, maxdiff, 'r')
-@@ -405,16 +402,16 @@
+@@ -405,16 +402,16 @@ class AtacDriver(AtacFile.AtacFile):
# This is a box recovery step.
step += 1
@@ -296,7 +382,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = boxRecovery( self.matches, rawfile, outprefix)
self.matches = tempdata
outprefix += '.br'
-@@ -422,12 +419,12 @@
+@@ -422,12 +419,12 @@ class AtacDriver(AtacFile.AtacFile):
# end if
step += 1
@@ -314,7 +400,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = PerfectRuns.formPerfectRuns(self.matches,
MatchRecord.sortInXorderAP,
MatchRecord.sortInYorderAP, maxdiff, 'r')
-@@ -436,11 +433,11 @@
+@@ -436,11 +433,11 @@ class AtacDriver(AtacFile.AtacFile):
self.checkpoint(outprefix)
step += 1
@@ -330,7 +416,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = MyFile.myfile()
squeezeIntraRunGaps.mainLoop(
self.matches,
-@@ -454,39 +451,39 @@
+@@ -454,39 +451,39 @@ class AtacDriver(AtacFile.AtacFile):
self.checkpoint(outprefix)
step += 1
@@ -385,7 +471,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
self.globals['fillIntraRunGapsMaxGap'] = 100000
fillIntraRunGapsErate = float(self.globals['fillIntraRunGapsErate'])
fillIntraRunGapsMaxGap = int(self.globals['fillIntraRunGapsMaxGap'])
-@@ -499,11 +496,11 @@
+@@ -499,11 +496,11 @@ class AtacDriver(AtacFile.AtacFile):
self.checkpoint(outprefix)
step += 1
@@ -401,7 +487,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tempdata = MyFile.myfile()
TrimMatchOverlaps.trimMatchOverlapsInBoth(self.matches,tempdata,'u')
self.matches = tempdata
-@@ -522,7 +519,7 @@
+@@ -522,7 +519,7 @@ class localExecutable :
self.name = name
def run(self,argline,inpfile,outfile):
cmd = "%s %s %s %s" % (self.name,argline,inpfile,outfile)
@@ -410,7 +496,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
iret = os.system(cmd)
assert(iret == 0)
-@@ -533,14 +530,14 @@
+@@ -533,14 +530,14 @@ def main(runName):
obj = AtacDriver(runName)
t1 = time.time()
@@ -430,7 +516,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
assemblyId1 = obj.globals['assemblyId1']
assemblyId2 = obj.globals['assemblyId2']
-@@ -560,33 +557,33 @@
+@@ -560,33 +557,33 @@ def main(runName):
assert(os.path.exists(assemblyFile1+".idxStore"))
assert(os.path.exists(assemblyFile2+".idxStore"))
@@ -474,7 +560,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
obj.checkpoint(runName + ".chained.atac")
-@@ -594,7 +591,7 @@
+@@ -594,7 +591,7 @@ def main(runName):
if __name__ == '__main__':
if (len(sys.argv) == 1):
@@ -483,6 +569,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
sys.exit(1)
if (sys.argv[1] == "justtestingifitworks"):
sys.exit(0)
+diff --git a/atac-driver/chainer/python/AtacFile.py b/atac-driver/chainer/python/AtacFile.py
+index 583bd07..723545b 100755
--- a/atac-driver/chainer/python/AtacFile.py
+++ b/atac-driver/chainer/python/AtacFile.py
@@ -1,4 +1,4 @@
@@ -491,7 +579,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# Looking in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
# export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
-@@ -58,15 +58,15 @@
+@@ -58,15 +58,15 @@ class AtacFile:
elif(linetype == 'M'):
fields = line.split()
if(fields[1] == 'r'):
@@ -511,7 +599,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
assert(0)
# end if
# end def
-@@ -75,19 +75,19 @@
+@@ -75,19 +75,19 @@ class AtacFile:
self.globals["modificationDate"] = time.asctime()
fp = open(filename,"w")
for line in self.metacommands:
@@ -535,9 +623,11 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
self.matches.seek(0)
self.runs.seek(0)
for line in self.runs:
+diff --git a/atac-driver/chainer/python/IdxStore.py b/atac-driver/chainer/python/IdxStore.py
+index 8c5b251..aa34e21 100644
--- a/atac-driver/chainer/python/IdxStore.py
+++ b/atac-driver/chainer/python/IdxStore.py
-@@ -12,7 +12,7 @@
+@@ -12,7 +12,7 @@ def createIndexedFasta( prefix, nickname):
# This is a class method (as opposed to an object method).
# This method creates an indexed FASTA file on disk.
@@ -546,7 +636,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
the_uid = None
defline = None
-@@ -20,8 +20,8 @@
+@@ -20,8 +20,8 @@ def createIndexedFasta( prefix, nickname):
linenumber = 0
cur_offset = 0
@@ -557,7 +647,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
for line in FASTA:
linenumber += 1
line = line.strip()
-@@ -45,7 +45,7 @@
+@@ -45,7 +45,7 @@ def createIndexedFasta( prefix, nickname):
cur_offset += seq_length + 1;
# remember the UNIX newline inserted by print.
@@ -566,7 +656,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
# Now process the new data.
-@@ -73,7 +73,7 @@
+@@ -73,7 +73,7 @@ def createIndexedFasta( prefix, nickname):
cur_offset += seq_length + 1;
# remember the UNIX newline inserted by print.
@@ -575,7 +665,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
FASTA.close()
-@@ -107,7 +107,7 @@
+@@ -107,7 +107,7 @@ class IdxStore:
self.iid2seq_offset = []
filename = prefix + ".idxStore"
@@ -584,7 +674,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
the_iid=0;
while 1:
-@@ -129,7 +129,7 @@
+@@ -129,7 +129,7 @@ class IdxStore:
the_iid += 1;
filename = prefix
@@ -593,7 +683,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
return
-@@ -196,7 +196,7 @@
+@@ -196,7 +196,7 @@ def convertIndexToUID ( x_prefix, y_prefix, inpfile, outname, assemblyId1, asse
FM = MatchRecord.MatchRecord(line)
FM.x_scaf_uid = the_x_uid[FM.x_scaf_uid]
FM.y_scaf_uid = the_y_uid[FM.y_scaf_uid]
@@ -602,6 +692,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
# end for
outfile.finished()
+diff --git a/atac-driver/chainer/python/MatchRecord.py b/atac-driver/chainer/python/MatchRecord.py
+index 0182323..cb3de54 100644
--- a/atac-driver/chainer/python/MatchRecord.py
+++ b/atac-driver/chainer/python/MatchRecord.py
@@ -1,4 +1,4 @@
@@ -610,7 +702,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
import sys, os, copy, string, tempfile
-@@ -153,7 +153,7 @@
+@@ -153,7 +153,7 @@ def convertBrianRecordFormat( inpfile, outfile, assemblyId1, assemblyId2):
for line in inpfile:
lineCount += 1
if(lineCount % 100000 == 0):
@@ -619,7 +711,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
FB = line.split()
orientation = (FB[0][1:]=='f')
FM = MatchRecord("M x . . . 0 0 0 . 0 0 0 0\n")
-@@ -169,9 +169,9 @@
+@@ -169,9 +169,9 @@ def convertBrianRecordFormat( inpfile, outfile, assemblyId1, assemblyId2):
FM.identifier = ""
FM.extend = {}
#FM.mismatches = 0
@@ -631,6 +723,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
outfile.seek(0)
return
# end def
+diff --git a/atac-driver/chainer/python/MyFile.py b/atac-driver/chainer/python/MyFile.py
+index 680a83a..22321d4 100755
--- a/atac-driver/chainer/python/MyFile.py
+++ b/atac-driver/chainer/python/MyFile.py
@@ -1,22 +1,32 @@
@@ -677,7 +771,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
class ListLikeFileIter:
# See http://www.python.org/peps/pep-0234.html
-@@ -27,8 +37,8 @@
+@@ -27,8 +37,8 @@ class ListLikeFileIter:
self._fileIter = iter(self._fileptr.readline,"")
def __del__(self):
self._fileptr.close()
@@ -688,7 +782,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
if line:
return line
else:
-@@ -37,7 +47,7 @@
+@@ -37,7 +47,7 @@ class ListLikeFileIter:
def __getitem__(self,ii):
# For files, the list location ii is ignored.
# line = self._fileptr.readline()
@@ -697,7 +791,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
if line:
return line
else:
-@@ -50,14 +60,14 @@
+@@ -50,14 +60,14 @@ class ListLikeFile:
def __init__(self):
#self._filename = tempfile.mktemp()
#self._fileptr = open(self._filename,"w")
@@ -714,7 +808,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
#return iter(self._fileptr)
#return ListLikeFileIter(self._filename)
return iter(self._list)
-@@ -69,34 +79,34 @@
+@@ -69,34 +79,34 @@ class ListLikeFile:
def tester():
x = ListLikeFile()
@@ -767,6 +861,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
x = None
+diff --git a/atac-driver/chainer/python/PerfectRuns.py b/atac-driver/chainer/python/PerfectRuns.py
+index dfbf416..7eddef8 100755
--- a/atac-driver/chainer/python/PerfectRuns.py
+++ b/atac-driver/chainer/python/PerfectRuns.py
@@ -1,4 +1,4 @@
@@ -775,7 +871,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# Looking in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
# export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ def createSignedEnumeration(inpfile):
srank = cvm(forwardX == forwardY, p, -p)
p += 1
FM.extend['srank'] = srank
@@ -784,7 +880,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
# end while
return outfile
-@@ -91,20 +91,20 @@
+@@ -91,20 +91,20 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
sorted_by_y = (y_ls <= y_rs)
if(not(sorted_by_x or sorted_by_y)):
@@ -814,7 +910,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# endif
if(
(left.x_scaf_uid != right.x_scaf_uid) or # check first axis id
-@@ -117,7 +117,7 @@
+@@ -117,7 +117,7 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
# end if
lastpr = pr
right.runid = "%s%d" % (runIdPrefix,runid,) # Assign the run id in the same slot as the signed rank.
@@ -823,7 +919,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
left = right
# end if
# end for
-@@ -127,22 +127,22 @@
+@@ -127,22 +127,22 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
def formPerfectRuns ( inpfile, firstSort, secondSort, maxJump, runIdPrefix ):
inpfile.seek(0)
step = 0
@@ -850,7 +946,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
step += 1
outfile = findPerfectRuns( tmpfile, maxJump, runIdPrefix)
-@@ -161,8 +161,8 @@
+@@ -161,8 +161,8 @@ def runsAsMatches(inpfile):
curF = MatchRecord.MatchRecord(line)
if ((lastF == None) or (curF.runid != lastF.runid)):
if ((lastF != None) and (firstF.x_scaf_uid != lastF.x_scaf_uid)):
@@ -861,7 +957,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
assert((lastF==None) or (firstF.x_scaf_uid == lastF.x_scaf_uid))
assert((lastF==None) or (firstF.y_scaf_uid == lastF.y_scaf_uid))
-@@ -187,7 +187,7 @@
+@@ -187,7 +187,7 @@ def runsAsMatches(inpfile):
lastF.x_length = endX - startX
lastF.y_length = endY - startY
lastF.runFill = runFill
@@ -870,7 +966,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
firstF = curF
runFill = 0
-@@ -218,14 +218,14 @@
+@@ -218,14 +218,14 @@ def runsAsMatches(inpfile):
lastF.x_length = endX - startX
lastF.y_length = endY - startY
lastF.runFill = runFill
@@ -887,6 +983,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
inpfile = open(inpname)
tempdata1 = formPerfectRuns(inpfile,
+diff --git a/atac-driver/chainer/python/TrimMatchOverlaps.py b/atac-driver/chainer/python/TrimMatchOverlaps.py
+index b90bb9f..6f9dfda 100644
--- a/atac-driver/chainer/python/TrimMatchOverlaps.py
+++ b/atac-driver/chainer/python/TrimMatchOverlaps.py
@@ -1,4 +1,4 @@
@@ -895,7 +993,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
import sys
import MyFile
-@@ -41,10 +41,10 @@
+@@ -41,10 +41,10 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
assert(py >= 0)
assert(ny >= 0)
if (not (not needs_to_share_diagonal or nx == ny)):
@@ -910,7 +1008,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
assert((hghHitPX == None or (not needs_to_share_diagonal) or nx == ny))
forward = (curF.x_orientation == curF.y_orientation)
-@@ -81,7 +81,7 @@
+@@ -81,7 +81,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
firstF.y_start = lowHitPY
firstF.x_length = hghHitPX - lowHitPX
firstF.y_length = hghHitPY - lowHitPY
@@ -919,7 +1017,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
firstF = curF
lowHitPX = lowMerPX
-@@ -108,7 +108,7 @@
+@@ -108,7 +108,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
firstF.y_start = lowHitPY
firstF.x_length = hghHitPX - lowHitPX
firstF.y_length = hghHitPY - lowHitPY
@@ -928,7 +1026,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
return
# end def
-@@ -132,7 +132,7 @@
+@@ -132,7 +132,7 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
if(line[0] == 'M'):
right = MatchRecord.MatchRecord(line)
if( right.subtype != trim_subtype):
@@ -937,7 +1035,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
continue
if( left == None or
#left.x_scaf_uid < right.x_scaf_uid):
-@@ -142,15 +142,15 @@
+@@ -142,15 +142,15 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
assert(left != None)
assert(right != None)
if(left.x_scaf_uid > right.x_scaf_uid):
@@ -959,7 +1057,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
#assert(0)
thisbgn = right.x_start
-@@ -177,16 +177,16 @@
+@@ -177,16 +177,16 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
contained += 1
right = None # remove this match
if(right != None):
@@ -981,7 +1079,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
return
def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
-@@ -208,7 +208,7 @@
+@@ -208,7 +208,7 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
if(line[0] == 'M'):
right = MatchRecord.MatchRecord(line)
if( right.subtype != trim_subtype):
@@ -990,7 +1088,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
continue
if( left == None or
#left.y_scaf_uid < right.y_scaf_uid):
-@@ -218,15 +218,15 @@
+@@ -218,15 +218,15 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
assert(left != None)
assert(right != None)
if(left.y_scaf_uid > right.y_scaf_uid):
@@ -1012,7 +1110,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
#assert(0)
thisbgn = right.y_start
-@@ -253,16 +253,16 @@
+@@ -253,16 +253,16 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
contained += 1
right = None # remove this match
if(right != None):
@@ -1034,6 +1132,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
return
+diff --git a/atac-driver/chainer/python/UniqueFilter.py b/atac-driver/chainer/python/UniqueFilter.py
+index c35ce58..27d1c0e 100755
--- a/atac-driver/chainer/python/UniqueFilter.py
+++ b/atac-driver/chainer/python/UniqueFilter.py
@@ -1,4 +1,4 @@
@@ -1042,7 +1142,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
import os, sys, time, tempfile
import MyFile
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ def xorIntervals( inpname, outname):
rghtSide = min(newstart,rghtPicket)
if rghtSide > leftPicket:
# interval has positive length
@@ -1051,7 +1151,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
leftPicket = max(newstart, min(rightPicket,newend))
rghtPicket = max(leftPicket,max(rightPicket,newend))
-@@ -35,10 +35,10 @@
+@@ -35,10 +35,10 @@ def findUniformCoverageIntervals(inpfile,outfile):
if(recordtype == "E"):
newposition = int(newposition)
newchange = int(newchange)
@@ -1064,7 +1164,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
cov += newchange;
assert(cov >= 0)
oldaxis = newaxis; oldposition = newposition;
-@@ -65,18 +65,18 @@
+@@ -65,18 +65,18 @@ def findCoverageIntervals( inpfile, outfile, processFirstAxis):
axis = fields[8]
bgn = int(fields[9])
end = bgn+int(fields[10])
@@ -1088,7 +1188,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile4.close()
os.system("rm -f " + tmpname)
outfile.seek(0)
-@@ -111,7 +111,7 @@
+@@ -111,7 +111,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
try: # StopIteration exception from either iterator gets us out
while 1:
if(iline == None):
@@ -1097,7 +1197,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
(subtype, qa, qs, ql, cov, ) = iline.split()
assert(subtype=='C')
cov= int(cov)
-@@ -123,10 +123,10 @@
+@@ -123,10 +123,10 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
qe = qs + ql
if(mline == None):
@@ -1110,7 +1210,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
mline = None
continue
FM = MatchRecord.MatchRecord(mline)
-@@ -177,8 +177,8 @@
+@@ -177,8 +177,8 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
FT.x_length = trimmedLength
FT.y_length = trimmedLength
if debug:
@@ -1121,7 +1221,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# We must insure that the match identifier is still unique.
if last_matchid == FM.matchid :
-@@ -194,7 +194,7 @@
+@@ -194,7 +194,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
else:
FT.matchid = FT.matchid + "y" + str(subcount)
@@ -1130,7 +1230,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# we need to get a new one
if(qe < me):
iline = None
-@@ -205,7 +205,7 @@
+@@ -205,7 +205,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
# If there are any left over non-match lines, then output them!
for mline in inpiter:
if(mline[0] != "M"):
@@ -1139,7 +1239,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def applyBothKeepMasks( inpfile, outfile ):
-@@ -238,7 +238,7 @@
+@@ -238,7 +238,7 @@ def applyBothKeepMasks( inpfile, outfile ):
findCoverageIntervals( inpfile, keepMaskFile, processFirstAxis)
if debug:
debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1148,7 +1248,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
MatchRecord.sortInXorderAP(tmpfile2,tmpfile3)
if debug:
-@@ -247,13 +247,13 @@
+@@ -247,13 +247,13 @@ def applyBothKeepMasks( inpfile, outfile ):
#for line in tmpfile2: print >>debugfile, line,
tmpfile3.seek(0)
debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1164,7 +1264,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# Apply the keepMask for the second axis.
# Make the sorted the keep mask intervals for the second axis.
-@@ -266,7 +266,7 @@
+@@ -266,7 +266,7 @@ def applyBothKeepMasks( inpfile, outfile ):
findCoverageIntervals( inpfile, keepMaskFile, processFirstAxis)
if debug:
debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1173,7 +1273,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
MatchRecord.sortInYorderAP(tmpfile2,tmpfile3)
-@@ -276,13 +276,13 @@
+@@ -276,13 +276,13 @@ def applyBothKeepMasks( inpfile, outfile ):
#for line in tmpfile2: print >>debugfile, line,
tmpfile3.seek(0)
debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1189,6 +1289,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def main( inpfile, outfile):
+diff --git a/atac-driver/chainer/python/dedashMatches.py b/atac-driver/chainer/python/dedashMatches.py
+index db45eed..ef73414 100755
--- a/atac-driver/chainer/python/dedashMatches.py
+++ b/atac-driver/chainer/python/dedashMatches.py
@@ -1,4 +1,4 @@
@@ -1197,7 +1299,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# dedashMatches.py /prod/IR02/synteny/mus-vs-rat/mouse_celera_R13_chr_20030210-vs-rat_celera_R1_chr_20030507-V3.atac.t20.l100.br.squeezed.filled.coalesced mus-vs-rat.out /prod/IR05/GENOMES/mouse_celera_R13_chr_20030210 /prod/IR05/GENOMES/rat_celera_R1_chr_20030507 MR13 RR1
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ def subc():
suba()
it = iter(subb,None)
for y in it:
@@ -1206,7 +1308,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def main( inpfile, outfile, xIdx, yIdx):
inpfile.seek(0)
-@@ -42,7 +42,7 @@
+@@ -42,7 +42,7 @@ def main( inpfile, outfile, xIdx, yIdx):
for line in inpfile:
lineCount += 1
if((lineCount % 10000)==0):
@@ -1215,7 +1317,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
if(line[0] == 'M'):
FM = MatchRecord.MatchRecord(line)
if(FM.subtype == 'g'):
-@@ -87,11 +87,11 @@
+@@ -87,11 +87,11 @@ def main( inpfile, outfile, xIdx, yIdx):
mismatches += 1
FM.extend['mm'] = str(mismatches)
FM.identifier = "" # BEWARE
@@ -1230,6 +1332,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def oldmain():
+diff --git a/atac-driver/chainer/python/fillIntraRunGaps.py b/atac-driver/chainer/python/fillIntraRunGaps.py
+index 68b66ae..50cb788 100644
--- a/atac-driver/chainer/python/fillIntraRunGaps.py
+++ b/atac-driver/chainer/python/fillIntraRunGaps.py
@@ -1,4 +1,4 @@
@@ -1238,7 +1342,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
import sys
import string
-@@ -9,7 +9,7 @@
+@@ -9,7 +9,7 @@ import halign
#import shelve
# True=1
@@ -1247,7 +1351,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
inter_run_gap_count = 0
-@@ -33,20 +33,20 @@
+@@ -33,20 +33,20 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
sorted_by_y = (left.y_start <= right.y_start) and \
(left.y_start+left.y_length <= right.y_start+right.y_length)
if(not(sorted_by_x or sorted_by_y)):
@@ -1277,7 +1381,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
assert((not left_forward) or (sorted_by_x and sorted_by_y))
assert((left_forward) or (not(sorted_by_x and sorted_by_y)))
-@@ -104,10 +104,10 @@
+@@ -104,10 +104,10 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
parent_y_length = y_len + 2*margin
if 0:
@@ -1292,7 +1396,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
x_seq = ""
if(x_len > 0):
-@@ -123,13 +123,13 @@
+@@ -123,13 +123,13 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
# end if
if 0:
@@ -1313,7 +1417,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
outfile.flush()
try:
-@@ -156,34 +156,34 @@
+@@ -156,34 +156,34 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
assert(bgn1 >= 0)
assert(bgn2 >= 0)
if(not(bgn1 + len1 <= parent_x_length)):
@@ -1366,7 +1470,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
continue
assert(bgn1 >= 0)
assert(bgn2 >= 0)
-@@ -218,11 +218,11 @@
+@@ -218,11 +218,11 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
#assert(bgn2+len2 <= parent_y_length)
if 0:
@@ -1383,7 +1487,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
halign.halignStart(x_seq[bgn1:bgn1+len1], y_seq[bgn2:bgn2+len2])
outfile.flush()
-@@ -246,20 +246,20 @@
+@@ -246,20 +246,20 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
mismatches += 1
FM.extend['mm'] = str(mismatches)
#FM.identifier = "" # BEWARE
@@ -1414,7 +1518,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
else:
-@@ -291,7 +291,7 @@
+@@ -291,7 +291,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx, maxgap, erate):
for line in inpfileIter:
if(line[0] == 'M'):
left = MatchRecord.MatchRecord(line)
@@ -1423,7 +1527,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
countLines += 1
break;
-@@ -311,7 +311,7 @@
+@@ -311,7 +311,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx, maxgap, erate):
inter_run_gap_count_total += inter_run_gap_count
# Output the record which was possibly trimmed.
@@ -1432,7 +1536,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
countLines += 1
left = right
# end if
-@@ -330,9 +330,9 @@
+@@ -330,9 +330,9 @@ def main( inpname, outname):
assemblyFilePrefix1 = obj.globals['assemblyFilePrefix1']
assemblyFilePrefix2 = obj.globals['assemblyFilePrefix2']
@@ -1444,6 +1548,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
obj.globals['fillIntraRunGapsMaxGap'] = 100000
fillIntraRunGapsErate = float(obj.globals['fillIntraRunGapsErate'])
fillIntraRunGapsMaxGap = int(obj.globals['fillIntraRunGapsMaxGap'])
+diff --git a/atac-driver/chainer/python/mkstats.py b/atac-driver/chainer/python/mkstats.py
+index daf7cc6..1798edc 100755
--- a/atac-driver/chainer/python/mkstats.py
+++ b/atac-driver/chainer/python/mkstats.py
@@ -1,4 +1,4 @@
@@ -1452,7 +1558,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# Must look in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
# export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ def main(glist):
pattern = re.compile(r"^M [gl] ")
for line in inpfile:
if(pattern.search(line)):
@@ -1461,7 +1567,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile.close()
os.system("celagram -c 7 -t 'gapped match lengths' %s" % (tmpname,))
-@@ -30,7 +30,7 @@
+@@ -30,7 +30,7 @@ def main(glist):
pattern = re.compile(r"^M x ")
for line in inpfile:
if(pattern.search(line)):
@@ -1470,7 +1576,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile.close()
os.system("celagram -c 7 -t 'exact match lengths' %s" % (tmpname,))
-@@ -41,7 +41,7 @@
+@@ -41,7 +41,7 @@ def main(glist):
pattern = re.compile(r"^M u ")
for line in inpfile:
if(pattern.search(line)):
@@ -1479,7 +1585,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile.close()
os.system("celagram -c 7 -t 'ungapped match lengths' %s" % (tmpname,))
-@@ -52,7 +52,7 @@
+@@ -52,7 +52,7 @@ def main(glist):
pattern = re.compile(r"^M [xu] ")
for line in inpfile:
if(pattern.search(line)):
@@ -1488,7 +1594,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile.close()
os.system("celagram -c 7 -t '%s ungapped match lengths' %s" % (inpname,tmpname))
-@@ -63,7 +63,7 @@
+@@ -63,7 +63,7 @@ def main(glist):
pattern = re.compile(r"^M\s*r\s")
for line in inpfile:
if(pattern.search(line)):
@@ -1497,6 +1603,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
tmpfile.close()
os.system("celagram -c 7 -t '%s spans in 1st assembly' %s" % (inpname,tmpname))
os.system("celagram -c 11 -t '%s spans in 2nd assembly' %s" % (inpname,tmpname))
+diff --git a/atac-driver/chainer/python/squeezeIntraRunGaps.py b/atac-driver/chainer/python/squeezeIntraRunGaps.py
+index 81719c2..9287ac9 100644
--- a/atac-driver/chainer/python/squeezeIntraRunGaps.py
+++ b/atac-driver/chainer/python/squeezeIntraRunGaps.py
@@ -1,4 +1,4 @@
@@ -1505,7 +1613,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
import sys
import string
-@@ -9,7 +9,7 @@
+@@ -9,7 +9,7 @@ import IdxStore
#import shelve
# True=1
@@ -1514,7 +1622,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
theIsolatedSNPcount = 0
-@@ -52,30 +52,30 @@
+@@ -52,30 +52,30 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
sorted_by_y = (left.y_start <= right.y_start)
dovetail_in_y = sorted_by_y and (left.y_start+left.y_length <= right.y_start+right.y_length)
if(not(sorted_by_x or sorted_by_y)):
@@ -1560,7 +1668,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
assert((not left_forward) or (sorted_by_x and sorted_by_y))
assert((left_forward) or (not(sorted_by_x and sorted_by_y)))
-@@ -157,19 +157,19 @@
+@@ -157,19 +157,19 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
sys.stderr.write("x string lengths mismatch asked=%d got=%d\n" % (x_len,len(x_substring)))
sys.stderr.write("x_uid= %s x_pos= %d x_len= %d y_uid= %s y_pos= %d y_len= %d\n" %
(left.x_scaf_uid,x_pos,x_len,left.y_scaf_uid,y_pos,y_len))
@@ -1588,7 +1696,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
assert(x_len < 0 or x_len == len(x_substring))
-@@ -357,7 +357,7 @@
+@@ -357,7 +357,7 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
# end if
# end if
# outfile.write(str(left_fill))
@@ -1597,7 +1705,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
if(rp>0):
right_fill = right.copy()
-@@ -386,7 +386,7 @@
+@@ -386,7 +386,7 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
# end if
# end if
#outfile.write(str(right_fill))
@@ -1606,7 +1714,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# end if
if(0): # Start gap composition diagnostics.
-@@ -447,7 +447,7 @@
+@@ -447,7 +447,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx):
if(line[0] == 'M'):
left = MatchRecord.MatchRecord(line)
# outfile.write(str(left))
@@ -1615,7 +1723,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
countLines += 1
break;
-@@ -470,7 +470,7 @@
+@@ -470,7 +470,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx):
# Output the record which was possibly trimmed.
#outfile.write(str(right))
@@ -1624,6 +1732,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
countLines += 1
left = right
# end if
+diff --git a/atac-driver/config.py b/atac-driver/config.py
+index 9f9bea4..2f9a059 100644
--- a/atac-driver/config.py
+++ b/atac-driver/config.py
@@ -1,11 +1,11 @@
@@ -1640,9 +1750,11 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
# flags = ['-I' + ,
# '-I' + sysconfig.get_python_inc(plat_specific=True)]
+diff --git a/configure.sh b/configure.sh
+index 17b19cb..26ff7cc 100755
--- a/configure.sh
+++ b/configure.sh
-@@ -80,14 +80,14 @@
+@@ -80,14 +80,14 @@ fi
# used by atac-driver/chainer only.
#
@@ -1660,57 +1772,3 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
if [ -z "$CFLAGS_PYTHON" -o ! -d "$CFLAGS_PYTHON" ] ; then
echo "WARNING: Python development environment not found."
---- a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
-+++ b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
-@@ -227,8 +227,17 @@
- };
-
-
-+static struct PyModuleDef cModMethods =
-+{
-+ PyModuleDef_HEAD_INIT,
-+ "localAlignerInterface", /* name of module */
-+ "", /* module documentation, may be NULL */
-+ -1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
-+ registration_table
-+};
-+
- extern "C"
--void initlocalAlignerInterface() {
-- Py_InitModule("localAlignerInterface", registration_table);
-+void PyInit_localAlignerInterface() {
-+ PyModule_Create(&cModMethods);
- }
-
---- a/atac-driver/chainer/halign/halignmodule.C
-+++ b/atac-driver/chainer/halign/halignmodule.C
-@@ -54,7 +54,16 @@
- {NULL, NULL, 0, NULL}
- };
-
-+static struct PyModuleDef cModMethods =
-+{
-+ PyModuleDef_HEAD_INIT,
-+ "halign", /* name of module */
-+ "", /* module documentation, may be NULL */
-+ -1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
-+ registration_table
-+};
-+
- extern "C"
--void inithalign(void) {
-- Py_InitModule("halign", registration_table);
-+void PyInit_halign(void) {
-+ PyModule_Create(&cModMethods);
- }
---- a/atac-driver/atac.pl
-+++ b/atac-driver/atac.pl
-@@ -732,7 +732,7 @@
- #
- $ENV{'PYTHONPATH'} = "$LIBdir";
-
-- if (runCommand("python $chainer $ATACdir/work/$matches.matches.extended")) {
-+ if (runCommand("python3 $chainer $ATACdir/work/$matches.matches.extended")) {
- print STDERR "PYTHONPATH=$ENV{'PYTHONPATH'}\n";
- die "Chainer failed.\n";
- }
=====================================
debian/patches/allow-freebsd-build.patch
=====================================
@@ -1,17 +1,26 @@
-Description: Try to fix building on kFreeBSD
- Upstream's build system fails to detect GNU/kFreeBSD because its
- uname output is unique. This patch sets its uname to match the
- regular FreeBSD build parameters. It also sets the target build
- directory to always be "installdir" (rather than uname-arch). We
- only build for one architecture at a time, anyway, and this way,
- we don't have to figure out which system we're building on
- and mangle the uname string depending on whether we're Linux or kFreeBSD.
-Author: Afif Elghraoui <afif at ghraoui.name>
+From: Afif Elghraoui <afif at ghraoui.name>
+Date: Sat, 2 Jan 2016 16:34:57 -0800
+Subject: Try to fix building on kFreeBSD
+
Forwarded: not-needed
Last-Update: 2016-01-02
---- kmer-tools.orig/configure.sh
-+++ kmer-tools/configure.sh
-@@ -43,7 +43,7 @@
+
+Upstream's build system fails to detect GNU/kFreeBSD because its
+uname output is unique. This patch sets its uname to match the
+regular FreeBSD build parameters. It also sets the target build
+directory to always be "installdir" (rather than uname-arch). We
+only build for one architecture at a time, anyway, and this way,
+we don't have to figure out which system we're building on
+and mangle the uname string depending on whether we're Linux or kFreeBSD.
+---
+ configure.sh | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/configure.sh b/configure.sh
+index f1a12a4..fe36882 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -43,7 +43,7 @@ if [ "x$target" = "x" ] ; then
target="Darwin-amd64$opts"
fi
;;
@@ -20,7 +29,7 @@ Last-Update: 2016-01-02
target="FreeBSD-i386$opts"
if [ `uname -m` = "amd64" ] ; then
target="FreeBSD-amd64$opts"
-@@ -137,7 +137,7 @@
+@@ -137,7 +137,7 @@ CXXLDFLAGS := -m64
CXXLIBS :=
LDFLAGS_PYTHON := -bundle -framework CoreFoundation -framework Python -dynamic
ARFLAGS := ruvs
@@ -29,7 +38,7 @@ Last-Update: 2016-01-02
EOF
;;
Darwin-i386-debug|Darwin-amd64-debug)
-@@ -157,7 +157,7 @@
+@@ -157,7 +157,7 @@ CXXLDFLAGS := -m64
CXXLIBS :=
LDFLAGS_PYTHON := -bundle -framework CoreFoundation -framework Python -dynamic
ARFLAGS := ruvs
@@ -38,7 +47,7 @@ Last-Update: 2016-01-02
EOF
;;
FreeBSD-amd64)
-@@ -175,7 +175,7 @@
+@@ -175,7 +175,7 @@ CXXFLAGS_COMPILE := -O3 -fPIC -pthread -D_REENTRANT -Wall -Wno-char-subscripts
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -lthr
ARFLAGS := ruvs
@@ -47,7 +56,7 @@ Last-Update: 2016-01-02
EOF
;;
FreeBSD-amd64-debug)
-@@ -193,7 +193,7 @@
+@@ -193,7 +193,7 @@ CXXFLAGS_COMPILE := -g -pthread -D_REENTRANT -fPIC -Wall -Wno-char-subscripts -
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -lthr
ARFLAGS := ruvs
@@ -56,7 +65,7 @@ Last-Update: 2016-01-02
EOF
;;
FreeBSD-amd64-profile)
-@@ -211,7 +211,7 @@
+@@ -211,7 +211,7 @@ CXXFLAGS_COMPILE := -pg -O3 -pthread -D_REENTRANT -fPIC -Wall -Wno-char-subscri
CXXLDFLAGS := -pg -L/usr/local/lib
CXXLIBS := -pthread -lthr
ARFLAGS := ruvs
@@ -65,7 +74,7 @@ Last-Update: 2016-01-02
EOF
;;
Linux-i686)
-@@ -229,7 +229,7 @@
+@@ -229,7 +229,7 @@ CXXFLAGS_COMPILE := -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -ldl
ARFLAGS := ruvs
@@ -74,7 +83,7 @@ Last-Update: 2016-01-02
EOF
;;
Linux-amd64)
-@@ -247,7 +247,7 @@
+@@ -247,7 +247,7 @@ CXXFLAGS_COMPILE := -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessa
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -ldl
ARFLAGS := ruvs
@@ -83,7 +92,7 @@ Last-Update: 2016-01-02
EOF
;;
Linux-amd64-debug)
-@@ -265,7 +265,7 @@
+@@ -265,7 +265,7 @@ CXXFLAGS_COMPILE := -m64 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -ldl
ARFLAGS := ruvs
@@ -92,7 +101,7 @@ Last-Update: 2016-01-02
EOF
;;
Linux-amd64-profile)
-@@ -283,7 +283,7 @@
+@@ -283,7 +283,7 @@ CXXFLAGS_COMPILE := -pg -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fm
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -ldl
ARFLAGS := ruvs
@@ -101,7 +110,7 @@ Last-Update: 2016-01-02
EOF
;;
Linux-ia64)
-@@ -301,7 +301,7 @@
+@@ -301,7 +301,7 @@ CXXFLAGS_COMPILE := -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessa
CXXLDFLAGS := -L/usr/local/lib
CXXLIBS := -pthread -ldl
ARFLAGS := ruvs
@@ -110,7 +119,7 @@ Last-Update: 2016-01-02
EOF
;;
-@@ -331,7 +331,7 @@
+@@ -331,7 +331,7 @@ CXXFLAGS_COMPILE := -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3
CXXLDFLAGS :=
CXXLIBS := -lpthread -lrt
ARFLAGS := ruv
=====================================
debian/patches/atac-helper-script-paths.patch
=====================================
@@ -1,13 +1,22 @@
-Description: Adjust paths for helper scripts to be found
- ATAC uses some generically named scripts (like "makeplots") that
- can't sensibly be placed in /usr/bin. We put them instead in
- /usr/lib/atac and adjust the driver script to be able to find them
- there.
-Author: Afif Elghraoui <afif at debian.org>
+From: Afif Elghraoui <afif at debian.org>
+Date: Sat, 3 Dec 2016 16:27:07 -0800
+Subject: Adjust paths for helper scripts to be found
+
Forwarded: not-needed
Last-Update: 2016-11-30
---- kmer-tools.orig/atac-driver/atac.pl
-+++ kmer-tools/atac-driver/atac.pl
+
+ATAC uses some generically named scripts (like "makeplots") that
+can't sensibly be placed in /usr/bin. We put them instead in
+/usr/lib/atac and adjust the driver script to be able to find them
+there.
+---
+ atac-driver/atac.pl | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/atac-driver/atac.pl b/atac-driver/atac.pl
+index 7386fe3..4acc7a4 100755
+--- a/atac-driver/atac.pl
++++ b/atac-driver/atac.pl
@@ -20,6 +20,7 @@
use strict;
@@ -16,7 +25,7 @@ Last-Update: 2016-11-30
my $id1 = undef;
my $seq1 = undef;
-@@ -30,8 +31,8 @@
+@@ -30,8 +31,8 @@ my $ATACdir = undef;
my $GENOMEdir = "default"; # Location of genome assemblies
my $MERYLdir = "default"; # Location of genome mercount databases
@@ -27,7 +36,7 @@ Last-Update: 2016-11-30
my $mersize = 20; # the mer size
my $minfill = 20; # the mimimum fill for a reported match.
-@@ -56,9 +57,9 @@
+@@ -56,9 +57,9 @@ my $merylOnly = 0;
# Check that we have everything we need to run
#
=====================================
debian/patches/atac-readme.patch
=====================================
@@ -1,17 +1,26 @@
-Description: Fix typo and adjust script name
- The debian package uses the executable "atac" rather than "atac.pl".
-Author: Afif Elghraoui <afif at debian.org>
+From: Afif Elghraoui <afif at debian.org>
+Date: Sat, 3 Dec 2016 16:27:07 -0800
+Subject: Fix typo and adjust script name
+
Forwarded: no
Last-Update: 2016-11-03
---- kmer-tools.orig/README.atac
-+++ kmer-tools/README.atac
+
+The debian package uses the executable "atac" rather than "atac.pl".
+---
+ README.atac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/README.atac b/README.atac
+index 0156bfa..a7456e9 100644
+--- a/README.atac
++++ b/README.atac
@@ -1,4 +1,4 @@
-atac - assembly-to-assembly comparasion, comparative mapping between
+atac - assembly-to-assembly comparison, comparative mapping between
two genome assemblies (same species), or between two different
genomes (cross species).
-@@ -44,7 +44,7 @@
+@@ -44,7 +44,7 @@ II. Command line usage
A simple invocation:
=====================================
debian/patches/drop_distutils
=====================================
@@ -1,11 +1,18 @@
-From: Michael R. Crusoe <crusoe at debian.org>
+From: "Michael R. Crusoe" <crusoe at debian.org>
+Date: Tue, 10 Sep 2024 10:20:51 +0200
Subject: Replace distutils.sysconfig with the stdlib sysconfig
sysconfig has been available since Python 3.2
https://docs.python.org/3/library/sysconfig.html#module-sysconfig
+---
+ atac-driver/config.py | 4 ++--
+ configure.sh | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
---- kmer.orig/atac-driver/config.py
-+++ kmer/atac-driver/config.py
+diff --git a/atac-driver/config.py b/atac-driver/config.py
+index 2f9a059..567d6f5 100644
+--- a/atac-driver/config.py
++++ b/atac-driver/config.py
@@ -3,9 +3,9 @@
import sys
import os
@@ -18,9 +25,11 @@ https://docs.python.org/3/library/sysconfig.html#module-sysconfig
# flags = ['-I' + ,
# '-I' + sysconfig.get_python_inc(plat_specific=True)]
---- kmer.orig/configure.sh
-+++ kmer/configure.sh
-@@ -87,7 +87,7 @@
+diff --git a/configure.sh b/configure.sh
+index 26ff7cc..f980cbd 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -87,7 +87,7 @@ if [ ! -x $PYTHON ] ; then
WITHOUT_ATAC="atac-driver/ seatac/"
else
echo "Python executable found in '$PYTHON'"
=====================================
debian/patches/fix_wrong_evaluation_order.patch
=====================================
@@ -1,11 +1,19 @@
-Author: Liubov Chuprikova <chuprikovalv at gmail.com>
-Last-Update: Mon, 27 August 2018 11:24:36 +0200
-Description: Fix a piece of code that has unpredictable results
+From: Liubov Chuprikova <chuprikovalv at gmail.com>
+Date: Mon, 27 Aug 2018 12:03:00 +0200
+Subject: Fix a piece of code that has unpredictable results
+
+Last-Update: 2018-08-27
Bug-Debian: https://bugs.debian.org/906980
+Forwarded: https://sourceforge.net/p/kmer/bugs/33/
+---
+ atac-driver/libatac/atacMatchList.C | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+diff --git a/atac-driver/libatac/atacMatchList.C b/atac-driver/libatac/atacMatchList.C
+index 146d2d0..6e30b72 100644
--- a/atac-driver/libatac/atacMatchList.C
+++ b/atac-driver/libatac/atacMatchList.C
-@@ -47,5 +47,6 @@
+@@ -47,5 +47,6 @@ atacMatchList::add(atacMatch &m) {
memcpy(&_matches[_matchesLen], &m, sizeof(atacMatch));
=====================================
debian/patches/linux-cflags.patch
=====================================
@@ -1,11 +1,19 @@
-Description: Use the same compile flags in all Linux builds, and include -fPIC
- atac .so were built without -fPIC on !amd64/ia64.
-Author: Adrian Bunk <bunk at debian.org>
+From: Adrian Bunk <bunk at debian.org>
+Date: Thu, 23 Aug 2018 08:31:32 +0200
+Subject: Use the same compile flags in all Linux builds, and include -fPIC
+
Bug-Debian: https://bugs.debian.org/907007
-Last-Update: Thu, 23 Aug 2018 05:16:16 +0300
+Last-Update: 2018-08-23
+
+atac .so were built without -fPIC on !amd64/ia64.
+---
+ configure.sh | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
---- kmer-0~20150903+r2013.orig/configure.sh
-+++ kmer-0~20150903+r2013/configure.sh
+diff --git a/configure.sh b/configure.sh
+index fe36882..17b19cb 100755
+--- a/configure.sh
++++ b/configure.sh
@@ -57,12 +57,12 @@ if [ "x$target" = "x" ] ; then
;;
Linux)
=====================================
debian/patches/spelling.patch
=====================================
@@ -1,21 +1,35 @@
-Description: Fix spelling
-Author: Andreas Tille <tille at debian.org>, Antoni Villalonga <antoni at friki.cat>
-Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
+From: Andreas Tille <tille at debian.org>
+From: Antoni Villalonga <antoni at friki.cat>
+Date: Sun, 5 Aug 2018 11:01:22 +0200
+Subject: Fix spelling
---- a/libutil/bitPackedFile.C
-+++ b/libutil/bitPackedFile.C
-@@ -157,7 +157,7 @@
- } else if ((at == uint64Swap(ac)) && (bt == uint64Swap(bc))) {
- endianess_flipped = true;
- } else {
-- fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianess check, not opened.\n", _name);
-+ fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianness check, not opened.\n", _name);
- exit(1);
- }
- } else {
+Last-Update: 2020-04-19
+---
+ leaff/leaff.C | 2 +-
+ libkmer/driver-existDB.C | 2 +-
+ libutil/bitPackedFile.C | 2 +-
+ libutil/palloc.c | 2 +-
+ sim4dbutils/parseSNP.C | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/leaff/leaff.C b/leaff/leaff.C
+index 592a58e..eb7f36b 100644
+--- a/leaff/leaff.C
++++ b/leaff/leaff.C
+@@ -126,7 +126,7 @@ helpAnalysis(char *program) {
+ fprintf(stderr, " --partitionmap [ n[gmk]bp | n ] a.fasta\n");
+ fprintf(stderr, " Partition the sequences into roughly equal size pieces of\n");
+ fprintf(stderr, " size nbp, nkbp, nmbp or ngbp; or into n roughly equal sized\n");
+- fprintf(stderr, " parititions. Sequences larger that the partition size are\n");
++ fprintf(stderr, " partitions. Sequences larger that the partition size are\n");
+ fprintf(stderr, " in a partition by themself. --partitionmap writes a\n");
+ fprintf(stderr, " description of the partition to stdout; --partiton creates\n");
+ fprintf(stderr, " a fasta file 'prefix-###.fasta' for each partition.\n");
+diff --git a/libkmer/driver-existDB.C b/libkmer/driver-existDB.C
+index 1ad7230..4b87efa 100644
--- a/libkmer/driver-existDB.C
+++ b/libkmer/driver-existDB.C
-@@ -178,7 +178,7 @@
+@@ -178,7 +178,7 @@ const char *usage =
"\n"
" -testexhaustive some.fasta some.meryl\n"
" -- Build an existDB table from some.fasta, check _EVERY_ mer\n"
@@ -24,9 +38,24 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
" not in the meryl database. Assumes 'some.meryl' is the\n"
" mercount of some.fasta.\n"
"\n";
+diff --git a/libutil/bitPackedFile.C b/libutil/bitPackedFile.C
+index 278cc56..c4da1a7 100644
+--- a/libutil/bitPackedFile.C
++++ b/libutil/bitPackedFile.C
+@@ -157,7 +157,7 @@ bitPackedFile::bitPackedFile(char const *name, uint64 offset, bool forceTruncate
+ } else if ((at == uint64Swap(ac)) && (bt == uint64Swap(bc))) {
+ endianess_flipped = true;
+ } else {
+- fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianess check, not opened.\n", _name);
++ fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianness check, not opened.\n", _name);
+ exit(1);
+ }
+ } else {
+diff --git a/libutil/palloc.c b/libutil/palloc.c
+index db848ad..f4cdb75 100644
--- a/libutil/palloc.c
+++ b/libutil/palloc.c
-@@ -133,7 +133,7 @@
+@@ -133,7 +133,7 @@ palloc2(size_t size, void *handle) {
root->_cn = root->_nl;
if (root->_dbg > 0)
@@ -35,9 +64,11 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
root->_cn->_cp = 0;
root->_cn->_dt = (char *)really_allocate(root->_bs);
+diff --git a/sim4dbutils/parseSNP.C b/sim4dbutils/parseSNP.C
+index f1c61b6..50c2eac 100644
--- a/sim4dbutils/parseSNP.C
+++ b/sim4dbutils/parseSNP.C
-@@ -491,7 +491,7 @@
+@@ -491,7 +491,7 @@ main(int argc, char **argv) {
fprintf(stderr, " default, and if posTag is not found.\n");
fprintf(stderr, "\n");
fprintf(stderr, " TAGS: The number immediately after the first\n");
@@ -46,14 +77,3 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
fprintf(stderr, "\n");
fprintf(stderr, " -o offset An additive offset to the SNP position.\n");
fprintf(stderr, " The default is 0.\n");
---- a/leaff/leaff.C
-+++ b/leaff/leaff.C
-@@ -126,7 +126,7 @@
- fprintf(stderr, " --partitionmap [ n[gmk]bp | n ] a.fasta\n");
- fprintf(stderr, " Partition the sequences into roughly equal size pieces of\n");
- fprintf(stderr, " size nbp, nkbp, nmbp or ngbp; or into n roughly equal sized\n");
-- fprintf(stderr, " parititions. Sequences larger that the partition size are\n");
-+ fprintf(stderr, " partitions. Sequences larger that the partition size are\n");
- fprintf(stderr, " in a partition by themself. --partitionmap writes a\n");
- fprintf(stderr, " description of the partition to stdout; --partiton creates\n");
- fprintf(stderr, " a fasta file 'prefix-###.fasta' for each partition.\n");
=====================================
debian/tests/atac-unit-test
=====================================
@@ -4,24 +4,25 @@ pkg="atac"
if [ "$AUTOPKGTEST_TMP" = "" ]; then
AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
+ # shellcheck disable=SC2064
trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
fi
-ORIGDIR=`pwd`
-cd $AUTOPKGTEST_TMP
+ORIGDIR=$(pwd)
+cd "$AUTOPKGTEST_TMP"
if [ -e /usr/share/doc/kmer-examples/test_data.tar.gz ] ; then
TARFILE=/usr/share/doc/kmer-examples/test_data.tar.gz
else
- if [ -e ${ORIGDIR}/debian/tests/test-data/test_data.tar.gz ] ; then
+ if [ -e "${ORIGDIR}/debian/tests/test-data/test_data.tar.gz" ] ; then
TARFILE=${ORIGDIR}/debian/tests/test-data/test_data.tar.gz
else
echo "Please install package kmer-examples to run this script"
exit 1
fi
fi
-tar -xaf $TARFILE
+tar -xaf "$TARFILE"
# Run atac:
atac -meryldir meryldir -dir results -id1 Lepr -seq1 GCF_000195855.1_ASM19585v1_genomic.fna \
-id2 Tuber -seq2 GCF_000195955.2_ASM19595v2_genomic.fna
-echo "RESULTS: OK\n"
+printf "RESULTS: OK\n"
=====================================
debian/tests/sim4db-unit-test
=====================================
@@ -4,30 +4,31 @@ pkg="sim4db"
if [ "$AUTOPKGTEST_TMP" = "" ]; then
AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
+ # shellcheck disable=SC2064
trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
fi
-ORIGDIR=`pwd`
-cd $AUTOPKGTEST_TMP
+ORIGDIR=$(pwd)
+cd "$AUTOPKGTEST_TMP"
if [ -e /usr/share/doc/kmer-examples/test_data.tar.gz ] ; then
TARFILE=/usr/share/doc/kmer-examples/test_data.tar.gz
else
- if [ -e ${ORIGDIR}/debian/tests/test-data/test_data.tar.gz ] ; then
+ if [ -e "${ORIGDIR}/debian/tests/test-data/test_data.tar.gz" ] ; then
TARFILE=${ORIGDIR}/debian/tests/test-data/test_data.tar.gz
else
echo "Please install package kmer-examples to run this script"
exit 1
fi
fi
-tar -xaf $TARFILE
+tar -xaf "$TARFILE"
# Run sim4db
-echo "Testing sim4 for intra-species alignment...\n"
+printf "Testing sim4 for intra-species alignment...\n"
sim4db -genomic GCF_000195955.2_ASM19595v2_genomic.fna -cdna ESTs.fasta \
-output results.sim4db
[ -s results.sim4db ]
-echo "Testing sim4cc for inter-species alignment...\n"
+printf "Testing sim4cc for inter-species alignment...\n"
sim4db -genomic GCF_000195855.1_ASM19585v1_genomic.fna -cdna ESTs.fasta \
-interspecies -gff3 -output results.gff3
[ -s results.gff3 ]
-echo "RESULTS: OK\n"
+printf "RESULTS: OK\n"
View it on GitLab: https://salsa.debian.org/med-team/kmer/-/compare/5afd1e89428a974b53450d3dd4406d0638b39f72...e4472af729546e503c96ee5203faddf5df7cdfdd
--
View it on GitLab: https://salsa.debian.org/med-team/kmer/-/compare/5afd1e89428a974b53450d3dd4406d0638b39f72...e4472af729546e503c96ee5203faddf5df7cdfdd
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20250812/5b7696b2/attachment-0001.htm>
More information about the debian-med-commit
mailing list