This is an automated email from the git hooks/post-receive script. tille pushed a commit to branch master in repository freebayes.
commit 150a1f16a337a1ab4bc093c74bfdd6aafa6f9d41 Author: Andreas Tille <[email protected]> Date: Sat Sep 2 14:00:23 2017 +0200 Mass commit of freebayes 1.1.0 packaging, the Git archive is quite spoiled but I do not think that the history is really interesting. --- debian/README.source | 11 + debian/bamleftalign.1 | 27 -- debian/changelog | 6 + debian/control | 9 +- debian/copyright | 428 +------------------ debian/createmanpages | 28 ++ debian/freebayes.1 | 459 --------------------- debian/manpages | 1 - debian/patches/fix_test.patch | 8 + debian/patches/series | 3 + debian/patches/use_debian_packaged_bamtools.patch | 68 +-- .../patches/use_debian_packaged_libjsoncpp.patch | 17 + debian/patches/use_debian_packaged_seqlib.patch | 87 ++++ debian/patches/use_debian_packaged_vcflib.patch | 271 ++---------- debian/patches/vcffirstheader.patch | 29 ++ debian/rules | 6 +- debian/test-simple-bash/lib/test-simple.bash | 110 +++++ debian/test-simple-bash/test/basics.t | 26 ++ debian/test-simple-bash/test/doc.t | 15 + debian/test-simple-bash/test/no-label.t | 25 ++ 20 files changed, 444 insertions(+), 1190 deletions(-) diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..26e4dc4 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,11 @@ +To run the test suite some bash testing framework was used +bu upstream as Git submodules. For the Git packaging these +were downloaded separately + +Files: debian/bash-tap/* + Obtained from + https://github.com/illusori/bash-tap + +Files: debian/test-simple-bash/* + Obtained from + https://github.com/ingydotnet/test-simple-bash/tree/master/lib diff --git a/debian/bamleftalign.1 b/debian/bamleftalign.1 deleted file mode 100644 index db395a7..0000000 --- a/debian/bamleftalign.1 +++ /dev/null @@ -1,27 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH BAMLEFTALIGN "1" "January 2017" "bamleftalign 1.0.2" "User Commands" -.SH NAME -bamleftalign \- Left\-aligns and merges the insertions and deletions in all alignments -.SH SYNOPSIS -[BAM data stream] | \fBbamleftalign\fR [options] -.SH DESCRIPTION -Left\-aligns and merges the insertions and deletions in all alignments in stdin. -Iterates until each alignment is stable through a left\-realignment step. -.SH OPTIONS -.TP -\fB\-f\fR \fB\-\-fasta\-reference\fR FILE -FASTA reference file to use for realignment (required) -.TP -\fB\-d\fR \fB\-\-debug\fR -Print debugging information about realignment process -.TP -\fB\-s\fR \fB\-\-suppress\-output\fR -Don't write BAM output stream (for debugging) -.TP -\fB\-m\fR \fB\-\-max\-iterations\fR N -Iterate the left\-realignment no more than this many times -.TP -\fB\-c\fR \fB\-\-compressed\fR -Write compressed BAM on stdout, default is uncompressed -.SH AUTHOR -This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program. diff --git a/debian/changelog b/debian/changelog index eaeaad5..8cf611a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +freebayes (1.1.0-1) UNRELEASED; urgency=low + + * New upstream version + + -- Andreas Tille <[email protected]> Tue, 08 Nov 2016 11:40:28 +0100 + freebayes (1.0.2-1) unstable; urgency=low * Initial packaging (Closes: #851306) diff --git a/debian/control b/debian/control index 301577b..99d8397 100644 --- a/debian/control +++ b/debian/control @@ -7,12 +7,16 @@ Priority: optional Build-Depends: debhelper (>= 9), cmake, pkg-config, + python, zlib1g-dev, libbamtools-dev, - libvcflib-dev, + libvcflib-dev (>= 1.0.0~rc1+dfsg1-4), libtabixpp-dev, + libseqlib-dev, bc, - samtools + samtools, + parallel, + libvcflib-tools Standards-Version: 3.9.8 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/freebayes.git Vcs-Git: https://anonscm.debian.org/git/debian-med/freebayes.git @@ -22,6 +26,7 @@ Package: freebayes Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: parallel Description: Bayesian haplotype-based polymorphism discovery and genotyping FreeBayes is a Bayesian genetic variant detector designed to find small polymorphisms, specifically SNPs (single-nucleotide diff --git a/debian/copyright b/debian/copyright index 06830b0..6a31d5e 100644 --- a/debian/copyright +++ b/debian/copyright @@ -9,6 +9,14 @@ License: MIT Files: debian/bash-tap/* Copyright: 2012-2016 Sam Graham License: MIT +Comment: Files obtained from + https://github.com/illusori/bash-tap + +Files: debian/test-simple-bash +Copyright: 2013 Ingy.Net +License: MIT +Comment: File obtained from + https://github.com/ingydotnet/test-simple-bash/tree/master/lib Files: ttmath/* Copyright: 2006-2012, Tomasz Sowa @@ -39,426 +47,6 @@ License: BSD-3-clause ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Files: src/fastlz.* -Copyright: 2005-2007 Ariya Hidayat <[email protected]> -License: MIT - -Files: paper/genome_research.bst -Copyright: 1994-2007 Patrick W Daly -License: LPPL-1+ - The LaTeX Project Public License - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - . - LPPL Version 1.3c 2008-05-04 - . - PREAMBLE - ======== - . - The LaTeX Project Public License (LPPL) is the primary license under - which the LaTeX kernel and the base LaTeX packages are distributed. - . - You may use this license for any work of which you hold the copyright - and which you wish to distribute. This license may be particularly - suitable if your work is TeX-related (such as a LaTeX package), but - it is written in such a way that you can use it even if your work is - unrelated to TeX. - . - The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', - below, gives instructions, examples, and recommendations for authors - who are considering distributing their works under this license. - . - This license gives conditions under which a work may be distributed - and modified, as well as conditions under which modified versions of - that work may be distributed. - . - We, the LaTeX3 Project, believe that the conditions below give you - the freedom to make and distribute modified versions of your work - that conform with whatever technical specifications you wish while - maintaining the availability, integrity, and reliability of - that work. If you do not see how to achieve your goal while - meeting these conditions, then read the document `cfgguide.tex' - and `modguide.tex' in the base LaTeX distribution for suggestions. - . - . - DEFINITIONS - =========== - . - In this license document the following terms are used: - . - `Work' - Any work being distributed under this License. - . - `Derived Work' - Any work that under any applicable law is derived from the Work. - . - `Modification' - Any procedure that produces a Derived Work under any applicable - law -- for example, the production of a file containing an - original file associated with the Work or a significant portion of - such a file, either verbatim or with modifications and/or - translated into another language. - . - `Modify' - To apply any procedure that produces a Derived Work under any - applicable law. - . - `Distribution' - Making copies of the Work available from one person to another, in - whole or in part. Distribution includes (but is not limited to) - making any electronic components of the Work accessible by - file transfer protocols such as FTP or HTTP or by shared file - systems such as Sun's Network File System (NFS). - . - `Compiled Work' - A version of the Work that has been processed into a form where it - is directly usable on a computer system. This processing may - include using installation facilities provided by the Work, - transformations of the Work, copying of components of the Work, or - other activities. Note that modification of any installation - facilities provided by the Work constitutes modification of the Work. - . - `Current Maintainer' - A person or persons nominated as such within the Work. If there is - no such explicit nomination then it is the `Copyright Holder' under - any applicable law. - . - `Base Interpreter' - A program or process that is normally needed for running or - interpreting a part or the whole of the Work. - . - A Base Interpreter may depend on external components but these - are not considered part of the Base Interpreter provided that each - external component clearly identifies itself whenever it is used - interactively. Unless explicitly specified when applying the - license to the Work, the only applicable Base Interpreter is a - `LaTeX-Format' or in the case of files belonging to the - `LaTeX-format' a program implementing the `TeX language'. - . - . - . - CONDITIONS ON DISTRIBUTION AND MODIFICATION - =========================================== - . - 1. Activities other than distribution and/or modification of the Work - are not covered by this license; they are outside its scope. In - particular, the act of running the Work is not restricted and no - requirements are made concerning any offers of support for the Work. - . - 2. You may distribute a complete, unmodified copy of the Work as you - received it. Distribution of only part of the Work is considered - modification of the Work, and no right to distribute such a Derived - Work may be assumed under the terms of this clause. - . - 3. You may distribute a Compiled Work that has been generated from a - complete, unmodified copy of the Work as distributed under Clause 2 - above, as long as that Compiled Work is distributed in such a way that - the recipients may install the Compiled Work on their system exactly - as it would have been installed if they generated a Compiled Work - directly from the Work. - . - 4. If you are the Current Maintainer of the Work, you may, without - restriction, modify the Work, thus creating a Derived Work. You may - also distribute the Derived Work without restriction, including - Compiled Works generated from the Derived Work. Derived Works - distributed in this manner by the Current Maintainer are considered to - be updated versions of the Work. - . - 5. If you are not the Current Maintainer of the Work, you may modify - your copy of the Work, thus creating a Derived Work based on the Work, - and compile this Derived Work, thus creating a Compiled Work based on - the Derived Work. - . - 6. If you are not the Current Maintainer of the Work, you may - distribute a Derived Work provided the following conditions are met - for every component of the Work unless that component clearly states - in the copyright notice that it is exempt from that condition. Only - the Current Maintainer is allowed to add such statements of exemption - to a component of the Work. - . - a. If a component of this Derived Work can be a direct replacement - for a component of the Work when that component is used with the - Base Interpreter, then, wherever this component of the Work - identifies itself to the user when used interactively with that - Base Interpreter, the replacement component of this Derived Work - clearly and unambiguously identifies itself as a modified version - of this component to the user when used interactively with that - Base Interpreter. - . - b. Every component of the Derived Work contains prominent notices - detailing the nature of the changes to that component, or a - prominent reference to another file that is distributed as part - of the Derived Work and that contains a complete and accurate log - of the changes. - . - c. No information in the Derived Work implies that any persons, - including (but not limited to) the authors of the original version - of the Work, provide any support, including (but not limited to) - the reporting and handling of errors, to recipients of the - Derived Work unless those persons have stated explicitly that - they do provide such support for the Derived Work. - . - d. You distribute at least one of the following with the Derived Work: - . - 1. A complete, unmodified copy of the Work; - if your distribution of a modified component is made by - offering access to copy the modified component from a - designated place, then offering equivalent access to copy - the Work from the same or some similar place meets this - condition, even though third parties are not compelled to - copy the Work along with the modified component; - . - 2. Information that is sufficient to obtain a complete, - unmodified copy of the Work. - . - 7. If you are not the Current Maintainer of the Work, you may - distribute a Compiled Work generated from a Derived Work, as long as - the Derived Work is distributed to all recipients of the Compiled - Work, and as long as the conditions of Clause 6, above, are met with - regard to the Derived Work. - . - 8. The conditions above are not intended to prohibit, and hence do not - apply to, the modification, by any method, of any component so that it - becomes identical to an updated version of that component of the Work as - it is distributed by the Current Maintainer under Clause 4, above. - . - 9. Distribution of the Work or any Derived Work in an alternative - format, where the Work or that Derived Work (in whole or in part) is - then produced by applying some process to that format, does not relax or - nullify any sections of this license as they pertain to the results of - applying that process. - . - 10. a. A Derived Work may be distributed under a different license - provided that license itself honors the conditions listed in - Clause 6 above, in regard to the Work, though it does not have - to honor the rest of the conditions in this license. - . - b. If a Derived Work is distributed under a different license, that - Derived Work must provide sufficient documentation as part of - itself to allow each recipient of that Derived Work to honor the - restrictions in Clause 6 above, concerning changes from the Work. - . - 11. This license places no restrictions on works that are unrelated to - the Work, nor does this license place any restrictions on aggregating - such works with the Work by any means. - . - 12. Nothing in this license is intended to, or may be used to, prevent - complete compliance by all parties with all applicable laws. - . - . - NO WARRANTY - =========== - . - There is no warranty for the Work. Except when otherwise stated in - writing, the Copyright Holder provides the Work `as is', without - warranty of any kind, either expressed or implied, including, but not - limited to, the implied warranties of merchantability and fitness for a - particular purpose. The entire risk as to the quality and performance - of the Work is with you. Should the Work prove defective, you assume - the cost of all necessary servicing, repair, or correction. - . - In no event unless required by applicable law or agreed to in writing - will The Copyright Holder, or any author named in the components of the - Work, or any other party who may distribute and/or modify the Work as - permitted above, be liable to you for damages, including any general, - special, incidental or consequential damages arising out of any use of - the Work or out of inability to use the Work (including, but not limited - to, loss of data, data being rendered inaccurate, or losses sustained by - anyone as a result of any failure of the Work to operate with any other - programs), even if the Copyright Holder or said author or said other - party has been advised of the possibility of such damages. - . - . - MAINTENANCE OF THE WORK - ======================= - . - The Work has the status `author-maintained' if the Copyright Holder - explicitly and prominently states near the primary copyright notice in - the Work that the Work can only be maintained by the Copyright Holder - or simply that it is `author-maintained'. - . - The Work has the status `maintained' if there is a Current Maintainer - who has indicated in the Work that they are willing to receive error - reports for the Work (for example, by supplying a valid e-mail - address). It is not required for the Current Maintainer to acknowledge - or act upon these error reports. - . - The Work changes from status `maintained' to `unmaintained' if there - is no Current Maintainer, or the person stated to be Current - Maintainer of the work cannot be reached through the indicated means - of communication for a period of six months, and there are no other - significant signs of active maintenance. - . - You can become the Current Maintainer of the Work by agreement with - any existing Current Maintainer to take over this role. - . - If the Work is unmaintained, you can become the Current Maintainer of - the Work through the following steps: - . - 1. Make a reasonable attempt to trace the Current Maintainer (and - the Copyright Holder, if the two differ) through the means of - an Internet or similar search. - . - 2. If this search is successful, then enquire whether the Work - is still maintained. - . - a. If it is being maintained, then ask the Current Maintainer - to update their communication data within one month. - . - b. If the search is unsuccessful or no action to resume active - maintenance is taken by the Current Maintainer, then announce - within the pertinent community your intention to take over - maintenance. (If the Work is a LaTeX work, this could be - done, for example, by posting to comp.text.tex.) - . - 3a. If the Current Maintainer is reachable and agrees to pass - maintenance of the Work to you, then this takes effect - immediately upon announcement. - . - b. If the Current Maintainer is not reachable and the Copyright - Holder agrees that maintenance of the Work be passed to you, - then this takes effect immediately upon announcement. - . - 4. If you make an `intention announcement' as described in 2b. above - and after three months your intention is challenged neither by - the Current Maintainer nor by the Copyright Holder nor by other - people, then you may arrange for the Work to be changed so as - to name you as the (new) Current Maintainer. - . - 5. If the previously unreachable Current Maintainer becomes - reachable once more within three months of a change completed - under the terms of 3b) or 4), then that Current Maintainer must - become or remain the Current Maintainer upon request provided - they then update their communication data within one month. - . - A change in the Current Maintainer does not, of itself, alter the fact - that the Work is distributed under the LPPL license. - . - If you become the Current Maintainer of the Work, you should - immediately provide, within the Work, a prominent and unambiguous - statement of your status as Current Maintainer. You should also - announce your new status to the same pertinent community as - in 2b) above. - . - . - WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE - ====================================================== - . - This section contains important instructions, examples, and - recommendations for authors who are considering distributing their - works under this license. These authors are addressed as `you' in - this section. - . - Choosing This License or Another License - ---------------------------------------- - . - If for any part of your work you want or need to use *distribution* - conditions that differ significantly from those in this license, then - do not refer to this license anywhere in your work but, instead, - distribute your work under a different license. You may use the text - of this license as a model for your own license, but your license - should not refer to the LPPL or otherwise give the impression that - your work is distributed under the LPPL. - . - The document `modguide.tex' in the base LaTeX distribution explains - the motivation behind the conditions of this license. It explains, - for example, why distributing LaTeX under the GNU General Public - License (GPL) was considered inappropriate. Even if your work is - unrelated to LaTeX, the discussion in `modguide.tex' may still be - relevant, and authors intending to distribute their works under any - license are encouraged to read it. - . - A Recommendation on Modification Without Distribution - ----------------------------------------------------- - . - It is wise never to modify a component of the Work, even for your own - personal use, without also meeting the above conditions for - distributing the modified component. While you might intend that such - modifications will never be distributed, often this will happen by - accident -- you may forget that you have modified that component; or - it may not occur to you when allowing others to access the modified - version that you are thus distributing it and violating the conditions - of this license in ways that could have legal implications and, worse, - cause problems for the community. It is therefore usually in your - best interest to keep your copy of the Work identical with the public - one. Many works provide ways to control the behavior of that work - without altering any of its licensed components. - . - How to Use This License - ----------------------- - . - To use this license, place in each of the components of your work both - an explicit copyright notice including your name and the year the work - was authored and/or last substantially modified. Include also a - statement that the distribution and/or modification of that - component is constrained by the conditions in this license. - . - Here is an example of such a notice and statement: - . - %% pig.dtx - %% Copyright 2005 M. Y. Name - % - % This work may be distributed and/or modified under the - % conditions of the LaTeX Project Public License, either version 1.3 - % of this license or (at your option) any later version. - % The latest version of this license is in - % http://www.latex-project.org/lppl.txt - % and version 1.3 or later is part of all distributions of LaTeX - % version 2005/12/01 or later. - % - % This work has the LPPL maintenance status `maintained'. - % - % The Current Maintainer of this work is M. Y. Name. - % - % This work consists of the files pig.dtx and pig.ins - % and the derived file pig.sty. - . - Given such a notice and statement in a file, the conditions - given in this license document would apply, with the `Work' referring - to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being - generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' - referring to any `LaTeX-Format', and both `Copyright Holder' and - `Current Maintainer' referring to the person `M. Y. Name'. - . - If you do not want the Maintenance section of LPPL to apply to your - Work, change `maintained' above into `author-maintained'. - However, we recommend that you use `maintained', as the Maintenance - section was added in order to ensure that your Work remains useful to - the community even when you can no longer maintain and support it - yourself. - . - Derived Works That Are Not Replacements - --------------------------------------- - . - Several clauses of the LPPL specify means to provide reliability and - stability for the user community. They therefore concern themselves - with the case that a Derived Work is intended to be used as a - (compatible or incompatible) replacement of the original Work. If - this is not the case (e.g., if a few lines of code are reused for a - completely different task), then clauses 6b and 6d shall not apply. - . - . - Important Recommendations - ------------------------- - . - Defining What Constitutes the Work - . - The LPPL requires that distributions of the Work contain all the - files of the Work. It is therefore important that you provide a - way for the licensee to determine which files constitute the Work. - This could, for example, be achieved by explicitly listing all the - files of the Work near the copyright notice of each file or by - using a line such as: - . - % This work consists of all files listed in manifest.txt. - . - in that place. In the absence of an unequivocal list it might be - impossible for the licensee to determine what is considered by you - to comprise the Work and, in such a case, the licensee would be - entitled to make reasonable conjectures as to which files comprise - the Work. -Comment: The file is LPPL version 1 or later. Since the license at the - spceified location is now 1.3c we take "or later" option. - Files: debian/* Copyright: 2014 Brad Chapman <[email protected]> License: MIT diff --git a/debian/createmanpages b/debian/createmanpages new file mode 100755 index 0000000..edc2633 --- /dev/null +++ b/debian/createmanpages @@ -0,0 +1,28 @@ +#!/bin/sh +MANDIR=debian +mkdir -p $MANDIR + +VERSION=`dpkg-parsechangelog | awk '/^Version:/ {print $2}' | sed -e 's/^[0-9]*://' -e 's/-.*//' -e 's/[+~]dfsg$//'` + +AUTHOR=".SH AUTHOR\nThis manpage was written by $DEBFULLNAME for the Debian distribution and +can be used for any other usage of the program. +" + +progname=bamleftalign +help2man --no-info --no-discard-stderr \ + --name='<optional description of the program>' \ + --version-string="$VERSION" ${progname} > $MANDIR/${progname}.1 +echo $AUTHOR >> $MANDIR/${progname}.1 + +progname=freebayes +help2man --no-info --no-discard-stderr --help-option=" " \ + --name='<optional description of the program>' \ + --version-string="$VERSION" ${progname} > $MANDIR/${progname}.1 +echo $AUTHOR >> $MANDIR/${progname}.1 + +cat <<EOT +Please enhance the help2man output. +The following web page might be helpful in doing so: + http://liw.fi/manpages/ +EOT + diff --git a/debian/freebayes.1 b/debian/freebayes.1 deleted file mode 100644 index 70b8157..0000000 --- a/debian/freebayes.1 +++ /dev/null @@ -1,459 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH FREEBAYES "1" "January 2017" "freebayes 1.0.2" "User Commands" -.SH NAME -freebayes \- Bayesian haplotype\-based polymorphism discovery -.SH SYNOPSIS -.B freebayes -\fB\-f\fR [REFERENCE] [OPTIONS] [BAM FILES] >[OUTPUT] -.SH DESCRIPTION -FreeBayes is a Bayesian genetic variant detector designed to find -small polymorphisms, specifically SNPs (single-nucleotide -polymorphisms), indels (insertions and deletions), MNPs -(multi-nucleotide polymorphisms), and complex events (composite -insertion and substitution events) smaller than the length of a -short-read sequencing alignment. -.SS Overview: -To call variants from aligned short\-read sequencing data, supply BAM files and -a reference. FreeBayes will provide VCF output on standard out describing SNPs, -indels, and complex variants in samples in the input alignments. -.PP -By default, FreeBayes will consider variants supported by at least 2 -observations in a single sample (\fB\-C\fR) and also by at least 20% of the reads from -a single sample (\fB\-F\fR). These settings are suitable to low to high depth -sequencing in haploid and diploid samples, but users working with polyploid or -pooled samples may wish to adjust them depending on the characteristics of -their sequencing data. -.IP -FreeBayes is capable of calling variant haplotypes shorter than a read length -where multiple polymorphisms segregate on the same read. The maximum distance -between polymorphisms phased in this way is determined by the -\fB\-\-max\-complex\-gap\fR, which defaults to 3bp. In practice, this can comfortably be -set to half the read length. -.IP -Ploidy may be set to any level (\fB\-p\fR), but by default all samples are assumed to -be diploid. FreeBayes can model per\-sample and per\-region variation in -copy\-number (\fB\-A\fR) using a copy\-number variation map. -.IP -FreeBayes can act as a frequency\-based pooled caller and describe variants -and haplotypes in terms of observation frequency rather than called genotypes. -To do so, use \fB\-\-pooled\-continuous\fR and set input filters to a suitable level. -Allele observation counts will be described by AO and RO fields in the VCF output. -.SH Examples -.TP -# call variants assuming a diploid sample -freebayes \fB\-f\fR ref.fa aln.bam >var.vcf -.TP -# call variants assuming a diploid sample, providing gVCF output -freebayes \fB\-f\fR ref.fa \fB\-\-gvcf\fR aln.bam >var.gvcf -.TP -# require at least 5 supporting observations to consider a variant -freebayes \fB\-f\fR ref.fa \fB\-C\fR 5 aln.bam >var.vcf -.TP -# use a different ploidy -freebayes \fB\-f\fR ref.fa \fB\-p\fR 4 aln.bam >var.vcf -.TP -# assume a pooled sample with a known number of genome copies -freebayes \fB\-f\fR ref.fa \fB\-p\fR 20 \fB\-\-pooled\-discrete\fR aln.bam >var.vcf -.TP -# generate frequency\-based calls for all variants passing input thresholds -freebayes \fB\-f\fR ref.fa \fB\-F\fR 0.01 \fB\-C\fR 1 \fB\-\-pooled\-continuous\fR aln.bam >var.vcf -.TP -# use an input VCF (bgzipped + tabix indexed) to force calls at particular alleles -freebayes \fB\-f\fR ref.fa \-@ in.vcf.gz aln.bam >var.vcf -.TP -# generate long haplotype calls over known variants -freebayes \fB\-f\fR ref.fa \fB\-\-haplotype\-basis\-alleles\fR in.vcf.gz \fB\-\-haplotype\-length\fR 50 aln.bam -.TP -# naive variant calling: simply annotate observation counts of SNPs and indels -freebayes \fB\-f\fR ref.fa \fB\-\-haplotype\-length\fR 0 \fB\-\-min\-alternate\-count\fR 1 \fB\-\-min\-alternate\-fraction\fR 0 \fB\-\-pooled\-continuous\fR \fB\-\-report\-monomorphic\fR >var.vcf -.SH OPTIONS -.TP -\fB\-h\fR \fB\-\-help\fR -Prints this help dialog. -.TP -\fB\-\-version\fR -Prints the release number and the git commit id. -.SS input -.TP -\fB\-b\fR \fB\-\-bam\fR FILE -Add FILE to the set of BAM files to be analyzed. -.HP -\fB\-L\fR \fB\-\-bam\-list\fR FILE -.IP -A file containing a list of BAM files to be analyzed. -.TP -\fB\-c\fR \fB\-\-stdin\fR -Read BAM input on stdin. -.HP -\fB\-f\fR \fB\-\-fasta\-reference\fR FILE -.IP -Use FILE as the reference sequence for analysis. -An index file (FILE.fai) will be created if none exists. -If neither \fB\-\-targets\fR nor \fB\-\-region\fR are specified, FreeBayes -will analyze every position in this reference. -.HP -\fB\-t\fR \fB\-\-targets\fR FILE -.IP -Limit analysis to targets listed in the BED\-format FILE. -.HP -\fB\-r\fR \fB\-\-region\fR <chrom>:<start_position>\-<end_position> -.IP -Limit analysis to the specified region, 0\-base coordinates, -end_position not included (same as BED format). -Either '\-' or '..' maybe used as a separator. -.HP -\fB\-s\fR \fB\-\-samples\fR FILE -.IP -Limit analysis to samples listed (one per line) in the FILE. -By default FreeBayes will analyze all samples in its input -BAM files. -.HP -\fB\-\-populations\fR FILE -.IP -Each line of FILE should list a sample and a population which -it is part of. The population\-based bayesian inference model -will then be partitioned on the basis of the populations. -.HP -\fB\-A\fR \fB\-\-cnv\-map\fR FILE -.IP -Read a copy number map from the BED file FILE, which has -the format: -.IP -reference sequence, start, end, sample name, copy number -.IP -\&... for each region in each sample which does not have the -default copy number as set by \fB\-\-ploidy\fR. -.SS output -.TP -\fB\-v\fR \fB\-\-vcf\fR FILE -Output VCF\-format results to FILE. (default: stdout) -.HP -\fB\-\-gvcf\fR -.IP -Write gVCF output, which indicates coverage in uncalled regions. -.HP -\fB\-\-gvcf\-chunk\fR NUM -.IP -When writing gVCF output emit a record for every NUM bases. -.HP -\-@ \fB\-\-variant\-input\fR VCF -.IP -Use variants reported in VCF file as input to the algorithm. -Variants in this file will included in the output even if -there is not enough support in the data to pass input filters. -.HP -\fB\-l\fR \fB\-\-only\-use\-input\-alleles\fR -.IP -Only provide variant calls and genotype likelihoods for sites -and alleles which are provided in the VCF input, and provide -output in the VCF for all input alleles, not just those which -have support in the data. -.HP -\fB\-\-haplotype\-basis\-alleles\fR VCF -.IP -When specified, only variant alleles provided in this input -VCF will be used for the construction of complex or haplotype -alleles. -.HP -\fB\-\-report\-all\-haplotype\-alleles\fR -.IP -At sites where genotypes are made over haplotype alleles, -provide information about all alleles in output, not only -those which are called. -.HP -\fB\-\-report\-monomorphic\fR -.IP -Report even loci which appear to be monomorphic, and report all -considered alleles, even those which are not in called genotypes. -Loci which do not have any potential alternates have '.' for ALT. -.TP -\fB\-P\fR \fB\-\-pvar\fR N -Report sites if the probability that there is a polymorphism -at the site is greater than N. default: 0.0. Note that postfiltering is generally recommended over the use of this parameter. -.SS population model -.TP -\fB\-T\fR \fB\-\-theta\fR N -The expected mutation rate or pairwise nucleotide diversity -among the population under analysis. This serves as the -single parameter to the Ewens Sampling Formula prior model -default: 0.001 -.TP -\fB\-p\fR \fB\-\-ploidy\fR N -Sets the default ploidy for the analysis to N. default: 2 -.HP -\fB\-J\fR \fB\-\-pooled\-discrete\fR -.IP -Assume that samples result from pooled sequencing. -Model pooled samples using discrete genotypes across pools. -When using this flag, set \fB\-\-ploidy\fR to the number of -alleles in each sample or use the \fB\-\-cnv\-map\fR to define -per\-sample ploidy. -.HP -\fB\-K\fR \fB\-\-pooled\-continuous\fR -.IP -Output all alleles which pass input filters, regardles of -genotyping outcome or model. -.SS reference allele -.HP -\fB\-Z\fR \fB\-\-use\-reference\-allele\fR -.IP -This flag includes the reference allele in the analysis as -if it is another sample from the same population. -.HP -\fB\-\-reference\-quality\fR MQ,BQ -.IP -Assign mapping quality of MQ to the reference allele at each -site and base quality of BQ. default: 100,60 -.SS allele scope -.TP -\fB\-I\fR \fB\-\-no\-snps\fR -Ignore SNP alleles. -.TP -\fB\-i\fR \fB\-\-no\-indels\fR -Ignore insertion and deletion alleles. -.TP -\fB\-X\fR \fB\-\-no\-mnps\fR -Ignore multi\-nuceotide polymorphisms, MNPs. -.HP -\fB\-u\fR \fB\-\-no\-complex\fR Ignore complex events (composites of other classes). -.HP -\fB\-n\fR \fB\-\-use\-best\-n\-alleles\fR N -.IP -Evaluate only the best N SNP alleles, ranked by sum of -supporting quality scores. (Set to 0 to use all; default: all) -.HP -\fB\-E\fR \fB\-\-max\-complex\-gap\fR N -.HP -\fB\-\-haplotype\-length\fR N -.IP -Allow haplotype calls with contiguous embedded matches of up -to this length. (default: 3) -.HP -\fB\-\-min\-repeat\-size\fR N -.IP -When assembling observations across repeats, require the total repeat -length at least this many bp. (default: 5) -.HP -\fB\-\-min\-repeat\-entropy\fR N -.IP -To detect interrupted repeats, build across sequence until it has -entropy > N bits per bp. (default: 0, off) -.HP -\fB\-\-no\-partial\-observations\fR -.IP -Exclude observations which do not fully span the dynamically\-determined -detection window. (default, use all observations, dividing partial -support across matching haplotypes when generating haplotypes.) -.SS indel realignment -.HP -\fB\-O\fR \fB\-\-dont\-left\-align\-indels\fR -.IP -Turn off left\-alignment of indels, which is enabled by default. -.SS input filters -.HP -\fB\-4\fR \fB\-\-use\-duplicate\-reads\fR -.IP -Include duplicate\-marked alignments in the analysis. -default: exclude duplicates marked as such in alignments -.HP -\fB\-m\fR \fB\-\-min\-mapping\-quality\fR Q -.IP -Exclude alignments from analysis if they have a mapping -quality less than Q. default: 1 -.HP -\fB\-q\fR \fB\-\-min\-base\-quality\fR Q -.IP -Exclude alleles from analysis if their supporting base -quality is less than Q. default: 0 -.HP -\fB\-R\fR \fB\-\-min\-supporting\-allele\-qsum\fR Q -.IP -Consider any allele in which the sum of qualities of supporting -observations is at least Q. default: 0 -.HP -\fB\-Y\fR \fB\-\-min\-supporting\-mapping\-qsum\fR Q -.IP -Consider any allele in which and the sum of mapping qualities of -supporting reads is at least Q. default: 0 -.HP -\fB\-Q\fR \fB\-\-mismatch\-base\-quality\-threshold\fR Q -.IP -Count mismatches toward \fB\-\-read\-mismatch\-limit\fR if the base -quality of the mismatch is >= Q. default: 10 -.HP -\fB\-U\fR \fB\-\-read\-mismatch\-limit\fR N -.IP -Exclude reads with more than N mismatches where each mismatch -has base quality >= mismatch\-base\-quality\-threshold. -default: ~unbounded -.HP -\fB\-z\fR \fB\-\-read\-max\-mismatch\-fraction\fR N -.IP -Exclude reads with more than N [0,1] fraction of mismatches where -each mismatch has base quality >= mismatch\-base\-quality\-threshold -default: 1.0 -.HP -\-$ \fB\-\-read\-snp\-limit\fR N -.IP -Exclude reads with more than N base mismatches, ignoring gaps -with quality >= mismatch\-base\-quality\-threshold. -default: ~unbounded -.HP -\fB\-e\fR \fB\-\-read\-indel\-limit\fR N -.IP -Exclude reads with more than N separate gaps. -default: ~unbounded -.TP -\fB\-0\fR \fB\-\-standard\-filters\fR -Use stringent input base and mapping quality filters -.IP -Equivalent to \fB\-m\fR 30 \fB\-q\fR 20 \fB\-R\fR 0 \fB\-S\fR 0 -.HP -\fB\-F\fR \fB\-\-min\-alternate\-fraction\fR N -.IP -Require at least this fraction of observations supporting -an alternate allele within a single individual in the -in order to evaluate the position. default: 0.2 -.HP -\fB\-C\fR \fB\-\-min\-alternate\-count\fR N -.IP -Require at least this count of observations supporting -an alternate allele within a single individual in order -to evaluate the position. default: 2 -.HP -\fB\-3\fR \fB\-\-min\-alternate\-qsum\fR N -.IP -Require at least this sum of quality of observations supporting -an alternate allele within a single individual in order -to evaluate the position. default: 0 -.HP -\fB\-G\fR \fB\-\-min\-alternate\-total\fR N -.IP -Require at least this count of observations supporting -an alternate allele within the total population in order -to use the allele in analysis. default: 1 -.HP -\fB\-\-min\-coverage\fR N -.IP -Require at least this coverage to process a site. default: 0 -.HP -\fB\-\-max\-coverage\fR N -.IP -Do not process sites with greater than this coverage. default: no limit -.SS population priors -.HP -\fB\-k\fR \fB\-\-no\-population\-priors\fR -.IP -Equivalent to \fB\-\-pooled\-discrete\fR \fB\-\-hwe\-priors\-off\fR and removal of -Ewens Sampling Formula component of priors. -.SS mappability priors -.HP -\fB\-w\fR \fB\-\-hwe\-priors\-off\fR -.IP -Disable estimation of the probability of the combination -arising under HWE given the allele frequency as estimated -by observation frequency. -.HP -\fB\-V\fR \fB\-\-binomial\-obs\-priors\-off\fR -.IP -Disable incorporation of prior expectations about observations. -Uses read placement probability, strand balance probability, -and read position (5'\-3') probability. -.HP -\fB\-a\fR \fB\-\-allele\-balance\-priors\-off\fR -.IP -Disable use of aggregate probability of observation balance between alleles -as a component of the priors. -.SS genotype likelihoods -.HP -\fB\-\-observation\-bias\fR FILE -.IP -Read length\-dependent allele observation biases from FILE. -The format is [length] [alignment efficiency relative to reference] -where the efficiency is 1 if there is no relative observation bias. -.HP -\fB\-\-base\-quality\-cap\fR Q -.IP -Limit estimated observation quality by capping base quality at Q. -.HP -\fB\-\-prob\-contamination\fR F -.TP -An estimate of contamination to use for all samples. -default: 10e\-9 -.TP -\fB\-\-legacy\-gls\fR -Use legacy (polybayes equivalent) genotype likelihood calculations -.HP -\fB\-\-contamination\-estimates\fR FILE -.IP -A file containing per\-sample estimates of contamination, such as -those generated by VerifyBamID. The format should be: -.IP -sample p(read=R|genotype=AR) p(read=A|genotype=AA) -.IP -Sample '*' can be used to set default contamination estimates. -.SS algorithmic features -.HP -\fB\-\-report\-genotype\-likelihood\-max\fR -.IP -Report genotypes using the maximum\-likelihood estimate provided -from genotype likelihoods. -.HP -\fB\-B\fR \fB\-\-genotyping\-max\-iterations\fR N -.IP -Iterate no more than N times during genotyping step. default: 1000. -.HP -\fB\-\-genotyping\-max\-banddepth\fR N -.IP -Integrate no deeper than the Nth best genotype by likelihood when -genotyping. default: 6. -.HP -\fB\-W\fR \fB\-\-posterior\-integration\-limits\fR N,M -.IP -Integrate all genotype combinations in our posterior space -which include no more than N samples with their Mth best -data likelihood. default: 1,3. -.HP -\fB\-N\fR \fB\-\-exclude\-unobserved\-genotypes\fR -.IP -Skip sample genotypings for which the sample has no supporting reads. -.HP -\fB\-S\fR \fB\-\-genotype\-variant\-threshold\fR N -.IP -Limit posterior integration to samples where the second\-best -genotype likelihood is no more than log(N) from the highest -genotype likelihood for the sample. default: ~unbounded -.HP -\fB\-j\fR \fB\-\-use\-mapping\-quality\fR -.IP -Use mapping quality of alleles when calculating data likelihoods. -.HP -\fB\-H\fR \fB\-\-harmonic\-indel\-quality\fR -.IP -Use a weighted sum of base qualities around an indel, scaled by the -distance from the indel. By default use a minimum BQ in flanking sequence. -.HP -\fB\-D\fR \fB\-\-read\-dependence\-factor\fR N -.IP -Incorporate non\-independence of reads by scaling successive -observations by this factor during data likelihood -calculations. default: 0.9 -.HP -\fB\-=\fR \fB\-\-genotype\-qualities\fR -.IP -Calculate the marginal probability of genotypes and report as GQ in -each sample field in the VCF output. -.SS debugging -.TP -\fB\-d\fR \fB\-\-debug\fR -Print debugging output. -.TP -\fB\-dd\fR -Print more verbose debugging output (requires "make DEBUG") -.SH SEE ALSO -"Haplotype\-based variant detection from short\-read sequencing" -arXiv:1207.3907 (http://arxiv.org/abs/1207.3907) -.SH AUTHOR -Erik Garrison <[email protected]>, Marth Lab, Boston College, 2010\-2014, Gabor Marth -.pp -This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program. diff --git a/debian/manpages b/debian/manpages deleted file mode 100644 index 0f65186..0000000 --- a/debian/manpages +++ /dev/null @@ -1 +0,0 @@ -debian/*.1 diff --git a/debian/patches/fix_test.patch b/debian/patches/fix_test.patch index a5af80c..302ed80 100644 --- a/debian/patches/fix_test.patch +++ b/debian/patches/fix_test.patch @@ -13,3 +13,11 @@ Description: vcflib is in a different package - do not test this prove -v t $(freebayes): +--- a/scripts/freebayes-parallel ++++ b/scripts/freebayes-parallel +@@ -37,4 +37,4 @@ command=("freebayes" "$@") + # iterate over regions using gnu parallel to dispatch jobs + cat "$regionsfile" | parallel -k -j "$ncpus" "${command[@]}" --region {} + ) | ../vcflib/scripts/vcffirstheader \ +- | ../vcflib/bin/vcfstreamsort -w 1000 | vcfuniq # remove duplicates at region edges ++ | vcfstreamsort -w 1000 | vcfuniq # remove duplicates at region edges diff --git a/debian/patches/series b/debian/patches/series index e9ae68a..3052e50 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,6 @@ use_debian_packaged_bamtools.patch use_debian_packaged_vcflib.patch +use_debian_packaged_seqlib.patch +use_debian_packaged_libjsoncpp.patch fix_test.patch +vcffirstheader.patch diff --git a/debian/patches/use_debian_packaged_bamtools.patch b/debian/patches/use_debian_packaged_bamtools.patch index 23f035e..9155580 100644 --- a/debian/patches/use_debian_packaged_bamtools.patch +++ b/debian/patches/use_debian_packaged_bamtools.patch @@ -4,83 +4,83 @@ Description: Use Debian packaged bamtools --- a/src/Makefile +++ b/src/Makefile -@@ -12,11 +12,10 @@ C=gcc +@@ -12,14 +12,13 @@ C=gcc CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g #CFLAGS=-O3 -static -D VERBOSE_DEBUG # enables verbose debugging via --debug2 -BAMTOOLS_ROOT=../bamtools + SEQLIB_ROOT=../SeqLib VCFLIB_ROOT=../vcflib + TABIX_ROOT=$(VCFLIB_ROOT)/tabixpp + HTSLIB_ROOT=$(TABIX_ROOT)/htslib --LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -L$(BAMTOOLS_ROOT)/lib -ltabix -lz -lm --INCLUDE = -I$(BAMTOOLS_ROOT)/src -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/ -+LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -lbamtools -ltabixpp -lz -lm -+INCLUDE = -I/usr/include/bamtools -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/ +-LIBS = -lz -lm -lpthread +-INCLUDE = -I../ttmath -I$(BAMTOOLS_ROOT)/src/ -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib ++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread ++INCLUDE = -I../ttmath -I/usr/include/bamtools -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib all: autoversion ../bin/freebayes ../bin/bamleftalign -@@ -34,10 +33,6 @@ gprof: +@@ -37,9 +36,6 @@ gprof: .PHONY: all static debug profiling gprof -# builds bamtools static lib, and copies into root -$(BAMTOOLS_ROOT)/lib/libbamtools.a: - cd $(BAMTOOLS_ROOT) && mkdir -p build && cd build && cmake .. && $(MAKE) -- + $(HTSLIB_ROOT)/libhts.a: + cd $(HTSLIB_ROOT) && make - OBJECTS=BedReader.o \ - CNV.o \ -@@ -70,8 +65,7 @@ OBJECTS=BedReader.o \ - ../vcflib/smithwaterman/LeftAlign.o \ +@@ -78,7 +74,6 @@ OBJECTS=BedReader.o \ ../vcflib/smithwaterman/Repeats.o \ ../vcflib/smithwaterman/IndelAllele.o \ -- Variant.o \ -- $(BAMTOOLS_ROOT)/lib/libbamtools.a -+ Variant.o - - HEADERS=multichoose.h version_git.h - -@@ -86,10 +80,10 @@ alleles ../bin/alleles: alleles.o $(OBJE + Variant.o \ +- $(BAMTOOLS_ROOT)/lib/libbamtools.a \ + $(SEQLIB_ROOT)/src/libseqlib.a \ + $(SEQLIB_ROOT)/bwa/libbwa.a \ + $(SEQLIB_ROOT)/fermi-lite/libfml.a \ +@@ -97,10 +92,10 @@ alleles ../bin/alleles: alleles.o $(OBJE dummy ../bin/dummy: dummy.o $(OBJECTS) $(HEADERS) $(CXX) $(CFLAGS) $(INCLUDE) dummy.o $(OBJECTS) -o ../bin/dummy $(LIBS) --bamleftalign ../bin/bamleftalign: $(BAMTOOLS_ROOT)/lib/libbamtools.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o -- $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o $(BAMTOOLS_ROOT)/lib/libbamtools.a -o ../bin/bamleftalign $(LIBS) -+bamleftalign ../bin/bamleftalign: bamleftalign.o Fasta.o -+ $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o -o ../bin/bamleftalign -lbamtools +-bamleftalign ../bin/bamleftalign: $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o +- $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS) ++bamleftalign ../bin/bamleftalign: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o ++ $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS) --bamfiltertech ../bin/bamfiltertech: $(BAMTOOLS_ROOT)/lib/libbamtools.a bamfiltertech.o $(OBJECTS) $(HEADERS) -+bamfiltertech ../bin/bamfiltertech: bamfiltertech.o $(OBJECTS) $(HEADERS) +-bamfiltertech ../bin/bamfiltertech: $(BAMTOOLS_ROOT)/lib/libbamtools.a $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS) ++bamfiltertech ../bin/bamfiltertech: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS) $(CXX) $(CFLAGS) $(INCLUDE) bamfiltertech.o $(OBJECTS) -o ../bin/bamfiltertech $(LIBS) -@@ -104,7 +98,7 @@ alleles.o: alleles.cpp AlleleParser.o Al +@@ -115,7 +110,7 @@ alleles.o: alleles.cpp AlleleParser.o Al dummy.o: dummy.cpp AlleleParser.o Allele.o $(CXX) $(CFLAGS) $(INCLUDE) -c dummy.cpp --freebayes.o: freebayes.cpp TryCatch.h $(BAMTOOLS_ROOT)/lib/libbamtools.a -+freebayes.o: freebayes.cpp TryCatch.h +-freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a $(BAMTOOLS_ROOT)/lib/libbamtools.a ++freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a $(CXX) $(CFLAGS) $(INCLUDE) -c freebayes.cpp fastlz.o: fastlz.c fastlz.h -@@ -125,7 +119,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle +@@ -136,7 +131,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle Ewens.o: Ewens.cpp Ewens.h $(CXX) $(CFLAGS) $(INCLUDE) -c Ewens.cpp --AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(BAMTOOLS_ROOT)/lib/libbamtools.a -+AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h +-AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(BAMTOOLS_ROOT)/lib/libbamtools.a $(HTSLIB_ROOT)/libhts.a ++AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(HTSLIB_ROOT)/libhts.a $(CXX) $(CFLAGS) $(INCLUDE) -c AlleleParser.cpp Utility.o: Utility.cpp Utility.h Sum.h Product.h -@@ -173,7 +167,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli +@@ -184,7 +179,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli bamfiltertech.o: bamfiltertech.cpp $(CXX) $(CFLAGS) $(INCLUDE) -c bamfiltertech.cpp --LeftAlign.o: LeftAlign.h LeftAlign.cpp $(BAMTOOLS_ROOT)/lib/libbamtools.a -+LeftAlign.o: LeftAlign.h LeftAlign.cpp +-LeftAlign.o: LeftAlign.h LeftAlign.cpp $(BAMTOOLS_ROOT)/lib/libbamtools.a $(HTSLIB_ROOT)/libhts.a ++LeftAlign.o: LeftAlign.h LeftAlign.cpp $(HTSLIB_ROOT)/libhts.a $(CXX) $(CFLAGS) $(INCLUDE) -c LeftAlign.cpp IndelAllele.o: IndelAllele.cpp IndelAllele.h -@@ -263,6 +257,5 @@ autoversion: +@@ -275,6 +270,5 @@ autoversion: clean: rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a} diff --git a/debian/patches/use_debian_packaged_libjsoncpp.patch b/debian/patches/use_debian_packaged_libjsoncpp.patch new file mode 100644 index 0000000..5ded25a --- /dev/null +++ b/debian/patches/use_debian_packaged_libjsoncpp.patch @@ -0,0 +1,17 @@ +Author: Andreas Tille <[email protected]> +Last-Update: Wed, 28 May 2014 21:23:38 +0200 +Description: Use Debian packaged libjsoncpp + +--- a/src/Makefile ++++ b/src/Makefile +@@ -12,8 +12,8 @@ C=gcc + CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g + #CFLAGS=-O3 -static -D VERBOSE_DEBUG # enables verbose debugging via --debug2 + +-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib` +-INCLUDE = -I../ttmath -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib` ++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib` `pkg-config --libs jsoncpp` ++INCLUDE = -I../ttmath -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib` `pkg-config --cflags jsoncpp` + + all: autoversion ../bin/freebayes ../bin/bamleftalign + diff --git a/debian/patches/use_debian_packaged_seqlib.patch b/debian/patches/use_debian_packaged_seqlib.patch new file mode 100644 index 0000000..9e7a35b --- /dev/null +++ b/debian/patches/use_debian_packaged_seqlib.patch @@ -0,0 +1,87 @@ +Author: Andreas Tille <[email protected]> +Last-Update: Wed, 28 May 2014 21:23:38 +0200 +Description: Use Debian packaged htslib and seqlib + seqlib carries another copy of htslib - we replace both + +--- a/src/Makefile ++++ b/src/Makefile +@@ -12,10 +12,8 @@ C=gcc + CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g + #CFLAGS=-O3 -static -D VERBOSE_DEBUG # enables verbose debugging via --debug2 + +-SEQLIB_ROOT=../SeqLib +- +-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` +-INCLUDE = -I../ttmath -I/usr/include/bamtools `pkg-config --cflags libvcflib` -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib ++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` `pkg-config --libs htslib` `pkg-config --libs libseqlib` ++INCLUDE = -I../ttmath -I/usr/include/bamtools `pkg-config --cflags libvcflib` `pkg-config --cflags libseqlib` `pkg-config --cflags htslib` + + all: autoversion ../bin/freebayes ../bin/bamleftalign + +@@ -33,12 +31,6 @@ gprof: + + .PHONY: all static debug profiling gprof + +-$(HTSLIB_ROOT)/libhts.a: +- cd $(HTSLIB_ROOT) && make +- +-$(SEQLIB_ROOT)/src/libseqlib.a: +- cd $(SEQLIB_ROOT) && ./configure && make +- + OBJECTS=BedReader.o \ + CNV.o \ + fastlz.o \ +@@ -62,11 +54,7 @@ OBJECTS=BedReader.o \ + Bias.o \ + Contamination.o \ + NonCall.o \ +- SegfaultHandler.o \ +- $(SEQLIB_ROOT)/src/libseqlib.a \ +- $(SEQLIB_ROOT)/bwa/libbwa.a \ +- $(SEQLIB_ROOT)/fermi-lite/libfml.a \ +- $(SEQLIB_ROOT)/htslib/libhts.a ++ SegfaultHandler.o + + HEADERS=multichoose.h version_git.h + +@@ -81,10 +69,10 @@ alleles ../bin/alleles: alleles.o $(OBJE + dummy ../bin/dummy: dummy.o $(OBJECTS) $(HEADERS) + $(CXX) $(CFLAGS) $(INCLUDE) dummy.o $(OBJECTS) -o ../bin/dummy $(LIBS) + +-bamleftalign ../bin/bamleftalign: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o +- $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a -o ../bin/bamleftalign $(LIBS) ++bamleftalign ../bin/bamleftalign: bamleftalign.o Fasta.o LeftAlign.o IndelAllele.o split.o ++ $(CXX) $(CFLAGS) $(INCLUDE) bamleftalign.o Fasta.o Utility.o LeftAlign.o IndelAllele.o split.o -o ../bin/bamleftalign $(LIBS) + +-bamfiltertech ../bin/bamfiltertech: $(SEQLIB_ROOT)/src/libseqlib.a $(SEQLIB_ROOT)/htslib/libhts.a bamfiltertech.o $(OBJECTS) $(HEADERS) ++bamfiltertech ../bin/bamfiltertech: bamfiltertech.o $(OBJECTS) $(HEADERS) + $(CXX) $(CFLAGS) $(INCLUDE) bamfiltertech.o $(OBJECTS) -o ../bin/bamfiltertech $(LIBS) + + +@@ -99,7 +87,7 @@ alleles.o: alleles.cpp AlleleParser.o Al + dummy.o: dummy.cpp AlleleParser.o Allele.o + $(CXX) $(CFLAGS) $(INCLUDE) -c dummy.cpp + +-freebayes.o: freebayes.cpp TryCatch.h $(HTSLIB_ROOT)/libhts.a ++freebayes.o: freebayes.cpp TryCatch.h + $(CXX) $(CFLAGS) $(INCLUDE) -c freebayes.cpp + + fastlz.o: fastlz.c fastlz.h +@@ -120,7 +108,7 @@ Genotype.o: Genotype.cpp Genotype.h Alle + Ewens.o: Ewens.cpp Ewens.h + $(CXX) $(CFLAGS) $(INCLUDE) -c Ewens.cpp + +-AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h $(HTSLIB_ROOT)/libhts.a ++AlleleParser.o: AlleleParser.cpp AlleleParser.h multichoose.h Parameters.h + $(CXX) $(CFLAGS) $(INCLUDE) -c AlleleParser.cpp + + Utility.o: Utility.cpp Utility.h Sum.h Product.h +@@ -168,7 +156,7 @@ bamleftalign.o: bamleftalign.cpp LeftAli + bamfiltertech.o: bamfiltertech.cpp + $(CXX) $(CFLAGS) $(INCLUDE) -c bamfiltertech.cpp + +-LeftAlign.o: LeftAlign.h LeftAlign.cpp $(HTSLIB_ROOT)/libhts.a ++LeftAlign.o: LeftAlign.h LeftAlign.cpp + $(CXX) $(CFLAGS) $(INCLUDE) -c LeftAlign.cpp + + IndelAllele.o: IndelAllele.cpp IndelAllele.h diff --git a/debian/patches/use_debian_packaged_vcflib.patch b/debian/patches/use_debian_packaged_vcflib.patch index dd907a8..dc36617 100644 --- a/debian/patches/use_debian_packaged_vcflib.patch +++ b/debian/patches/use_debian_packaged_vcflib.patch @@ -4,45 +4,46 @@ Description: vcflib needs to be packaged separately --- a/src/Makefile +++ b/src/Makefile -@@ -12,10 +12,8 @@ C=gcc - CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g +@@ -13,12 +13,9 @@ CFLAGS=-O3 -D_FILE_OFFSET_BITS=64 -g #CFLAGS=-O3 -static -D VERBOSE_DEBUG # enables verbose debugging via --debug2 + SEQLIB_ROOT=../SeqLib -VCFLIB_ROOT=../vcflib -- --LIBS = -L./ -L$(VCFLIB_ROOT)/tabixpp/ -lbamtools -ltabixpp -lz -lm --INCLUDE = -I/usr/include/bamtools -I../ttmath -I$(VCFLIB_ROOT)/src -I$(VCFLIB_ROOT)/ -+LIBS = -lbamtools -ltabixpp -lz -lm -lvcflib `pkg-config --libs libsmithwaterman` -+INCLUDE = -I/usr/include/bamtools -I../ttmath -I/usr/include/vcflib -I/usr/include/intervaltree `pkg-config --cflags libsmithwaterman` -ldisorder +-TABIX_ROOT=$(VCFLIB_ROOT)/tabixpp +-HTSLIB_ROOT=$(TABIX_ROOT)/htslib + +-LIBS = -lbamtools -ltabixpp -lz -lm -lpthread +-INCLUDE = -I../ttmath -I/usr/include/bamtools -I$(VCFLIB_ROOT)/src/ -I$(TABIX_ROOT)/ -I$(VCFLIB_ROOT)/smithwaterman/ -I$(VCFLIB_ROOT)/multichoose/ -I$(VCFLIB_ROOT)/filevercmp/ -I$(HTSLIB_ROOT) -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib ++LIBS = -lbamtools -ltabixpp -lz -lm -lpthread `pkg-config --libs libvcflib` ++INCLUDE = -I../ttmath -I/usr/include/bamtools `pkg-config --cflags libvcflib` -I$(SEQLIB_ROOT) -I$(SEQLIB_ROOT)/htslib all: autoversion ../bin/freebayes ../bin/bamleftalign -@@ -57,15 +55,7 @@ OBJECTS=BedReader.o \ - Bias.o \ +@@ -66,14 +63,6 @@ OBJECTS=BedReader.o \ Contamination.o \ NonCall.o \ -- SegfaultHandler.o \ + SegfaultHandler.o \ - ../vcflib/tabixpp/tabix.o \ -- ../vcflib/tabixpp/bgzf.o \ +- ../vcflib/tabixpp/htslib/bgzf.o \ - ../vcflib/smithwaterman/SmithWatermanGotoh.o \ -- ../vcflib/smithwaterman/disorder.c \ +- ../vcflib/smithwaterman/disorder.cpp \ - ../vcflib/smithwaterman/LeftAlign.o \ - ../vcflib/smithwaterman/Repeats.o \ - ../vcflib/smithwaterman/IndelAllele.o \ -- Variant.o -+ SegfaultHandler.o - - HEADERS=multichoose.h version_git.h - -@@ -173,17 +163,6 @@ LeftAlign.o: LeftAlign.h LeftAlign.cpp +- Variant.o \ + $(SEQLIB_ROOT)/src/libseqlib.a \ + $(SEQLIB_ROOT)/bwa/libbwa.a \ + $(SEQLIB_ROOT)/fermi-lite/libfml.a \ +@@ -185,18 +174,6 @@ LeftAlign.o: LeftAlign.h LeftAlign.cpp $ IndelAllele.o: IndelAllele.cpp IndelAllele.h $(CXX) $(CFLAGS) $(INCLUDE) -c IndelAllele.cpp -Variant.o: $(VCFLIB_ROOT)/src/Variant.h $(VCFLIB_ROOT)/src/Variant.cpp - $(CXX) $(CFLAGS) $(INCLUDE) -c $(VCFLIB_ROOT)/src/Variant.cpp - --../vcflib/tabixpp/tabix.o: ../vcflib/tabixpp/tabix.hpp ../vcflib/tabixpp/tabix.cpp --../vcflib/tabixpp/bgzf.o: ../vcflib/tabixpp/bgzf.c ../vcflib/tabixpp/bgzf.h +-../vcflib/tabixpp/tabix.o: +- cd $(TABIX_ROOT)/ && make +-../vcflib/tabixpp/htslib/bgzf.o: ../vcflib/tabixpp/htslib/bgzf.c ../vcflib/tabixpp/htslib/htslib/bgzf.h - cd ../vcflib/tabixpp && $(MAKE) - -../vcflib/smithwaterman/SmithWatermanGotoh.o: ../vcflib/smithwaterman/SmithWatermanGotoh.h ../vcflib/smithwaterman/SmithWatermanGotoh.cpp @@ -52,11 +53,13 @@ Description: vcflib needs to be packaged separately VERSION_FILE=./version_git.h RELEASED_VERSION_FILE=./version_release.txt -@@ -257,5 +236,4 @@ autoversion: +@@ -269,6 +246,5 @@ autoversion: + clean: - rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a} +- rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles ../vcflib/*.o ../vcflib/tabixpp/*.{o,a} - cd ../vcflib/smithwaterman && make clean ++ rm -rf *.o *.cgh *~ freebayes alleles ../bin/freebayes ../bin/alleles --- a/Makefile +++ b/Makefile @@ -66,227 +69,3 @@ Description: vcflib needs to be packaged separately cd src && $(MAKE) log: src/version_git.h ---- a/src/AlleleParser.cpp -+++ b/src/AlleleParser.cpp -@@ -485,7 +485,7 @@ void AlleleParser::setupVCFInput(void) { - // variant input for analysis and targeting - if (!parameters.variantPriorsFile.empty()) { - variantCallInputFile.open(parameters.variantPriorsFile); -- currentVariant = new vcf::Variant(variantCallInputFile); -+ currentVariant = new vcflib::Variant(variantCallInputFile); - usingVariantInputAlleles = true; - - // get sample names from VCF input file -@@ -1108,7 +1108,7 @@ void AlleleParser::updateHaplotypeBasisA - pos + referenceLength + CACHED_BASIS_HAPLOTYPE_WINDOW + 1)) { - //cerr << "the vcf line " << haplotypeVariantInputFile.line << endl; - // get the variants in the target region -- vcf::Variant var(haplotypeVariantInputFile); -+ vcflib::Variant var(haplotypeVariantInputFile); - while (haplotypeVariantInputFile.getNextVariant(var)) { - //cerr << "input variant: " << var << endl; - -@@ -1122,9 +1122,9 @@ void AlleleParser::updateHaplotypeBasisA - } - */ - -- map<string, vector<vcf::VariantAllele> > variants = var.parsedAlternates(); -- for (map<string, vector<vcf::VariantAllele> >::iterator a = variants.begin(); a != variants.end(); ++a) { -- for (vector<vcf::VariantAllele>::iterator v = a->second.begin(); v != a->second.end(); ++v) { -+ map<string, vector<vcflib::VariantAllele> > variants = var.parsedAlternates(); -+ for (map<string, vector<vcflib::VariantAllele> >::iterator a = variants.begin(); a != variants.end(); ++a) { -+ for (vector<vcflib::VariantAllele>::iterator v = a->second.begin(); v != a->second.end(); ++v) { - //cerr << v->ref << "/" << v->alt << endl; - if (v->ref != v->alt) { - //cerr << "basis allele " << v->position << " " << v->ref << "/" << v->alt << endl; -@@ -2107,7 +2107,7 @@ void AlleleParser::getInputVariantsInReg - if (!usingVariantInputAlleles) return; - - // get the variants in the target region -- vcf::Variant var(variantCallInputFile); -+ vcflib::Variant var(variantCallInputFile); - if (!seq.empty()) { - variantCallInputFile.setRegion(seq, start, end); - } -@@ -2117,10 +2117,10 @@ void AlleleParser::getInputVariantsInReg - long int pos = currentVariant->position - 1; - // get alternate alleles - bool includePreviousBaseForIndels = true; -- map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->parsedAlternates(); -+ map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->parsedAlternates(); - // TODO this would be a nice option: why does it not work? -- //map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->flatAlternates(); -- vector< vector<vcf::VariantAllele> > orderedVariantAlleles; -+ //map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->flatAlternates(); -+ vector< vector<vcflib::VariantAllele> > orderedVariantAlleles; - for (vector<string>::iterator a = currentVariant->alt.begin(); a != currentVariant->alt.end(); ++a) { - orderedVariantAlleles.push_back(variantAlleles[*a]); - } -@@ -2128,14 +2128,14 @@ void AlleleParser::getInputVariantsInReg - vector<Allele> genotypeAlleles; - set<long int> alternatePositions; - -- for (vector< vector<vcf::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) { -+ for (vector< vector<vcflib::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) { - -- vector<vcf::VariantAllele>& altAllele = *g; -+ vector<vcflib::VariantAllele>& altAllele = *g; - - vector<Allele> alleles; - -- for (vector<vcf::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) { -- vcf::VariantAllele& variant = *v; -+ for (vector<vcflib::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) { -+ vcflib::VariantAllele& variant = *v; - long int allelePos = variant.position - 1; - AlleleType type; - string alleleSequence = variant.alt; -@@ -2240,7 +2240,7 @@ void AlleleParser::updateInputVariants(l - if (gotRegion) { - - // get the variants in the target region -- vcf::Variant var(variantCallInputFile); -+ vcflib::Variant var(variantCallInputFile); - bool ok; - while (ok = variantCallInputFile.getNextVariant(*currentVariant)) { - -@@ -2248,10 +2248,10 @@ void AlleleParser::updateInputVariants(l - long int pos = currentVariant->position - 1; - // get alternate alleles - bool includePreviousBaseForIndels = true; -- map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->parsedAlternates(); -+ map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->parsedAlternates(); - // TODO this would be a nice option: why does it not work? -- //map<string, vector<vcf::VariantAllele> > variantAlleles = currentVariant->flatAlternates(); -- vector< vector<vcf::VariantAllele> > orderedVariantAlleles; -+ //map<string, vector<vcflib::VariantAllele> > variantAlleles = currentVariant->flatAlternates(); -+ vector< vector<vcflib::VariantAllele> > orderedVariantAlleles; - for (vector<string>::iterator a = currentVariant->alt.begin(); a != currentVariant->alt.end(); ++a) { - orderedVariantAlleles.push_back(variantAlleles[*a]); - } -@@ -2259,14 +2259,14 @@ void AlleleParser::updateInputVariants(l - vector<Allele> genotypeAlleles; - set<long int> alternatePositions; - -- for (vector< vector<vcf::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) { -+ for (vector< vector<vcflib::VariantAllele> >::iterator g = orderedVariantAlleles.begin(); g != orderedVariantAlleles.end(); ++g) { - -- vector<vcf::VariantAllele>& altAllele = *g; -+ vector<vcflib::VariantAllele>& altAllele = *g; - - vector<Allele> alleles; - -- for (vector<vcf::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) { -- vcf::VariantAllele& variant = *v; -+ for (vector<vcflib::VariantAllele>::iterator v = altAllele.begin(); v != altAllele.end(); ++v) { -+ vcflib::VariantAllele& variant = *v; - long int allelePos = variant.position - 1; - AlleleType type; - string alleleSequence = variant.alt; ---- a/src/AlleleParser.h -+++ b/src/AlleleParser.h -@@ -163,9 +163,9 @@ public: - BedReader bedReader; - - // VCF -- vcf::VariantCallFile variantCallFile; -- vcf::VariantCallFile variantCallInputFile; // input variant alleles, to target analysis -- vcf::VariantCallFile haplotypeVariantInputFile; // input alleles which will be used to construct haplotype alleles -+ vcflib::VariantCallFile variantCallFile; -+ vcflib::VariantCallFile variantCallInputFile; // input variant alleles, to target analysis -+ vcflib::VariantCallFile haplotypeVariantInputFile; // input alleles which will be used to construct haplotype alleles - - // input haplotype alleles - // -@@ -349,7 +349,7 @@ private: - - int currentRefID; - BamAlignment currentAlignment; -- vcf::Variant* currentVariant; -+ vcflib::Variant* currentVariant; - - }; - ---- a/src/ResultData.cpp -+++ b/src/ResultData.cpp -@@ -5,8 +5,8 @@ using namespace std; - - - --vcf::Variant& Results::vcf( -- vcf::Variant& var, // variant to update -+vcflib::Variant& Results::vcf( -+ vcflib::Variant& var, // variant to update - BigFloat pHom, - long double bestComboOddsRatio, - //long double alleleSamplingProb, -@@ -630,8 +630,8 @@ vcf::Variant& Results::vcf( - } - - --vcf::Variant& Results::gvcf( -- vcf::Variant& var, -+vcflib::Variant& Results::gvcf( -+ vcflib::Variant& var, - NonCalls& nonCalls, - AlleleParser* parser) { - ---- a/src/ResultData.h -+++ b/src/ResultData.h -@@ -41,8 +41,8 @@ public: - } - } - -- vcf::Variant& vcf( -- vcf::Variant& var, // variant to update -+ vcflib::Variant& vcf( -+ vcflib::Variant& var, // variant to update - BigFloat pHom, - long double bestComboOddsRatio, - //long double alleleSamplingProb, -@@ -61,8 +61,8 @@ public: - vector<string>& sequencingTechnologies, - AlleleParser* parser); - -- vcf::Variant& gvcf( -- vcf::Variant& var, -+ vcflib::Variant& gvcf( -+ vcflib::Variant& var, - NonCalls& noncalls, - AlleleParser* parser); - }; ---- a/src/freebayes.cpp -+++ b/src/freebayes.cpp -@@ -144,7 +144,7 @@ int main (int argc, char *argv[]) { - || (parameters.gVCFchunk && - nonCalls.lastPos().second - nonCalls.firstPos().second - > parameters.gVCFchunk))) { -- vcf::Variant var(parser->variantCallFile); -+ vcflib::Variant var(parser->variantCallFile); - out << results.gvcf(var, nonCalls, parser) << endl; - nonCalls.clear(); - } -@@ -658,12 +658,12 @@ int main (int argc, char *argv[]) { - - // write the last gVCF record(s) - if (parameters.gVCFout && !nonCalls.empty()) { -- vcf::Variant var(parser->variantCallFile); -+ vcflib::Variant var(parser->variantCallFile); - out << results.gvcf(var, nonCalls, parser) << endl; - nonCalls.clear(); - } - -- vcf::Variant var(parser->variantCallFile); -+ vcflib::Variant var(parser->variantCallFile); - - out << results.vcf( - var, -@@ -696,7 +696,7 @@ int main (int argc, char *argv[]) { - // write the last gVCF record - if (parameters.gVCFout && !nonCalls.empty()) { - Results results; -- vcf::Variant var(parser->variantCallFile); -+ vcflib::Variant var(parser->variantCallFile); - out << results.gvcf(var, nonCalls, parser) << endl; - nonCalls.clear(); - } diff --git a/debian/patches/vcffirstheader.patch b/debian/patches/vcffirstheader.patch new file mode 100644 index 0000000..070fcd0 --- /dev/null +++ b/debian/patches/vcffirstheader.patch @@ -0,0 +1,29 @@ +Author: Andreas Tille <[email protected]> +Last-Update: Fri, 10 Feb 2017 09:09:35 +0100 +Description: This script was not part of the vcflib release + tarball but is available in Git + https://github.com/vcflib/vcflib/blob/master/scripts/vcffirstheader + Since it is used in the test suite of freebayes 1.1 it is installed + here as quilt patch. Once vcflib might be release including the + scripts directory the patch can be dropped and replaced by an according + symlink inside rules or by setting PATH accordingly + +--- /dev/null ++++ b/vcflib/scripts/vcffirstheader +@@ -0,0 +1,16 @@ ++#!/usr/bin/env python ++ ++import sys ++ ++header=True ++for line in sys.stdin: ++ if line.startswith('##'): ++ if header: ++ print line.strip() ++ continue ++ elif line.startswith('#'): ++ if header: ++ print line.strip() ++ header=False ++ continue ++ print line.strip() diff --git a/debian/rules b/debian/rules index 8045fdf..666b949 100755 --- a/debian/rules +++ b/debian/rules @@ -9,5 +9,9 @@ override_dh_auto_install: override_dh_auto_test: mkdir -p $(CURDIR)/test/bash-tap/ for bt in $(CURDIR)/debian/bash-tap/* ; do ln -s $${bt} $(CURDIR)/test/bash-tap/`basename $${bt}` ; done - export PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test && echo "Tests were running successfully" + ln -s $(CURDIR)/debian/test-simple-bash/lib test/test-simple-bash + chmod +x vcflib/scripts/vcffirstheader + # export PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test + echo "Tests should be run" && PATH=/usr/lib/vcflib/binaries/:$(PATH) dh_auto_test && echo "Tests were running successfully" rm -rf $(CURDIR)/test/bash-tap + rm test/test-simple-bash/lib diff --git a/debian/test-simple-bash/lib/test-simple.bash b/debian/test-simple-bash/lib/test-simple.bash new file mode 100644 index 0000000..dab44e7 --- /dev/null +++ b/debian/test-simple-bash/lib/test-simple.bash @@ -0,0 +1,110 @@ +# test-simple.bash - Simple TAP test framework for Bash +# +# Copyright (c) 2013 Ingy döt Net + +TestSimple_VERSION='0.0.1' + +TestSimple.init() { + TestSimple_plan=0 + TestSimple_run=0 + TestSimple_failed=0 + TestSimple_usage='Usage: source test-simple.bash tests <number>' + + if [ $# -gt 0 ]; then + [[ $# -eq 2 ]] && [[ "$1" == 'tests' ]] || + TestSimple.die "$TestSimple_usage" + [[ "$2" =~ ^-?[0-9]+$ ]] || + TestSimple.die 'Plan must be a number' + [[ $2 -gt 0 ]] || + TestSimple.die 'Plan must greater then 0' + TestSimple_plan=$2 + printf "1..%d\n" $TestSimple_plan + fi + + trap TestSimple.END EXIT +} + +ok() { + local args=("$@") + local last=$((${#args[@]} - 1)) + local label='' + local ending_re='^]]?$' + let TestSimple_run=TestSimple_run+1 + ( + set +e + local rc= + if [[ $last -gt 0 ]] && [[ ! "${args[$last]}" =~ $ending_re ]]; then + label="${args[$last]}" + unset args[$last] + fi + if [[ ${#args[@]} -eq 1 ]] && [[ "${args[0]}" =~ ^[0-9]+$ ]]; then + rc=${args[0]} + elif [ ${args[0]} == '[[' ]; then + # XXX Currently need eval to support [[. Is there another way? + # Is [[ overkill? So many questons! + eval "${args[@]}" &> /dev/null + rc=$? + else + "${args[@]}" &> /dev/null + rc=$? + fi + if [ $rc -eq 0 ]; then + if [ -n "$label" ]; then + echo "ok $TestSimple_run - $label" + else + echo "ok $TestSimple_run" + fi + else + let TestSimple_failed=TestSimple_failed+1 + if [ -n "$label" ]; then + echo "not ok $TestSimple_run - $label" + TestSimple.failure "$label" + else + echo "not ok $TestSimple_run" + TestSimple.failure "$label" + fi + fi + return $rc + ) +} + +TestSimple_CALL_STACK_LEVEL=1 +TestSimple.failure() { + local c=( $(caller $TestSimple_CALL_STACK_LEVEL) ) + local file=${c[2]} + local line=${c[0]} + local label="$1" + label=${label:+"'$label'\n# at $file line $line."} + label=${label:-"at $file line $line."} + echo -e "# Failed test $label" >&2 +} + +TestSimple.END() { + for v in plan run failed; do eval local $v=\$TestSimple_$v; done + if [ $plan -eq 0 ]; then + if [ $run -gt 0 ]; then + echo "# Tests were run but no plan was declared." >&2 + fi + else + if [ $run -eq 0 ]; then + echo "# No tests run!" >&2 + elif [ $run -ne $plan ]; then + local msg="# Looks like you planned $plan tests but ran $run." + [ $plan -eq 1 ] && msg=${msg/tests/test} + echo "$msg" >&2 + fi + fi + local exit_code=0 + if [ $TestSimple_failed -gt 0 ]; then + exit_code=$TestSimple_failed + [ $exit_code -gt 254 ] && exit_code=254 + local msg="# Looks like you failed $failed tests of $run run." + [ $TestSimple_failed -eq 1 ] && msg=${msg/tests/test} + echo "$msg" >&2 + fi + exit $exit_code +} + +TestSimple.die() { echo "$@" >&2; trap EXIT; exit 255; } + +[[ "${BASH_SOURCE[0]}" != "${0}" ]] && TestSimple.init "$@" diff --git a/debian/test-simple-bash/test/basics.t b/debian/test-simple-bash/test/basics.t new file mode 100644 index 0000000..61949ea --- /dev/null +++ b/debian/test-simple-bash/test/basics.t @@ -0,0 +1,26 @@ +#!/bin/bash + +PATH=lib:$PATH +source test-simple.bash tests 14 + +ok 0 '0 is true' +ok $((6 * 7 -42)) 'Math result is 0' +ok true 'true is ok' +ok $(false || true; echo $?) 'Expression expansion' + +ls &> /dev/null +ok $? '$? is success' +ls --qqq &> /dev/null +ok $((! $?)) 'Negate $? failure' + +fruit=apple + +ok [ $fruit = apple ] '[ … ] testing works' +ok [ "0" == "0" -a 1 -eq 1 ] '[ … -a … ] (AND) testing works' +ok [ ${fruit/a/A} = Apple ] 'Substitution expansion works' +ok [ "${fruit}s" = 'app''les' ] 'Quote removal works' +ok [[ $fruit = apple ]] '[[ … ]] works' +ok [[ $fruit == apple ]] '== works' +ok [[ $((6 * 7)) -eq 42 ]] '-eq works with math expression' +ok $(ls | grep lib &> /dev/null; echo $?) \ + 'Testing a grep command works' diff --git a/debian/test-simple-bash/test/doc.t b/debian/test-simple-bash/test/doc.t new file mode 100644 index 0000000..7d77db7 --- /dev/null +++ b/debian/test-simple-bash/test/doc.t @@ -0,0 +1,15 @@ +#!/bin/bash + +question() { echo yes; } + +PATH=lib:$PATH +source test-simple.bash tests 5 + +ok 0 '0 is true (other numbers are false)' + +answer=$(question "...?") +ok [ $answer == yes ] 'The answer is yes!' +ok [[ $answer =~ ^y ]] 'The answer begins with y' + +ok true 'true is ok' +ok '! false' '! false is true' diff --git a/debian/test-simple-bash/test/no-label.t b/debian/test-simple-bash/test/no-label.t new file mode 100644 index 0000000..9b58eb4 --- /dev/null +++ b/debian/test-simple-bash/test/no-label.t @@ -0,0 +1,25 @@ +#!/bin/bash + +PATH=lib:$PATH +source test-simple.bash tests 14 + +ok 0 +ok $((6 * 7 -42)) +ok true +ok $(false || true; echo $?) + +ls &> /dev/null +ok $? +ls --qqq &> /dev/null +ok $((! $?)) + +fruit=apple + +ok [ $fruit = apple ] +ok [ "0" == "0" -a 1 -eq 1 ] +ok [ ${fruit/a/A} = Apple ] +ok [ "${fruit}s" = 'app''les' ] +ok [[ $fruit = apple ]] +ok [[ $fruit == apple ]] +ok [[ $((6 * 7)) -eq 42 ]] +ok $(ls | grep lib &> /dev/null; echo $?) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/freebayes.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
