Browse code

bam_tally has reworked memory management to avoid memory "leaks" that seem to happen on our cluster

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/gmapR@89935 bc3139a8-67e5-0310-9ffc-ced21a209358

Michael Lawrence authored on 05/05/2014 21:02:45
Showing 15 changed files

... ...
@@ -10,7 +10,7 @@ Description: GSNAP and GMAP are a pair of tools to align short-read
10 10
         methods to work with GMAP and GSNAP from within R. In addition,
11 11
         it provides methods to tally alignment results on a
12 12
         per-nucleotide basis using the bam_tally tool.
13
-Version: 1.7.3
13
+Version: 1.7.4
14 14
 Depends: R (>= 2.15.0), methods, GenomeInfoDb (>= 1.1.3),
15 15
         GenomicRanges (>= 1.17.12)
16 16
 Imports: S4Vectors, IRanges, Rsamtools (>= 1.17.8), rtracklayer (>= 1.25.5),
... ...
@@ -218,7 +218,7 @@ normArgTRUEorFALSE <- function(x) {
218 218
     if (is.unsorted(read_pos_breaks))
219 219
       stop("'read_pos_breaks' must be sorted")
220 220
   }
221
-  ptr <- .Call(R_Bamtally_iit, bamreader@.extptr, genome_dir, db, which,
221
+  .Call(R_Bamtally_iit, bamreader@.extptr, genome_dir, db, which,
222 222
         desired_read_group,
223 223
         normArgSingleInteger(alloclength),
224 224
         normArgSingleInteger(minimum_mapq),
... ...
@@ -79,13 +79,13 @@ build_triplet = @build@
79 79
 host_triplet = @host@
80 80
 target_triplet = @target@
81 81
 subdir = .
82
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
82
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog COPYING \
83 83
 	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
84 84
 	$(top_srcdir)/configure $(am__configure_deps) \
85
-	$(top_srcdir)/lib/gstruct.pc.in COPYING config/compile \
86
-	config/config.guess config/config.sub config/depcomp \
87
-	config/install-sh config/missing config/ltmain.sh \
88
-	$(top_srcdir)/config/compile $(top_srcdir)/config/config.guess \
85
+	$(top_srcdir)/lib/gstruct.pc.in config/compile \
86
+	config/config.guess config/config.sub config/install-sh \
87
+	config/missing config/ltmain.sh $(top_srcdir)/config/compile \
88
+	$(top_srcdir)/config/config.guess \
89 89
 	$(top_srcdir)/config/config.sub \
90 90
 	$(top_srcdir)/config/install-sh $(top_srcdir)/config/ltmain.sh \
91 91
 	$(top_srcdir)/config/missing
... ...
@@ -265,7 +265,6 @@ LIBTOOL = @LIBTOOL@
265 265
 LIPO = @LIPO@
266 266
 LN_S = @LN_S@
267 267
 LTLIBOBJS = @LTLIBOBJS@
268
-MAINT = @MAINT@
269 268
 MAKEINFO = @MAKEINFO@
270 269
 MANIFEST_TOOL = @MANIFEST_TOOL@
271 270
 MKDIR_P = @MKDIR_P@
... ...
@@ -364,7 +363,7 @@ all: all-recursive
364 363
 .SUFFIXES:
365 364
 am--refresh: Makefile
366 365
 	@:
367
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
366
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
368 367
 	@for dep in $?; do \
369 368
 	  case '$(am__configure_deps)' in \
370 369
 	    *$$dep*) \
... ...
@@ -391,9 +390,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
391 390
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
392 391
 	$(SHELL) ./config.status --recheck
393 392
 
394
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
393
+$(top_srcdir)/configure:  $(am__configure_deps)
395 394
 	$(am__cd) $(srcdir) && $(AUTOCONF)
396
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
395
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
397 396
 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
398 397
 $(am__aclocal_m4_deps):
399 398
 lib/gstruct-${LIBGSTRUCT_API_VERSION}.pc: $(top_builddir)/config.status $(top_srcdir)/lib/gstruct.pc.in
... ...
@@ -642,42 +642,6 @@ fi
642 642
 rmdir .tst 2>/dev/null
643 643
 AC_SUBST([am__leading_dot])])
644 644
 
645
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
646
-# From Jim Meyering
647
-
648
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
649
-#
650
-# This file is free software; the Free Software Foundation
651
-# gives unlimited permission to copy and/or distribute it,
652
-# with or without modifications, as long as this notice is preserved.
653
-
654
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
655
-# ----------------------------------
656
-# Control maintainer-specific portions of Makefiles.
657
-# Default is to disable them, unless 'enable' is passed literally.
658
-# For symmetry, 'disable' may be passed as well.  Anyway, the user
659
-# can override the default with the --enable/--disable switch.
660
-AC_DEFUN([AM_MAINTAINER_MODE],
661
-[m4_case(m4_default([$1], [disable]),
662
-       [enable], [m4_define([am_maintainer_other], [disable])],
663
-       [disable], [m4_define([am_maintainer_other], [enable])],
664
-       [m4_define([am_maintainer_other], [enable])
665
-        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
666
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
667
-  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
668
-  AC_ARG_ENABLE([maintainer-mode],
669
-    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
670
-      am_maintainer_other[ make rules and dependencies not useful
671
-      (and sometimes confusing) to the casual installer])],
672
-    [USE_MAINTAINER_MODE=$enableval],
673
-    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
674
-  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
675
-  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
676
-  MAINT=$MAINTAINER_MODE_TRUE
677
-  AC_SUBST([MAINT])dnl
678
-]
679
-)
680
-
681 645
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
682 646
 
683 647
 # Copyright (C) 2001-2013 Free Software Foundation, Inc.
... ...
@@ -685,9 +685,6 @@ MAINTAINER_FALSE
685 685
 MAINTAINER_TRUE
686 686
 FULLDIST_FALSE
687 687
 FULLDIST_TRUE
688
-MAINT
689
-MAINTAINER_MODE_FALSE
690
-MAINTAINER_MODE_TRUE
691 688
 AM_BACKSLASH
692 689
 AM_DEFAULT_VERBOSITY
693 690
 AM_DEFAULT_V
... ...
@@ -790,7 +787,6 @@ enable_option_checking
790 787
 enable_largefile
791 788
 enable_dependency_tracking
792 789
 enable_silent_rules
793
-enable_maintainer_mode
794 790
 enable_fulldist
795 791
 enable_maintainer
796 792
 enable_static_linking
... ...
@@ -1446,9 +1442,6 @@ Optional Features:
1446 1442
                           speeds up one-time build
1447 1443
   --enable-silent-rules   less verbose build output (undo: "make V=1")
1448 1444
   --disable-silent-rules  verbose build output (undo: "make V=0")
1449
-  --disable-maintainer-mode
1450
-                          disable make rules and dependencies not useful (and
1451
-                          sometimes confusing) to the casual installer
1452 1445
   --enable-fulldist       For use by program maintainer
1453 1446
   --enable-maintainer     For use by program maintainer
1454 1447
   --enable-static-linking Link binaries statically (default=no)
... ...
@@ -4552,29 +4545,6 @@ END
4552 4545
   fi
4553 4546
 fi
4554 4547
 
4555
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
4556
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
4557
-    # Check whether --enable-maintainer-mode was given.
4558
-if test "${enable_maintainer_mode+set}" = set; then :
4559
-  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
4560
-else
4561
-  USE_MAINTAINER_MODE=yes
4562
-fi
4563
-
4564
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
4565
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
4566
-   if test $USE_MAINTAINER_MODE = yes; then
4567
-  MAINTAINER_MODE_TRUE=
4568
-  MAINTAINER_MODE_FALSE='#'
4569
-else
4570
-  MAINTAINER_MODE_TRUE='#'
4571
-  MAINTAINER_MODE_FALSE=
4572
-fi
4573
-
4574
-  MAINT=$MAINTAINER_MODE_TRUE
4575
-
4576
-
4577
-
4578 4548
  if test "x$enable_fulldist" = xyes; then
4579 4549
   FULLDIST_TRUE=
4580 4550
   FULLDIST_FALSE='#'
... ...
@@ -18008,10 +17978,6 @@ else
18008 17978
   am__EXEEXT_FALSE=
18009 17979
 fi
18010 17980
 
18011
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
18012
-  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
18013
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
18014
-fi
18015 17981
 if test -z "${FULLDIST_TRUE}" && test -z "${FULLDIST_FALSE}"; then
18016 17982
   as_fn_error $? "conditional \"FULLDIST\" was never defined.
18017 17983
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
... ...
@@ -13,29 +13,6 @@ lib_LTLIBRARIES = libgstruct-@LIBGSTRUCT_API_VERSION@.la
13 13
 
14 14
 
15 15
 
16
-EXON_EXON_JUNCTIONS_FILES = bool.h \
17
- except.c except.h assert.c assert.h mem.c mem.h \
18
- fopen.h types.h littleendian.c littleendian.h bigendian.c bigendian.h \
19
- stopwatch.c stopwatch.h access.c access.h \
20
- listdef.h list.c list.h \
21
- uintlist.c uintlist.h \
22
- interval.c interval.h iitdef.h iit-read.c iit-read.h \
23
- genomicpos.c genomicpos.h \
24
- intlistdef.h intlist.c intlist.h md5.c md5.h \
25
- chrnum.c chrnum.h \
26
- complement.h sequence.c sequence.h genome.c genome.h \
27
- table.c table.h \
28
- datadir.c datadir.h \
29
- exon-exon-junctions.c
30
-
31
-exon_exon_junctions_CC = $(PTHREAD_CC)
32
-exon_exon_junctions_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" 
33
-exon_exon_junctions_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
34
-exon_exon_junctions_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
35
-dist_exon_exon_junctions_SOURCES = $(EXON_EXON_JUNCTIONS_FILES)
36
-
37
-
38
-
39 16
 BAM_TALLY_FILES = fopen.h bool.h types.h \
40 17
  except.c except.h assert.c assert.h mem.c mem.h \
41 18
  intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
... ...
@@ -48,7 +25,8 @@ BAM_TALLY_FILES = fopen.h bool.h types.h \
48 25
  chrnum.c chrnum.h \
49 26
  bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
50 27
  dynprog.c dynprog.h dynprog_simd.c dynprog_simd.h dynprog_single.c dynprog_single.h \
51
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
28
+ tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h \
29
+ matchdef.h matchpool.c matchpool.h mismatchdef.h mismatchpool.c mismatchpool.h bamtally.c bamtally.h \
52 30
  datadir.c datadir.h \
53 31
  getopt.c getopt1.c getopt.h bamtally_main.c
54 32
 
... ...
@@ -72,7 +50,8 @@ LIBGSTRUCT_LA_FILES = config.h fopen.h bool.h types.h \
72 50
  chrnum.c chrnum.h \
73 51
  bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
74 52
  dynprog.c dynprog.h dynprog_simd.c dynprog_simd.h dynprog_single.c dynprog_single.h \
75
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
53
+ tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h \
54
+ matchdef.h matchpool.c matchpool.h mismatchdef.h mismatchpool.c mismatchpool.h bamtally.c bamtally.h \
76 55
  datadir.c datadir.h
77 56
 
78 57
 # Do not add SAMTOOLS LIBS here
... ...
@@ -100,7 +79,8 @@ gstruct_include_HEADERS = config.h fopen.h bool.h types.h \
100 79
  chrnum.h \
101 80
  bamread.h samread.h parserange.h \
102 81
  dynprog.h dynprog_simd.h dynprog_single.h \
103
- tableuint.h iit-write.h ucharlist.h bamtally.h datadir.h
82
+ tableuint.h iit-write.h ucharlist.h \
83
+ matchdef.h matchpool.h mismatchdef.h mismatchpool.h bamtally.h datadir.h
104 84
 
105 85
 # May want nodist_bamtally_libinclude_HEADERS = ../lib/bamtally.h
106 86
 #bamtally_libincludedir = $(libdir)/bamtally-$(LIBGSTRUCT_API_VERSION)/include
... ...
@@ -111,28 +91,6 @@ pkgconfig_DATA = ../lib/gstruct-$(LIBGSTRUCT_API_VERSION).pc
111 91
 
112 92
 
113 93
 
114
-BAM_PILEUP_FILES = fopen.h bool.h types.h \
115
- except.c except.h assert.c assert.h mem.c mem.h \
116
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
117
- littleendian.c littleendian.h bigendian.c bigendian.h \
118
- interval.c interval.h uintlist.c uintlist.h \
119
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
120
- chrom.c chrom.h genomicpos.c genomicpos.h \
121
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
122
- uinttable.c uinttable.h table.c table.h \
123
- chrnum.c chrnum.h \
124
- bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
125
- datadir.c datadir.h \
126
- getopt.c getopt1.c getopt.h bam_pileup.c
127
-
128
-if SAMTOOLS
129
-bam_pileup_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
130
-bam_pileup_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
131
-bam_pileup_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
132
-dist_bam_pileup_SOURCES = $(BAM_PILEUP_FILES)
133
-endif
134
-
135
-
136 94
 BAM_GET_FILES = fopen.h bool.h types.h \
137 95
  except.c except.h assert.c assert.h mem.c mem.h \
138 96
  intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
... ...
@@ -153,29 +111,6 @@ bam_get_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
153 111
 dist_bam_get_SOURCES = $(BAM_GET_FILES)
154 112
 
155 113
 
156
-BAM_PRINT_FILES = fopen.h bool.h types.h \
157
- except.c except.h assert.c assert.h mem.c mem.h \
158
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
159
- littleendian.c littleendian.h bigendian.c bigendian.h \
160
- interval.c interval.h uintlist.c uintlist.h \
161
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
162
- chrom.c chrom.h genomicpos.c genomicpos.h \
163
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
164
- uinttable.c uinttable.h table.c table.h \
165
- chrnum.c chrnum.h \
166
- bamread.c bamread.h samread.c samread.h \
167
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
168
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
169
- tableint.c tableint.h splice.c splice.h maxent_hr.c maxent_hr.h gstruct.c gstruct.h \
170
- datadir.c datadir.h parserange.c parserange.h \
171
- getopt.c getopt1.c getopt.h bam_print.c
172
-
173
-bam_print_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
174
-bam_print_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
175
-bam_print_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
176
-dist_bam_print_SOURCES = $(BAM_PRINT_FILES)
177
-
178
-
179 114
 BAM_FASTQ_FILES = fopen.h bool.h types.h \
180 115
  except.c except.h assert.c assert.h mem.c mem.h \
181 116
  listdef.h list.c list.h \
... ...
@@ -197,104 +132,3 @@ dist_bam_fastq_SOURCES = $(BAM_FASTQ_FILES)
197 132
 
198 133
 
199 134
 
200
-SPLICECLEAN_FILES = fopen.h bool.h types.h \
201
- except.c except.h assert.c assert.h mem.c mem.h \
202
- stopwatch.c stopwatch.h access.c access.h \
203
- listdef.h list.c list.h \
204
- genomicpos.c genomicpos.h \
205
- chrom.c chrom.h \
206
- uinttable.c uinttable.h table.c table.h \
207
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
208
- bigendian.c bigendian.h interval.c interval.h iitdef.h iit-read.c iit-read.h \
209
- getopt.c getopt1.c getopt.h spliceclean.c
210
-
211
-spliceclean_CFLAGS = $(AM_CFLAGS)  $(PTHREAD_CFLAGS)
212
-spliceclean_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
213
-spliceclean_LDADD = $(PTHREAD_LIBS)
214
-dist_spliceclean_SOURCES = $(SPLICECLEAN_FILES)
215
-
216
-
217
-
218
-#SPLICEGENE_FILES = fopen.h bool.h types.h \
219
-# except.c except.h assert.c assert.h mem.c mem.h \
220
-# intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
221
-# littleendian.c littleendian.h bigendian.c bigendian.h \
222
-# interval.c interval.h uintlist.c uintlist.h \
223
-# stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
224
-# uinttable.c uinttable.h genomicpos.c genomicpos.h \
225
-# getopt.c getopt1.c getopt.h splicegene.c
226
-#
227
-#splicegene_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
228
-#splicegene_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
229
-#splicegene_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
230
-#dist_splicegene_SOURCES = $(SPLICEGENE_FILES)
231
-
232
-
233
-#SAM_GSTRUCT_FILES = fopen.h bool.h types.h \
234
-# except.c except.h assert.c assert.h mem.c mem.h \
235
-# intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
236
-# littleendian.c littleendian.h bigendian.c bigendian.h \
237
-# interval.c interval.h uintlist.c uintlist.h \
238
-# stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
239
-# complement.h chrom.c chrom.h genomicpos.c genomicpos.h \
240
-# md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
241
-# table.c table.h uinttable.c uinttable.h \
242
-# samflags.h samread.c samread.h \
243
-# orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
244
-# iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
245
-# splice.c splice.h gstruct.c gstruct.h cappaths.c cappaths.h splicegraph.c splicegraph.h \
246
-# datadir.c datadir.h parserange.c parserange.h \
247
-# getopt.c getopt1.c getopt.h gstruct_main.c
248
-#
249
-#sam_gstruct_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
250
-#sam_gstruct_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
251
-#sam_gstruct_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
252
-#dist_sam_gstruct_SOURCES = $(SAM_GSTRUCT_FILES)
253
-
254
-
255
-BAM_SINGLEMAP_FILES = fopen.h bool.h types.h \
256
- except.c except.h assert.c assert.h mem.c mem.h \
257
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
258
- littleendian.c littleendian.h bigendian.c bigendian.h \
259
- interval.c interval.h uintlist.c uintlist.h \
260
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
261
- chrom.c chrom.h genomicpos.c genomicpos.h \
262
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
263
- table.c table.h uinttable.c uinttable.h \
264
- chrnum.c chrnum.h \
265
- samflags.h samread.c samread.h bamread.c bamread.h \
266
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
267
- tableint.c tableint.h tableuint.c tableuint.h \
268
- iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
269
- datadir.c datadir.h \
270
- getopt.c getopt1.c getopt.h singlemap.c
271
-bam_singlemap_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
272
-bam_singlemap_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
273
-bam_singlemap_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
274
-dist_bam_singlemap_SOURCES = $(BAM_SINGLEMAP_FILES)
275
-
276
-
277
-BAM_GSTRUCT_FILES = fopen.h bool.h types.h \
278
- except.c except.h assert.c assert.h mem.c mem.h \
279
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
280
- littleendian.c littleendian.h bigendian.c bigendian.h \
281
- interval.c interval.h uintlist.c uintlist.h \
282
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
283
- chrom.c chrom.h genomicpos.c genomicpos.h \
284
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
285
- table.c table.h uinttable.c uinttable.h \
286
- chrnum.c chrnum.h \
287
- samflags.h samread.c samread.h bamread.c bamread.h \
288
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
289
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
290
- tableint.c tableint.h splice.c splice.h maxent_hr.c maxent_hr.h gstruct.c gstruct.h \
291
- cappaths.c cappaths.h splicegraph.c splicegraph.h \
292
- datadir.c datadir.h parserange.c parserange.h \
293
- getopt.c getopt1.c getopt.h gstruct_main.c
294
-
295
-bam_gstruct_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
296
-bam_gstruct_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
297
-bam_gstruct_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
298
-dist_bam_gstruct_SOURCES = $(BAM_GSTRUCT_FILES)
299
-
300
-
... ...
@@ -160,7 +160,9 @@ am__dist_libgstruct_@LIBGSTRUCT_API_VERSION@_la_SOURCES_DIST =  \
160 160
 	parserange.c parserange.h dynprog.c dynprog.h dynprog_simd.c \
161 161
 	dynprog_simd.h dynprog_single.c dynprog_single.h tableuint.c \
162 162
 	tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h \
163
-	bamtally.c bamtally.h datadir.c datadir.h
163
+	matchdef.h matchpool.c matchpool.h mismatchdef.h \
164
+	mismatchpool.c mismatchpool.h bamtally.c bamtally.h datadir.c \
165
+	datadir.h
164 166
 am__objects_1 = libgstruct_@LIBGSTRUCT_API_VERSION@_la-except.lo \
165 167
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-assert.lo \
166 168
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-mem.lo \
... ...
@@ -190,6 +192,8 @@ am__objects_1 = libgstruct_@LIBGSTRUCT_API_VERSION@_la-except.lo \
190 192
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-tableuint.lo \
191 193
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-iit-write.lo \
192 194
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-ucharlist.lo \
195
+	libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo \
196
+	libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo \
193 197
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.lo \
194 198
 	libgstruct_@LIBGSTRUCT_API_VERSION@_la-datadir.lo
195 199
 @SAMTOOLS_TRUE@dist_libgstruct_@LIBGSTRUCT_API_VERSION@_la_OBJECTS =  \
... ...
@@ -256,9 +260,10 @@ am__dist_bam_tally_SOURCES_DIST = fopen.h bool.h types.h except.c \
256 260
 	samread.h parserange.c parserange.h dynprog.c dynprog.h \
257 261
 	dynprog_simd.c dynprog_simd.h dynprog_single.c \
258 262
 	dynprog_single.h tableuint.c tableuint.h iit-write.c \
259
-	iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
260
-	datadir.c datadir.h getopt.c getopt1.c getopt.h \
261
-	bamtally_main.c
263
+	iit-write.h ucharlist.c ucharlist.h matchdef.h matchpool.c \
264
+	matchpool.h mismatchdef.h mismatchpool.c mismatchpool.h \
265
+	bamtally.c bamtally.h datadir.c datadir.h getopt.c getopt1.c \
266
+	getopt.h bamtally_main.c
262 267
 am__objects_4 = bam_tally-except.$(OBJEXT) bam_tally-assert.$(OBJEXT) \
263 268
 	bam_tally-mem.$(OBJEXT) bam_tally-intlist.$(OBJEXT) \
264 269
 	bam_tally-list.$(OBJEXT) bam_tally-littleendian.$(OBJEXT) \
... ...
@@ -274,7 +279,8 @@ am__objects_4 = bam_tally-except.$(OBJEXT) bam_tally-assert.$(OBJEXT) \
274 279
 	bam_tally-dynprog_simd.$(OBJEXT) \
275 280
 	bam_tally-dynprog_single.$(OBJEXT) \
276 281
 	bam_tally-tableuint.$(OBJEXT) bam_tally-iit-write.$(OBJEXT) \
277
-	bam_tally-ucharlist.$(OBJEXT) bam_tally-bamtally.$(OBJEXT) \
282
+	bam_tally-ucharlist.$(OBJEXT) bam_tally-matchpool.$(OBJEXT) \
283
+	bam_tally-mismatchpool.$(OBJEXT) bam_tally-bamtally.$(OBJEXT) \
278 284
 	bam_tally-datadir.$(OBJEXT) bam_tally-getopt.$(OBJEXT) \
279 285
 	bam_tally-getopt1.$(OBJEXT) bam_tally-bamtally_main.$(OBJEXT)
280 286
 @SAMTOOLS_TRUE@dist_bam_tally_OBJECTS = $(am__objects_4)
... ...
@@ -402,7 +408,6 @@ LIBTOOL = @LIBTOOL@
402 408
 LIPO = @LIPO@
403 409
 LN_S = @LN_S@
404 410
 LTLIBOBJS = @LTLIBOBJS@
405
-MAINT = @MAINT@
406 411
 MAKEINFO = @MAKEINFO@
407 412
 MANIFEST_TOOL = @MANIFEST_TOOL@
408 413
 MKDIR_P = @MKDIR_P@
... ...
@@ -493,26 +498,6 @@ top_build_prefix = @top_build_prefix@
493 498
 top_builddir = @top_builddir@
494 499
 top_srcdir = @top_srcdir@
495 500
 lib_LTLIBRARIES = libgstruct-@LIBGSTRUCT_API_VERSION@.la
496
-EXON_EXON_JUNCTIONS_FILES = bool.h \
497
- except.c except.h assert.c assert.h mem.c mem.h \
498
- fopen.h types.h littleendian.c littleendian.h bigendian.c bigendian.h \
499
- stopwatch.c stopwatch.h access.c access.h \
500
- listdef.h list.c list.h \
501
- uintlist.c uintlist.h \
502
- interval.c interval.h iitdef.h iit-read.c iit-read.h \
503
- genomicpos.c genomicpos.h \
504
- intlistdef.h intlist.c intlist.h md5.c md5.h \
505
- chrnum.c chrnum.h \
506
- complement.h sequence.c sequence.h genome.c genome.h \
507
- table.c table.h \
508
- datadir.c datadir.h \
509
- exon-exon-junctions.c
510
-
511
-exon_exon_junctions_CC = $(PTHREAD_CC)
512
-exon_exon_junctions_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" 
513
-exon_exon_junctions_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
514
-exon_exon_junctions_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
515
-dist_exon_exon_junctions_SOURCES = $(EXON_EXON_JUNCTIONS_FILES)
516 501
 BAM_TALLY_FILES = fopen.h bool.h types.h \
517 502
  except.c except.h assert.c assert.h mem.c mem.h \
518 503
  intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
... ...
@@ -525,7 +510,8 @@ BAM_TALLY_FILES = fopen.h bool.h types.h \
525 510
  chrnum.c chrnum.h \
526 511
  bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
527 512
  dynprog.c dynprog.h dynprog_simd.c dynprog_simd.h dynprog_single.c dynprog_single.h \
528
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
513
+ tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h \
514
+ matchdef.h matchpool.c matchpool.h mismatchdef.h mismatchpool.c mismatchpool.h bamtally.c bamtally.h \
529 515
  datadir.c datadir.h \
530 516
  getopt.c getopt1.c getopt.h bamtally_main.c
531 517
 
... ...
@@ -545,7 +531,8 @@ LIBGSTRUCT_LA_FILES = config.h fopen.h bool.h types.h \
545 531
  chrnum.c chrnum.h \
546 532
  bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
547 533
  dynprog.c dynprog.h dynprog_simd.c dynprog_simd.h dynprog_single.c dynprog_single.h \
548
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
534
+ tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h \
535
+ matchdef.h matchpool.c matchpool.h mismatchdef.h mismatchpool.c mismatchpool.h bamtally.c bamtally.h \
549 536
  datadir.c datadir.h
550 537
 
551 538
 
... ...
@@ -570,7 +557,8 @@ gstruct_include_HEADERS = config.h fopen.h bool.h types.h \
570 557
  chrnum.h \
571 558
  bamread.h samread.h parserange.h \
572 559
  dynprog.h dynprog_simd.h dynprog_single.h \
573
- tableuint.h iit-write.h ucharlist.h bamtally.h datadir.h
560
+ tableuint.h iit-write.h ucharlist.h \
561
+ matchdef.h matchpool.h mismatchdef.h mismatchpool.h bamtally.h datadir.h
574 562
 
575 563
 
576 564
 # May want nodist_bamtally_libinclude_HEADERS = ../lib/bamtally.h
... ...
@@ -578,24 +566,6 @@ gstruct_include_HEADERS = config.h fopen.h bool.h types.h \
578 566
 #nodist_bamtally_libinclude_HEADERS = bamtally-config.h
579 567
 pkgconfigdir = $(libdir)/pkgconfig
580 568
 pkgconfig_DATA = ../lib/gstruct-$(LIBGSTRUCT_API_VERSION).pc
581
-BAM_PILEUP_FILES = fopen.h bool.h types.h \
582
- except.c except.h assert.c assert.h mem.c mem.h \
583
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
584
- littleendian.c littleendian.h bigendian.c bigendian.h \
585
- interval.c interval.h uintlist.c uintlist.h \
586
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
587
- chrom.c chrom.h genomicpos.c genomicpos.h \
588
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
589
- uinttable.c uinttable.h table.c table.h \
590
- chrnum.c chrnum.h \
591
- bamread.c bamread.h samread.c samread.h parserange.c parserange.h \
592
- datadir.c datadir.h \
593
- getopt.c getopt1.c getopt.h bam_pileup.c
594
-
595
-@SAMTOOLS_TRUE@bam_pileup_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
596
-@SAMTOOLS_TRUE@bam_pileup_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
597
-@SAMTOOLS_TRUE@bam_pileup_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
598
-@SAMTOOLS_TRUE@dist_bam_pileup_SOURCES = $(BAM_PILEUP_FILES)
599 569
 BAM_GET_FILES = fopen.h bool.h types.h \
600 570
  except.c except.h assert.c assert.h mem.c mem.h \
601 571
  intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
... ...
@@ -614,27 +584,6 @@ bam_get_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(
614 584
 bam_get_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
615 585
 bam_get_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
616 586
 dist_bam_get_SOURCES = $(BAM_GET_FILES)
617
-BAM_PRINT_FILES = fopen.h bool.h types.h \
618
- except.c except.h assert.c assert.h mem.c mem.h \
619
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
620
- littleendian.c littleendian.h bigendian.c bigendian.h \
621
- interval.c interval.h uintlist.c uintlist.h \
622
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
623
- chrom.c chrom.h genomicpos.c genomicpos.h \
624
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
625
- uinttable.c uinttable.h table.c table.h \
626
- chrnum.c chrnum.h \
627
- bamread.c bamread.h samread.c samread.h \
628
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
629
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
630
- tableint.c tableint.h splice.c splice.h maxent_hr.c maxent_hr.h gstruct.c gstruct.h \
631
- datadir.c datadir.h parserange.c parserange.h \
632
- getopt.c getopt1.c getopt.h bam_print.c
633
-
634
-bam_print_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
635
-bam_print_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
636
-bam_print_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
637
-dist_bam_print_SOURCES = $(BAM_PRINT_FILES)
638 587
 BAM_FASTQ_FILES = fopen.h bool.h types.h \
639 588
  except.c except.h assert.c assert.h mem.c mem.h \
640 589
  listdef.h list.c list.h \
... ...
@@ -653,105 +602,12 @@ bam_fastq_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"
653 602
 bam_fastq_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
654 603
 bam_fastq_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
655 604
 dist_bam_fastq_SOURCES = $(BAM_FASTQ_FILES)
656
-SPLICECLEAN_FILES = fopen.h bool.h types.h \
657
- except.c except.h assert.c assert.h mem.c mem.h \
658
- stopwatch.c stopwatch.h access.c access.h \
659
- listdef.h list.c list.h \
660
- genomicpos.c genomicpos.h \
661
- chrom.c chrom.h \
662
- uinttable.c uinttable.h table.c table.h \
663
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
664
- bigendian.c bigendian.h interval.c interval.h iitdef.h iit-read.c iit-read.h \
665
- getopt.c getopt1.c getopt.h spliceclean.c
666
-
667
-spliceclean_CFLAGS = $(AM_CFLAGS)  $(PTHREAD_CFLAGS)
668
-spliceclean_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
669
-spliceclean_LDADD = $(PTHREAD_LIBS)
670
-dist_spliceclean_SOURCES = $(SPLICECLEAN_FILES)
671
-
672
-#SPLICEGENE_FILES = fopen.h bool.h types.h \
673
-# except.c except.h assert.c assert.h mem.c mem.h \
674
-# intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
675
-# littleendian.c littleendian.h bigendian.c bigendian.h \
676
-# interval.c interval.h uintlist.c uintlist.h \
677
-# stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
678
-# uinttable.c uinttable.h genomicpos.c genomicpos.h \
679
-# getopt.c getopt1.c getopt.h splicegene.c
680
-#
681
-#splicegene_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
682
-#splicegene_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
683
-#splicegene_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
684
-#dist_splicegene_SOURCES = $(SPLICEGENE_FILES)
685
-
686
-#SAM_GSTRUCT_FILES = fopen.h bool.h types.h \
687
-# except.c except.h assert.c assert.h mem.c mem.h \
688
-# intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
689
-# littleendian.c littleendian.h bigendian.c bigendian.h \
690
-# interval.c interval.h uintlist.c uintlist.h \
691
-# stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
692
-# complement.h chrom.c chrom.h genomicpos.c genomicpos.h \
693
-# md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
694
-# table.c table.h uinttable.c uinttable.h \
695
-# samflags.h samread.c samread.h \
696
-# orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
697
-# iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
698
-# splice.c splice.h gstruct.c gstruct.h cappaths.c cappaths.h splicegraph.c splicegraph.h \
699
-# datadir.c datadir.h parserange.c parserange.h \
700
-# getopt.c getopt1.c getopt.h gstruct_main.c
701
-#
702
-#sam_gstruct_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\"
703
-#sam_gstruct_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS)
704
-#sam_gstruct_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS)
705
-#dist_sam_gstruct_SOURCES = $(SAM_GSTRUCT_FILES)
706
-BAM_SINGLEMAP_FILES = fopen.h bool.h types.h \
707
- except.c except.h assert.c assert.h mem.c mem.h \
708
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
709
- littleendian.c littleendian.h bigendian.c bigendian.h \
710
- interval.c interval.h uintlist.c uintlist.h \
711
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
712
- chrom.c chrom.h genomicpos.c genomicpos.h \
713
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
714
- table.c table.h uinttable.c uinttable.h \
715
- chrnum.c chrnum.h \
716
- samflags.h samread.c samread.h bamread.c bamread.h \
717
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
718
- tableint.c tableint.h tableuint.c tableuint.h \
719
- iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
720
- datadir.c datadir.h \
721
- getopt.c getopt1.c getopt.h singlemap.c
722
-
723
-bam_singlemap_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
724
-bam_singlemap_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
725
-bam_singlemap_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
726
-dist_bam_singlemap_SOURCES = $(BAM_SINGLEMAP_FILES)
727
-BAM_GSTRUCT_FILES = fopen.h bool.h types.h \
728
- except.c except.h assert.c assert.h mem.c mem.h \
729
- intlistdef.h intlist.c intlist.h listdef.h list.c list.h \
730
- littleendian.c littleendian.h bigendian.c bigendian.h \
731
- interval.c interval.h uintlist.c uintlist.h \
732
- stopwatch.c stopwatch.h access.c access.h iitdef.h iit-read.c iit-read.h \
733
- chrom.c chrom.h genomicpos.c genomicpos.h \
734
- md5.c md5.h complement.h sequence.c sequence.h genome.c genome.h \
735
- table.c table.h uinttable.c uinttable.h \
736
- chrnum.c chrnum.h \
737
- samflags.h samread.c samread.h bamread.c bamread.h \
738
- orderstat.c orderstat.h lgamma.c lgamma.h tally.c tally.h \
739
- tableuint.c tableuint.h iit-write.c iit-write.h ucharlist.c ucharlist.h bamtally.c bamtally.h \
740
- tableint.c tableint.h splice.c splice.h maxent_hr.c maxent_hr.h gstruct.c gstruct.h \
741
- cappaths.c cappaths.h splicegraph.c splicegraph.h \
742
- datadir.c datadir.h parserange.c parserange.h \
743
- getopt.c getopt1.c getopt.h gstruct_main.c
744
-
745
-bam_gstruct_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS) $(SAMTOOLS_CFLAGS) -DTARGET=\"$(target)\" -DGMAPDB=\"$(GMAPDB)\" -DBAM_INPUT=1
746
-bam_gstruct_LDFLAGS = $(AM_LDFLAGS) $(STATIC_LDFLAG) $(PTHREAD_CFLAGS) $(SAMTOOLS_LDFLAGS)
747
-bam_gstruct_LDADD = $(PTHREAD_LIBS) $(ZLIB_LIBS) $(SAMTOOLS_LIBS)
748
-dist_bam_gstruct_SOURCES = $(BAM_GSTRUCT_FILES)
749 605
 all: config.h
750 606
 	$(MAKE) $(AM_MAKEFLAGS) all-am
751 607
 
752 608
 .SUFFIXES:
753 609
 .SUFFIXES: .c .lo .o .obj
754
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
610
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
755 611
 	@for dep in $?; do \
756 612
 	  case '$(am__configure_deps)' in \
757 613
 	    *$$dep*) \
... ...
@@ -776,9 +632,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
776 632
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
777 633
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
778 634
 
779
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
635
+$(top_srcdir)/configure:  $(am__configure_deps)
780 636
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
781
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
637
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
782 638
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
783 639
 $(am__aclocal_m4_deps):
784 640
 
... ...
@@ -789,7 +645,7 @@ config.h: stamp-h1
789 645
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
790 646
 	@rm -f stamp-h1
791 647
 	cd $(top_builddir) && $(SHELL) ./config.status src/config.h
792
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
648
+$(srcdir)/config.h.in:  $(am__configure_deps) 
793 649
 	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
794 650
 	rm -f stamp-h1
795 651
 	touch $@
... ...
@@ -971,8 +827,10 @@ distclean-compile:
971 827
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-intlist.Po@am__quote@
972 828
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-list.Po@am__quote@
973 829
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-littleendian.Po@am__quote@
830
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-matchpool.Po@am__quote@
974 831
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-md5.Po@am__quote@
975 832
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-mem.Po@am__quote@
833
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-mismatchpool.Po@am__quote@
976 834
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-parserange.Po@am__quote@
977 835
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-samread.Po@am__quote@
978 836
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bam_tally-sequence.Po@am__quote@
... ...
@@ -1002,8 +860,10 @@ distclean-compile:
1002 860
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-intlist.Plo@am__quote@
1003 861
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-list.Plo@am__quote@
1004 862
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-littleendian.Plo@am__quote@
863
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.Plo@am__quote@
1005 864
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-md5.Plo@am__quote@
1006 865
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-mem.Plo@am__quote@
866
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.Plo@am__quote@
1007 867
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-parserange.Plo@am__quote@
1008 868
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-samread.Plo@am__quote@
1009 869
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-sequence.Plo@am__quote@
... ...
@@ -1238,6 +1098,20 @@ libgstruct_@LIBGSTRUCT_API_VERSION@_la-ucharlist.lo: ucharlist.c
1238 1098
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1239 1099
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-ucharlist.lo `test -f 'ucharlist.c' || echo '$(srcdir)/'`ucharlist.c
1240 1100
 
1101
+libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo: matchpool.c
1102
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo -MD -MP -MF $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.Tpo -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo `test -f 'matchpool.c' || echo '$(srcdir)/'`matchpool.c
1103
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.Tpo $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.Plo
1104
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matchpool.c' object='libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo' libtool=yes @AMDEPBACKSLASH@
1105
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1106
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-matchpool.lo `test -f 'matchpool.c' || echo '$(srcdir)/'`matchpool.c
1107
+
1108
+libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo: mismatchpool.c
1109
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo -MD -MP -MF $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.Tpo -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo `test -f 'mismatchpool.c' || echo '$(srcdir)/'`mismatchpool.c
1110
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.Tpo $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.Plo
1111
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mismatchpool.c' object='libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo' libtool=yes @AMDEPBACKSLASH@
1112
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1113
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-mismatchpool.lo `test -f 'mismatchpool.c' || echo '$(srcdir)/'`mismatchpool.c
1114
+
1241 1115
 libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.lo: bamtally.c
1242 1116
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstruct_@LIBGSTRUCT_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.lo -MD -MP -MF $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.Tpo -c -o libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.lo `test -f 'bamtally.c' || echo '$(srcdir)/'`bamtally.c
1243 1117
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.Tpo $(DEPDIR)/libgstruct_@LIBGSTRUCT_API_VERSION@_la-bamtally.Plo
... ...
@@ -2302,6 +2176,34 @@ bam_tally-ucharlist.obj: ucharlist.c
2302 2176
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2303 2177
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -c -o bam_tally-ucharlist.obj `if test -f 'ucharlist.c'; then $(CYGPATH_W) 'ucharlist.c'; else $(CYGPATH_W) '$(srcdir)/ucharlist.c'; fi`
2304 2178
 
2179
+bam_tally-matchpool.o: matchpool.c
2180
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -MT bam_tally-matchpool.o -MD -MP -MF $(DEPDIR)/bam_tally-matchpool.Tpo -c -o bam_tally-matchpool.o `test -f 'matchpool.c' || echo '$(srcdir)/'`matchpool.c
2181
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bam_tally-matchpool.Tpo $(DEPDIR)/bam_tally-matchpool.Po
2182
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matchpool.c' object='bam_tally-matchpool.o' libtool=no @AMDEPBACKSLASH@
2183
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2184
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -c -o bam_tally-matchpool.o `test -f 'matchpool.c' || echo '$(srcdir)/'`matchpool.c
2185
+
2186
+bam_tally-matchpool.obj: matchpool.c
2187
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -MT bam_tally-matchpool.obj -MD -MP -MF $(DEPDIR)/bam_tally-matchpool.Tpo -c -o bam_tally-matchpool.obj `if test -f 'matchpool.c'; then $(CYGPATH_W) 'matchpool.c'; else $(CYGPATH_W) '$(srcdir)/matchpool.c'; fi`
2188
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bam_tally-matchpool.Tpo $(DEPDIR)/bam_tally-matchpool.Po
2189
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='matchpool.c' object='bam_tally-matchpool.obj' libtool=no @AMDEPBACKSLASH@
2190
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2191
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -c -o bam_tally-matchpool.obj `if test -f 'matchpool.c'; then $(CYGPATH_W) 'matchpool.c'; else $(CYGPATH_W) '$(srcdir)/matchpool.c'; fi`
2192
+
2193
+bam_tally-mismatchpool.o: mismatchpool.c
2194
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -MT bam_tally-mismatchpool.o -MD -MP -MF $(DEPDIR)/bam_tally-mismatchpool.Tpo -c -o bam_tally-mismatchpool.o `test -f 'mismatchpool.c' || echo '$(srcdir)/'`mismatchpool.c
2195
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bam_tally-mismatchpool.Tpo $(DEPDIR)/bam_tally-mismatchpool.Po
2196
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mismatchpool.c' object='bam_tally-mismatchpool.o' libtool=no @AMDEPBACKSLASH@
2197
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2198
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -c -o bam_tally-mismatchpool.o `test -f 'mismatchpool.c' || echo '$(srcdir)/'`mismatchpool.c
2199
+
2200
+bam_tally-mismatchpool.obj: mismatchpool.c
2201
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -MT bam_tally-mismatchpool.obj -MD -MP -MF $(DEPDIR)/bam_tally-mismatchpool.Tpo -c -o bam_tally-mismatchpool.obj `if test -f 'mismatchpool.c'; then $(CYGPATH_W) 'mismatchpool.c'; else $(CYGPATH_W) '$(srcdir)/mismatchpool.c'; fi`
2202
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bam_tally-mismatchpool.Tpo $(DEPDIR)/bam_tally-mismatchpool.Po
2203
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mismatchpool.c' object='bam_tally-mismatchpool.obj' libtool=no @AMDEPBACKSLASH@
2204
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
2205
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -c -o bam_tally-mismatchpool.obj `if test -f 'mismatchpool.c'; then $(CYGPATH_W) 'mismatchpool.c'; else $(CYGPATH_W) '$(srcdir)/mismatchpool.c'; fi`
2206
+
2305 2207
 bam_tally-bamtally.o: bamtally.c
2306 2208
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bam_tally_CFLAGS) $(CFLAGS) -MT bam_tally-bamtally.o -MD -MP -MF $(DEPDIR)/bam_tally-bamtally.Tpo -c -o bam_tally-bamtally.o `test -f 'bamtally.c' || echo '$(srcdir)/'`bamtally.c
2307 2209
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bam_tally-bamtally.Tpo $(DEPDIR)/bam_tally-bamtally.Po
... ...
@@ -1,4 +1,4 @@
1
-static char rcsid[] = "$Id: bam_fastq.c 121683 2013-12-17 02:52:04Z twu $";
1
+static char rcsid[] = "$Id: bam_fastq.c 134975 2014-05-03 01:13:55Z twu $";
2 2
 #ifdef HAVE_CONFIG_H
3 3
 #include <config.h>
4 4
 #endif
... ...
@@ -1147,7 +1147,7 @@ print_fastq_paired (FILE *fp1, FILE *fp2, char *acc, T read1, T read2) {
1147 1147
 
1148 1148
 
1149 1149
 static void
1150
-parse_bam_input (FILE *fp1, FILE *fp2, Bamreader_T bamreader, Table_T read_table1, Table_T read_table2) {
1150
+parse_bam_input (FILE *fp0, FILE *fp1, FILE *fp2, Bamreader_T bamreader, Table_T read_table1, Table_T read_table2) {
1151 1151
   Bamline_T bamline;
1152 1152
   char *acc, *acc_copy;
1153 1153
   Read_T read1, read2;
... ...
@@ -1169,9 +1169,9 @@ parse_bam_input (FILE *fp1, FILE *fp2, Bamreader_T bamreader, Table_T read_table
1169 1169
 	Table_put(read_table1,found1p ? acc : string_copy(acc),read1);
1170 1170
       } else {
1171 1171
 	if (fastap == true) {
1172
-	  print_fasta_single(fp1,acc,read1);
1172
+	  print_fasta_single(fp0,acc,read1);
1173 1173
 	} else {
1174
-	  print_fastq_single(fp1,acc,read1);
1174
+	  print_fastq_single(fp0,acc,read1);
1175 1175
 	}
1176 1176
 	if (found1p == true) {
1177 1177
 	  acc_copy = Table_remove(read_table1,acc);
... ...
@@ -1390,7 +1390,7 @@ empty_table (FILE *fp, Table_T read_table, char *suffix) {
1390 1390
 
1391 1391
 int
1392 1392
 main (int argc, char *argv[]) {
1393
-  FILE *fp1, *fp2 = NULL, *err1 = NULL, *err2 = NULL;
1393
+  FILE *fp0, *fp1, *fp2 = NULL, *err1 = NULL, *err2 = NULL;
1394 1394
   char *filename;
1395 1395
   Bamreader_T bamreader;
1396 1396
   Table_T read_table1, read_table2;
... ...
@@ -1488,6 +1488,11 @@ main (int argc, char *argv[]) {
1488 1488
       fp1 = stdout;
1489 1489
       
1490 1490
     } else {
1491
+      filename = (char *) CALLOC(strlen(output_root) + strlen(".fq") + 1,sizeof(char));
1492
+      sprintf(filename,"%s.fq",output_root);
1493
+      fp0 = fopen(filename,"w");
1494
+      FREE(filename);
1495
+
1491 1496
       filename = (char *) CALLOC(strlen(output_root) + strlen("_1.fq") + 1,sizeof(char));
1492 1497
       sprintf(filename,"%s_1.fq",output_root);
1493 1498
       fp1 = fopen(filename,"w");
... ...
@@ -1507,7 +1512,7 @@ main (int argc, char *argv[]) {
1507 1512
       read_table2 = Table_new(1000000,Table_string_compare,Table_string_hash);
1508 1513
 
1509 1514
       bamreader = Bamread_new(argv[i]);
1510
-      parse_bam_input(fp1,fp2,bamreader,read_table1,read_table2);
1515
+      parse_bam_input(fp0,fp1,fp2,bamreader,read_table1,read_table2);
1511 1516
       Bamread_free(&bamreader);
1512 1517
     }
1513 1518
   }
... ...
@@ -1561,6 +1566,7 @@ main (int argc, char *argv[]) {
1561 1566
   }
1562 1567
   if (fastap == false) {
1563 1568
     fclose(fp1);
1569
+    fclose(fp0);
1564 1570
   }
1565 1571
 
1566 1572
   if (fastap == false) {
... ...
@@ -1,4 +1,4 @@
1
-static char rcsid[] = "$Id: bamtally.c 134416 2014-04-25 22:12:58Z twu $";
1
+static char rcsid[] = "$Id: bamtally.c 134973 2014-05-03 01:11:47Z twu $";
2 2
 #ifdef HAVE_CONFIG_H
3 3
 #include <config.h>
4 4
 #endif
... ...
@@ -32,6 +32,12 @@ static char rcsid[] = "$Id: bamtally.c 134416 2014-04-25 22:12:58Z twu $";
32 32
 #include "dynprog.h"
33 33
 #include "dynprog_single.h"
34 34
 
35
+#include "matchdef.h"
36
+#include "matchpool.h"
37
+#include "mismatchdef.h"
38
+#include "mismatchpool.h"
39
+
40
+
35 41
 
36 42
 /* Specific to BAM */
37 43
 #include "samflags.h"		/* For flags */
... ...
@@ -86,15 +92,11 @@ typedef struct T *T;
86 92
 typedef enum {FIRST, SECOND} Pairend_T;
87 93
 
88 94
 
95
+#define USE_MATCHPOOL 1
96
+#define USE_MISMATCHPOOL 1
89 97
 
90
-typedef struct Match_T *Match_T;
91
-struct Match_T {
92
-  int shift;			/* Used to record shifts */
93
-  int mapq;
94
-  char quality;
95
-  long int count;
96
-};
97 98
 
99
+#ifndef USE_MATCHPOOL
98 100
 static Match_T
99 101
 Match_new (int shift, int mapq, char quality) {
100 102
   Match_T new = (Match_T) MALLOC(sizeof(*new));
... ...
@@ -112,6 +114,9 @@ Match_free (Match_T *old) {
112 114
   FREE(*old);
113 115
   return;
114 116
 }
117
+#endif
118
+
119
+
115 120
 
116 121
 static Match_T
117 122
 find_match_byshift (List_T matches, int shift) {
... ...
@@ -206,21 +211,7 @@ Match_mapq_cmp (const void *a, const void *b) {
206 211
 }
207 212
 
208 213
 
209
-typedef struct Mismatch_T *Mismatch_T;
210
-struct Mismatch_T {
211
-  char nt;
212
-  int shift;			/* Used to record shifts */
213
-  char mapq;
214
-  char quality;
215
-  long int count;
216
-
217
-  long int count_plus;		/* Used by unique elements */
218
-  long int count_minus;		/* Used by unique elements */
219
-
220
-  Mismatch_T next;		/* Used for linking similar mismatches together */
221
-};
222
-
223
-
214
+#ifndef USE_MISMATCHPOOL
224 215
 static Mismatch_T
225 216
 Mismatch_new (char nt, int shift, int mapq, char quality) {
226 217
   Mismatch_T new = (Mismatch_T) MALLOC(sizeof(*new));
... ...
@@ -244,6 +235,8 @@ Mismatch_free (Mismatch_T *old) {
244 235
   FREE(*old);
245 236
   return;
246 237
 }
238
+#endif
239
+
247 240
 
248 241
 static int
249 242
 Mismatch_chain_length (Mismatch_T this) {
... ...
@@ -637,11 +630,24 @@ struct T {
637 630
   long int n_fromleft_plus; /* Used for reference count for insertions */
638 631
   long int n_fromleft_minus; /* Used for reference count for insertions */
639 632
 
633
+#ifdef USE_MATCHPOOL
634
+  Matchpool_T matchpool;
635
+#endif
636
+#ifdef USE_MISMATCHPOOL
637
+  Mismatchpool_T mismatchpool;
638
+#endif
639
+
640 640
   bool use_array_p;
641 641
   List_T list_matches_byshift;
642 642
   List_T list_matches_byquality;
643 643
   List_T list_matches_bymapq;
644 644
 
645
+#ifdef REUSE_ARRAYS
646
+  int avail_matches_byshift_plus;
647
+  int avail_matches_byshift_minus;
648
+  int avail_matches_byquality;
649
+  int avail_matches_bymapq;
650
+#endif
645 651
   int n_matches_byshift_plus;
646 652
   int *matches_byshift_plus;
647 653
   int n_matches_byshift_minus;
... ...
@@ -670,6 +676,10 @@ Tally_new () {
670 676
   new->n_fromleft_plus = 0;
671 677
   new->n_fromleft_minus = 0;
672 678
   
679
+#ifdef USE_MATCHPOOL
680
+  new->matchpool = Matchpool_new();
681
+#endif
682
+
673 683
   new->use_array_p = false;
674 684
   new->list_matches_byshift = (List_T) NULL;
675 685
   new->list_matches_byquality = (List_T) NULL;
... ...
@@ -685,6 +695,10 @@ Tally_new () {
685 695
   new->matches_byquality = (int *) CALLOC(new->n_matches_byquality,sizeof(int));
686 696
   new->matches_bymapq = (int *) CALLOC(new->n_matches_bymapq,sizeof(int));
687 697
 
698
+#ifdef USE_MISMATCHPOOL
699
+  new->mismatchpool = Mismatchpool_new();
700
+#endif
701
+
688 702
   new->mismatches_byshift = (List_T) NULL;
689 703
   new->mismatches_byquality = (List_T) NULL;
690 704
   new->mismatches_bymapq = (List_T) NULL;
... ...
@@ -719,6 +733,10 @@ Tally_clear (T this) {
719 733
 #endif
720 734
     this->use_array_p = false;
721 735
   } else {
736
+
737
+#ifdef USE_MATCHPOOL
738
+    Matchpool_reset(this->matchpool);
739
+#else
722 740
     for (ptr = this->list_matches_byshift; ptr != NULL; ptr = List_next(ptr)) {
723 741
       match = (Match_T) List_head(ptr);
724 742
       Match_free(&match);
... ...
@@ -739,9 +757,12 @@ Tally_clear (T this) {
739 757
     }
740 758
     List_free(&(this->list_matches_bymapq));
741 759
     this->list_matches_bymapq = (List_T) NULL;
760
+#endif
742 761
   }
743 762
 
744
-
763
+#ifdef USE_MISMATCHPOOL
764
+  Mismatchpool_reset(this->mismatchpool);
765
+#else
745 766
   for (ptr = this->mismatches_byshift; ptr != NULL; ptr = List_next(ptr)) {
746 767
     mismatch = (Mismatch_T) List_head(ptr);
747 768
     Mismatch_free(&mismatch);
... ...
@@ -762,6 +783,8 @@ Tally_clear (T this) {
762 783
   }
763 784
   List_free(&(this->mismatches_bymapq));
764 785
   this->mismatches_bymapq = (List_T) NULL;
786
+#endif
787
+
765 788
 
766 789
   for (ptr = this->insertions_byshift; ptr != NULL; ptr = List_next(ptr)) {
767 790
     ins = (Insertion_T) List_head(ptr);
... ...
@@ -837,6 +860,9 @@ Tally_free (T *old) {
837 860
   FREE((*old)->matches_byquality);
838 861
   FREE((*old)->matches_bymapq);
839 862
 
863
+#ifdef USE_MATCHPOOL
864
+  Matchpool_free(&((*old)->matchpool));
865
+#else
840 866
   for (ptr = (*old)->list_matches_byshift; ptr != NULL; ptr = List_next(ptr)) {
841 867
     match = (Match_T) List_head(ptr);
842 868
     Match_free(&match);
... ...
@@ -857,8 +883,12 @@ Tally_free (T *old) {
857 883
   }
858 884
   List_free(&((*old)->list_matches_bymapq));
859 885
   (*old)->list_matches_bymapq = (List_T) NULL;
886
+#endif
860 887
 
861 888
 
889
+#ifdef USE_MISMATCHPOOL
890
+  Mismatchpool_free(&(*old)->mismatchpool);
891
+#else
862 892
   for (ptr = (*old)->mismatches_byshift; ptr != NULL; ptr = List_next(ptr)) {
863 893
     mismatch = (Mismatch_T) List_head(ptr);
864 894
     Mismatch_free(&mismatch);
... ...
@@ -879,6 +909,8 @@ Tally_free (T *old) {
879 909
   }
880 910
   List_free(&((*old)->mismatches_bymapq));
881 911
   (*old)->mismatches_bymapq = (List_T) NULL;
912
+#endif
913
+
882 914
 
883 915
   for (ptr = (*old)->insertions_byshift; ptr != NULL; ptr = List_next(ptr)) {
884 916
     ins = (Insertion_T) List_head(ptr);
... ...
@@ -1501,7 +1533,11 @@ print_runlength (T *block_tallies, Genomicpos_T *exonstart, Genomicpos_T lastpos
1501 1533
 
1502 1534
 
1503 1535
 static List_T
1504
-make_mismatches_unique (List_T mismatches) {
1536
+make_mismatches_unique (List_T mismatches
1537
+#ifdef USE_MISMATCHPOOL
1538
+			, Mismatchpool_T mismatchpool
1539
+#endif
1540
+			) {
1505 1541
   List_T unique_mismatches = NULL, ptr;
1506 1542
   Mismatch_T mismatch, mismatch0;
1507 1543
 
... ...
@@ -1516,10 +1552,18 @@ make_mismatches_unique (List_T mismatches) {
1516 1552
 
1517 1553
       mismatch0->shift += 1; /* Used here as nshifts */
1518 1554
     } else {
1555
+#ifdef USE_MISMATCHPOOL
1556
+      unique_mismatches = Mismatchpool_push(unique_mismatches,mismatchpool,
1557
+					    mismatch->nt,/*shift, used here as nshifts*/1,/*mapq*/0,' ');
1558
+      mismatch0 = (Mismatch_T) List_head(unique_mismatches);
1559
+      mismatch0->count = mismatch->count;
1560
+      mismatch0->next = mismatch;
1561
+#else
1519 1562
       mismatch0 = Mismatch_new(mismatch->nt,/*shift, used here as nshifts*/1,/*mapq*/0,' ');
1520 1563
       mismatch0->count = mismatch->count;
1521 1564
       mismatch0->next = mismatch;
1522 1565
       unique_mismatches = List_push(unique_mismatches,mismatch0);
1566
+#endif
1523 1567
     }
1524 1568
   }
1525 1569
 
... ...
@@ -1527,7 +1571,11 @@ make_mismatches_unique (List_T mismatches) {
1527 1571
 }
1528 1572
 
1529 1573
 static List_T
1530
-make_mismatches_unique_signed (List_T mismatches) {
1574
+make_mismatches_unique_signed (List_T mismatches
1575
+#ifdef USE_MISMATCHPOOL
1576
+	, Mismatchpool_T mismatchpool
1577
+#endif
1578
+	) {
1531 1579
   List_T unique_mismatches = NULL, ptr;
1532 1580
   Mismatch_T mismatch, mismatch0;
1533 1581
 
... ...
@@ -1547,6 +1595,20 @@ make_mismatches_unique_signed (List_T mismatches) {
1547 1595
 
1548 1596
       mismatch0->shift += 1; /* Used here as nshifts */
1549 1597
     } else {
1598
+#ifdef USE_MISMATCHPOOL
1599
+      unique_mismatches = Mismatchpool_push(unique_mismatches,mismatchpool,
1600
+	mismatch->nt,/*shift, used here as nshifts*/1,/*mapq*/0,' ');
1601
+      mismatch0 = (Mismatch_T) List_head(unique_mismatches);
1602
+      mismatch0->count = mismatch->count;
1603
+      if (mismatch->shift > 0) {
1604
+	mismatch0->count_plus = mismatch->count;
1605
+	mismatch0->count_minus = 0;
1606
+      } else {
1607
+	mismatch0->count_minus = mismatch->count;
1608
+	mismatch0->count_plus = 0;
1609
+      }
1610
+      mismatch0->next = mismatch;
1611
+#else
1550 1612
       mismatch0 = Mismatch_new(mismatch->nt,/*shift, used here as nshifts*/1,/*mapq*/0,' ');
1551 1613
       mismatch0->count = mismatch->count;
1552 1614
       if (mismatch->shift > 0) {
... ...
@@ -1558,6 +1620,7 @@ make_mismatches_unique_signed (List_T mismatches) {
1558 1620
       }
1559 1621
       mismatch0->next = mismatch;
1560 1622
       unique_mismatches = List_push(unique_mismatches,mismatch0);
1623
+#endif
1561 1624
     }
1562 1625
   }
1563 1626
 
... ...
@@ -2045,9 +2108,15 @@ print_block (T *block_tallies, Genomicpos_T blockstart, Genomicpos_T blockptr,
2045 2108
 	}
2046 2109
 
2047 2110
 	if (this->mismatches_byshift != NULL) {
2111
+#ifdef USE_MISMATCHPOOL
2112
+	  unique_mismatches_byshift = make_mismatches_unique_signed(this->mismatches_byshift,this->mismatchpool);
2113
+	  unique_mismatches_byquality = make_mismatches_unique(this->mismatches_byquality,this->mismatchpool);
2114
+	  unique_mismatches_bymapq = make_mismatches_unique(this->mismatches_bymapq,this->mismatchpool);
2115
+#else
2048 2116
 	  unique_mismatches_byshift = make_mismatches_unique_signed(this->mismatches_byshift);
2049 2117
 	  unique_mismatches_byquality = make_mismatches_unique(this->mismatches_byquality);
2050 2118
 	  unique_mismatches_bymapq = make_mismatches_unique(this->mismatches_bymapq);
2119
+#endif
2051 2120
 
2052 2121
 	  mm_array = (Mismatch_T *) List_to_array(unique_mismatches_byshift,NULL);
2053 2122
 	  qsort(mm_array,List_length(unique_mismatches_byshift),sizeof(Mismatch_T),Mismatch_count_cmp);
... ...
@@ -2115,6 +2184,9 @@ print_block (T *block_tallies, Genomicpos_T blockstart, Genomicpos_T blockptr,
2115 2184
 
2116 2185
 	  FREE(mm_array);
2117 2186
 
2187
+#ifdef USE_MISMATCHPOOL
2188
+	  Mismatchpool_reset(this->mismatchpool);
2189
+#else
2118 2190
 	  for (ptr = unique_mismatches_byshift; ptr != NULL; ptr = List_next(ptr)) {
2119 2191
 	    mismatch0 = List_head(ptr);
2120 2192
 	    Mismatch_free(&mismatch0);
... ...
@@ -2132,6 +2204,7 @@ print_block (T *block_tallies, Genomicpos_T blockstart, Genomicpos_T blockptr,
2132 2204
 	    Mismatch_free(&mismatch0);
2133 2205
 	  }
2134 2206
 	  List_free(&unique_mismatches_bymapq);
2207
+#endif
2135 2208
 	}
2136 2209
 
2137 2210
 	if (want_genotypes_p == true) {
... ...
@@ -2850,9 +2923,15 @@ iit_block (List_T *intervallist, List_T *labellist, List_T *datalist,
2850 2923
 
2851 2924
 	/* Alternate nucleotide and counts */
2852 2925
 	if (this->mismatches_byshift != NULL) {
2926
+#ifdef USE_MISMATCHPOOL
2927
+	  unique_mismatches_byshift = make_mismatches_unique_signed(this->mismatches_byshift,this->mismatchpool);
2928
+	  unique_mismatches_byquality = make_mismatches_unique(this->mismatches_byquality,this->mismatchpool);
2929
+	  unique_mismatches_bymapq = make_mismatches_unique(this->mismatches_bymapq,this->mismatchpool);
2930
+#else
2853 2931
 	  unique_mismatches_byshift = make_mismatches_unique_signed(this->mismatches_byshift);
2854 2932
 	  unique_mismatches_byquality = make_mismatches_unique(this->mismatches_byquality);
2855 2933
 	  unique_mismatches_bymapq = make_mismatches_unique(this->mismatches_bymapq);
2934
+#endif
2856 2935
 
2857 2936
 	  mm_array = (Mismatch_T *) List_to_array(unique_mismatches_byshift,NULL);
2858 2937
 	  qsort(mm_array,List_length(unique_mismatches_byshift),sizeof(Mismatch_T),Mismatch_count_cmp);
... ...
@@ -2971,6 +3050,9 @@ iit_block (List_T *intervallist, List_T *labellist, List_T *datalist,
2971 3050
 	  }
2972 3051
 	  FREE(mm_array);
2973 3052
 
3053
+#ifdef USE_MISMATCHPOOL
3054
+	  Mismatchpool_reset(this->mismatchpool);
3055
+#else
2974 3056
 	  for (ptr = unique_mismatches_byshift; ptr != NULL; ptr = List_next(ptr)) {
2975 3057
 	    mismatch0 = List_head(ptr);
2976 3058
 	    Mismatch_free(&mismatch0);
... ...
@@ -2988,6 +3070,7 @@ iit_block (List_T *intervallist, List_T *labellist, List_T *datalist,
2988 3070
 	    Mismatch_free(&mismatch0);
2989 3071
 	  }
2990 3072
 	  List_free(&unique_mismatches_bymapq);
3073
+#endif
2991 3074
 	}
2992 3075
       }
2993 3076
 
... ...
@@ -3304,6 +3387,9 @@ revise_position (char querynt, char genomicnt, int mapq, int quality, int signed
3304 3387
 	this->matches_byshift_minus = newarray;
3305 3388
       }
3306 3389
 
3390
+#ifdef USE_MATCHPOOL
3391
+      Matchpool_reset(this->matchpool);
3392
+#else
3307 3393
       for (ptr = this->list_matches_byshift; ptr != NULL; ptr = List_next(ptr)) {
3308 3394
 	match = (Match_T) List_head(ptr);
3309 3395
 	if (match->shift > 0) {
... ...
@@ -3316,7 +3402,6 @@ revise_position (char querynt, char genomicnt, int mapq, int quality, int signed
3316 3402
       List_free(&(this->list_matches_byshift));
3317 3403
       this->list_matches_byshift = (List_T) NULL;
3318 3404
 
3319
-
3320 3405
       for (ptr = this->list_matches_byquality; ptr != NULL; ptr = List_next(ptr)) {
3321 3406
 	match = (Match_T) List_head(ptr);
3322 3407
 	this->matches_byquality[match->quality] = match->count;
... ...
@@ -3332,27 +3417,41 @@ revise_position (char querynt, char genomicnt, int mapq, int quality, int signed
3332 3417
       }
3333 3418
       List_free(&(this->list_matches_bymapq));
3334 3419
       this->list_matches_bymapq = (List_T) NULL;
3420
+#endif
3335 3421
 
3336 3422
       this->use_array_p = true;
3423
+
3337 3424
     }
3338 3425
 
3339 3426
     if (this->use_array_p == false) {
3340 3427
       if ((match = find_match_byshift(this->list_matches_byshift,signed_shift)) != NULL) {
3341 3428
 	match->count += 1;
3342 3429
       } else {
3430
+#ifdef USE_MATCHPOOL
3431
+	this->list_matches_byshift = Matchpool_push(this->list_matches_byshift,this->matchpool,signed_shift,mapq,quality);
3432
+#else
3343 3433
 	this->list_matches_byshift = List_push(this->list_matches_byshift,(void *) Match_new(signed_shift,mapq,quality));
3434
+#endif
3344 3435
       }
3345 3436
 
3346 3437
       if ((match = find_match_byquality(this->list_matches_byquality,quality)) != NULL) {
3347 3438
 	match->count += 1;
3348 3439
       } else {
3440
+#ifdef USE_MATCHPOOL
3441
+	this->list_matches_byquality = Matchpool_push(this->list_matches_byquality,this->matchpool,signed_shift,mapq,quality);
3442
+#else
3349 3443
 	this->list_matches_byquality = List_push(this->list_matches_byquality,(void *) Match_new(signed_shift,mapq,quality));
3444
+#endif
3350 3445
       }
3351 3446
       
3352 3447
       if ((match = find_match_bymapq(this->list_matches_bymapq,mapq)) != NULL) {
3353 3448
 	match->count += 1;
3354 3449
       } else {
3450
+#ifdef USE_MATCHPOOL
3451
+	this->list_matches_bymapq = Matchpool_push(this->list_matches_bymapq,this->matchpool,signed_shift,mapq,quality);
3452
+#else
3355 3453
 	this->list_matches_bymapq = List_push(this->list_matches_bymapq,(void *) Match_new(signed_shift,mapq,quality));
3454
+#endif
3356 3455
       }
3357 3456
 
3358 3457
     } else {
... ...
@@ -3398,19 +3497,34 @@ revise_position (char querynt, char genomicnt, int mapq, int quality, int signed
3398 3497
     if ((mismatch = find_mismatch_byshift(this->mismatches_byshift,toupper(querynt),signed_shift)) != NULL) {
3399 3498
       mismatch->count += 1;
3400 3499
     } else {
3500
+#ifdef USE_MISMATCHPOOL
3501
+      this->mismatches_byshift = Mismatchpool_push(this->mismatches_byshift,this->mismatchpool,
3502
+						   toupper(querynt),signed_shift,mapq,quality);
3503
+#else
3401 3504
       this->mismatches_byshift = List_push(this->mismatches_byshift,(void *) Mismatch_new(toupper(querynt),signed_shift,mapq,quality));
3505
+#endif
3402 3506
     }
3403 3507
 
3404 3508
     if ((mismatch = find_mismatch_byquality(this->mismatches_byquality,toupper(querynt),quality)) != NULL) {
3405 3509
       mismatch->count += 1;
3406 3510
     } else {
3511
+#ifdef USE_MISMATCHPOOL
3512
+      this->mismatches_byquality = Mismatchpool_push(this->mismatches_byquality,this->mismatchpool,
3513
+						     toupper(querynt),signed_shift,mapq,quality);
3514
+#else
3407 3515
       this->mismatches_byquality = List_push(this->mismatches_byquality,(void *) Mismatch_new(toupper(querynt),signed_shift,mapq,quality));
3516
+#endif
3408 3517
     }
3409 3518
 
3410 3519
     if ((mismatch = find_mismatch_bymapq(this->mismatches_bymapq,toupper(querynt),mapq)) != NULL) {
3411 3520
       mismatch->count += 1;
3412 3521
     } else {
3522
+#ifdef USE_MISMATCHPOOL
3523
+      this->mismatches_bymapq = Mismatchpool_push(this->mismatches_bymapq,this->mismatchpool,
3524
+	toupper(querynt),signed_shift,mapq,quality);
3525
+#else
3413 3526
       this->mismatches_bymapq = List_push(this->mismatches_bymapq,(void *) Mismatch_new(toupper(querynt),signed_shift,mapq,quality));
3527
+#endif
3414 3528
     }
3415 3529
 
3416 3530
     quality_counts_mismatch[quality] += 1;
3417 3531
new file mode 100644
... ...
@@ -0,0 +1,17 @@
1
+#ifndef MATCHDEF_INCLUDED
2
+#define MATCHDEF_INCLUDED
3
+
4
+
5
+#define T Match_T
6
+typedef struct T *T;
7
+
8
+struct T {
9
+  int shift;			/* Used to record shifts */
10
+  int mapq;
11
+  char quality;
12
+  long int count;
13
+};
14
+
15
+
16
+#undef T
17
+#endif
0 18
new file mode 100644
... ...
@@ -0,0 +1,225 @@
1
+static char rcsid[] = "$Id: matchpool.c 134973 2014-05-03 01:11:47Z twu $";
2
+#ifdef HAVE_CONFIG_H
3
+#include <config.h>
4
+#endif
5
+
6
+#include "matchpool.h"
7
+#include <stdio.h>
8
+#include <stdlib.h>
9
+#include <string.h>		/* For memcpy */
10
+#include "assert.h"
11
+#include "mem.h"
12
+#include "matchdef.h"
13
+#include "listdef.h"
14
+
15
+
16
+#define CHUNKSIZE 1000
17
+
18
+
19
+#ifdef DEBUG
20
+#define debug(x) x
21
+#else
22
+#define debug(x)
23
+#endif
24
+
25
+/* For mechanics of memory allocation and deallocation */
26
+#ifdef DEBUG1
27
+#define debug1(x) x
28
+#else
29
+#define debug1(x)
30
+#endif
31
+
32
+/* For popping */
33
+#ifdef DEBUG2
34
+#define debug2(x) x
35
+#else
36
+#define debug2(x)
37
+#endif
38
+
39
+
40
+#define T Matchpool_T
41
+struct T {
42
+  int nobjects;
43
+  int objectctr;
44
+  struct Match_T *objectptr;
45
+  List_T objectchunks;
46
+
47
+  int nlistcells;
48
+  int listcellctr;
49
+  struct List_T *listcellptr;
50
+  List_T listcellchunks;
51
+};
52
+
53
+void
54
+Matchpool_free (T *old) {
55
+  List_T p;
56
+  struct Match_T *objectptr;
57
+  struct List_T *listcellptr;
58
+
59
+  if (*old) {
60
+    for (p = (*old)->objectchunks; p != NULL; p = List_next(p)) {
61
+      objectptr = (struct Match_T *) List_head(p);
62
+      FREE(objectptr);
63
+    }
64
+    List_free(&(*old)->objectchunks);
65
+    for (p = (*old)->listcellchunks; p != NULL; p = List_next(p)) {
66
+      listcellptr = (struct List_T *) List_head(p);
67
+      FREE(listcellptr);
68
+    }
69
+    List_free(&(*old)->listcellchunks);
70
+    FREE(*old);
71
+  }
72
+  return;
73
+}
74
+
75
+void
76
+Matchpool_free_memory (T this) {
77
+  List_T p;
78
+  struct Match_T *objectptr;
79
+  struct List_T *listcellptr;
80
+
81
+  for (p = this->objectchunks; p != NULL; p = List_next(p)) {
82
+    objectptr = (struct Match_T *) List_head(p);
83
+    FREE(objectptr);
84
+  }
85
+  List_free(&this->objectchunks);
86
+  for (p = this->listcellchunks; p != NULL; p = List_next(p)) {
87
+    listcellptr = (struct List_T *) List_head(p);
88
+    FREE(listcellptr);
89
+  }
90
+  List_free(&this->listcellchunks);
91
+
92
+  this->nobjects = 0;
93
+  this->objectctr = 0;
94
+  this->objectchunks = NULL;
95
+  /* this->objectptr = add_new_objectchunk(this); */
96
+
97
+  this->nlistcells = 0;
98
+  this->listcellctr = 0;
99
+  this->listcellchunks = NULL;
100
+  /* this->listcellptr = add_new_listcellchunk(this); */
101
+
102
+  return;
103
+}
104
+
105
+
106
+void
107
+Matchpool_report_memory (T this) {
108
+  printf("Matchpool has %d pairchunks and %d listcellchunks\n",
109
+	 List_length(this->objectchunks),List_length(this->listcellchunks));
110
+  return;
111
+}
112
+
113
+
114
+static struct Match_T *
115
+add_new_objectchunk (T this) {
116
+  struct Match_T *chunk;