This is an automated email from the git hooks/post-receive script. sascha-guest pushed a commit to branch master in repository aegean.
commit 6261fb6c79c19a9789abb91f072b2f2cf4f0a437 Author: Sascha Steinbiss <[email protected]> Date: Sun Mar 20 11:30:58 2016 +0000 Imported Upstream version 0.15.2+dfsg --- CHANGELOG.md | 5 +++ README.md | 8 ++--- VERSION | 2 +- data/gff3/aech-dachsous-out.gff3 | 8 ++--- data/gff3/amel-lsm-out-cds.gff3 | 4 +-- data/gff3/amel-plap-out-cds.gff3 | 4 +-- data/gff3/ilocus.out.noskipends.gff3 | 34 ++++++++++---------- data/gff3/mrot-cst-out-cds.gff3 | 4 +-- data/gff3/nvit-exospindle-out.gff3 | 8 ++--- data/scripts/miloci.py | 6 ++-- data/scripts/uloci.py | 6 ++-- docs/contrib.rst | 3 +- src/core/AgnLocus.c | 2 +- src/core/AgnLocusRefineStream.c | 60 +++++++++++++++++++++--------------- src/core/AgnLocusStream.c | 28 ++++++++--------- 15 files changed, 98 insertions(+), 84 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f0348e..c4fb607 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [0.15.2] - 2016-03-17 + +### Fixed +- Minor typo in AgnLocus class. +- Correct reporting of iLocus type. ## [0.15.1] - 2016-01-08 diff --git a/README.md b/README.md index 9101107..845fd57 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,9 @@ AEGeAn: <b>a</b>nalysis and <b>e</b>valuation of <b>ge</b>nome <b>an</b>notations -Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS. +Copyright (c) 2010-2016, Daniel S. Standage and [CONTRIBUTORS](https://github.com/BrendelGroup/AEGeAn/blob/master/docs/contrib.rst). See LICENSE and for details. -Project homepage: http://standage.github.io/AEGeAn. +Project homepage: http://brendelgroup.github.io/AEGeAn. -[](https://travis-ci.org/standage/AEGeAn) -[](https://scan.coverity.com/projects/1021) +[](https://travis-ci.org/BrendelGroup/AEGeAn) [](https://readthedocs.org/projects/aegean/badge/?version=latest) - diff --git a/VERSION b/VERSION index 9dc514f..69ca83a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.15.1 stable +v0.15.2 stable diff --git a/data/gff3/aech-dachsous-out.gff3 b/data/gff3/aech-dachsous-out.gff3 index c4bd6b8..f53b144 100644 --- a/data/gff3/aech-dachsous-out.gff3 +++ b/data/gff3/aech-dachsous-out.gff3 @@ -6,10 +6,10 @@ #!genome-build-accession NCBI_Assembly:GCF_000204515.1 #!annotation-date #!annotation-source NCBI Acromyrmex echinatior Annotation Release 100 -NW_011626563.1 AEGeAn::LocusPocus locus 1190754 1200781 . . . child_gene=1;child_mRNA=2;riil=769;effective_length=10028;iLocus_type=piLocus +NW_011626563.1 AEGeAn::LocusPocus locus 1190754 1200781 . . . child_gene=1;child_mRNA=2;riil=769;effective_length=10028;iLocus_type=siLocus NW_011626563.1 AEGeAn::LocusPocus locus 1200782 1201550 . . . fg_orient=FR;effective_length=769;iLocus_type=iiLocus -NW_011626563.1 AEGeAn::LocusPocus locus 1201551 1566216 . . . effective_length=364666;iiLocus_exception=complex-overlap-3;liil=769;riil=8884;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NW_011626563.1 AEGeAn::LocusPocus locus 1216473 1219475 . . . iiLocus_exception=intron-gene;liil=0;riil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=2 +NW_011626563.1 AEGeAn::LocusPocus locus 1201551 1566216 . . . effective_length=364666;iiLocus_exception=complex-overlap-3;liil=769;riil=8884;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NW_011626563.1 AEGeAn::LocusPocus locus 1216473 1219475 . . . iiLocus_exception=intron-gene;liil=0;riil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=2 NW_011626563.1 AEGeAn::LocusPocus locus 1537022 1540189 . . . liil=0;riil=0;iLocus_type=niLocus;child_gene=1;child_ncRNA=1 NW_011626563.1 AEGeAn::LocusPocus locus 1566217 1575100 . . . fg_orient=RR;effective_length=8884;iLocus_type=iiLocus -NW_011626563.1 AEGeAn::LocusPocus locus 1575101 1579176 . . . liil=8884;child_gene=1;child_mRNA=1;effective_length=4076;iLocus_type=piLocus +NW_011626563.1 AEGeAn::LocusPocus locus 1575101 1579176 . . . liil=8884;child_gene=1;child_mRNA=1;effective_length=4076;iLocus_type=siLocus diff --git a/data/gff3/amel-lsm-out-cds.gff3 b/data/gff3/amel-lsm-out-cds.gff3 index 3f0b1ba..5b3531d 100644 --- a/data/gff3/amel-lsm-out-cds.gff3 +++ b/data/gff3/amel-lsm-out-cds.gff3 @@ -6,5 +6,5 @@ #!genome-build-accession NCBI_Assembly:GCF_000002195.4 #!annotation-date 7 January 2014 #!annotation-source NCBI Apis mellifera Annotation Release 102 -NC_007079.3 AEGeAn::LocusPocus locus 8269827 8271756 . . . effective_length=3352;iiLocus_exception=gene-overlap-gene;riil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NC_007079.3 AEGeAn::LocusPocus locus 8270498 8273178 . . . liil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 +NC_007079.3 AEGeAn::LocusPocus locus 8269827 8271756 . . . effective_length=3352;iiLocus_exception=gene-overlap-gene;riil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NC_007079.3 AEGeAn::LocusPocus locus 8270498 8273178 . . . liil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 diff --git a/data/gff3/amel-plap-out-cds.gff3 b/data/gff3/amel-plap-out-cds.gff3 index d3fff6f..4627572 100644 --- a/data/gff3/amel-plap-out-cds.gff3 +++ b/data/gff3/amel-plap-out-cds.gff3 @@ -6,5 +6,5 @@ #!genome-build-accession NCBI_Assembly:GCF_000002195.4 #!annotation-date 7 January 2014 #!annotation-source NCBI Apis mellifera Annotation Release 102 -NC_007077.3 AEGeAn::LocusPocus locus 8815135 8818920 . . . effective_length=7198;iiLocus_exception=gene-overlap-gene;riil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NC_007077.3 AEGeAn::LocusPocus locus 8817660 8822332 . . . liil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 +NC_007077.3 AEGeAn::LocusPocus locus 8815135 8818920 . . . effective_length=7198;iiLocus_exception=gene-overlap-gene;riil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NC_007077.3 AEGeAn::LocusPocus locus 8817660 8822332 . . . liil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 diff --git a/data/gff3/ilocus.out.noskipends.gff3 b/data/gff3/ilocus.out.noskipends.gff3 index e869dce..4974f38 100644 --- a/data/gff3/ilocus.out.noskipends.gff3 +++ b/data/gff3/ilocus.out.noskipends.gff3 @@ -25,9 +25,9 @@ ##sequence-region seq24 1 800 ##sequence-region seq25 1 799 seq01 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 -seq02 AEGeAn::LocusPocus locus 1 200 . . . fragment=true +seq02 AEGeAn::LocusPocus locus 1 200 . . . . seq02 AEGeAn::LocusPocus locus 201 900 . . . child_gene=1;child_mRNA=1 -seq03 AEGeAn::LocusPocus locus 1 201 . . . fragment=true +seq03 AEGeAn::LocusPocus locus 1 201 . . . . seq03 AEGeAn::LocusPocus locus 202 900 . . . child_gene=1;child_mRNA=1 seq04 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 seq05 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 @@ -35,48 +35,48 @@ seq06 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 seq07 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=201 seq07 AEGeAn::LocusPocus locus 801 1001 . . . fg_orient=FF seq07 AEGeAn::LocusPocus locus 1002 1600 . . . liil=201;child_gene=1;child_mRNA=1 -seq07 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true +seq07 AEGeAn::LocusPocus locus 1601 2000 . . . . seq08 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=200 seq08 AEGeAn::LocusPocus locus 801 1000 . . . fg_orient=FF seq08 AEGeAn::LocusPocus locus 1001 1600 . . . liil=200;child_gene=1;child_mRNA=1 -seq08 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true +seq08 AEGeAn::LocusPocus locus 1601 2000 . . . . seq09 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 seq09 AEGeAn::LocusPocus locus 901 1600 . . . liil=0;child_gene=1;child_mRNA=1 -seq09 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true +seq09 AEGeAn::LocusPocus locus 1601 2000 . . . . seq10 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 seq10 AEGeAn::LocusPocus locus 802 1500 . . . liil=0;child_gene=1;child_mRNA=1 -seq10 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true +seq10 AEGeAn::LocusPocus locus 1501 2000 . . . . seq11 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 seq11 AEGeAn::LocusPocus locus 801 1500 . . . liil=0;child_gene=1;child_mRNA=1 -seq11 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true +seq11 AEGeAn::LocusPocus locus 1501 2000 . . . . seq12 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=1;iiLocus_exception=delta-overlap-delta;riil=0 seq12 AEGeAn::LocusPocus locus 800 1500 . . . left_overlap=1;liil=0;child_gene=1;child_mRNA=1 -seq12 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true +seq12 AEGeAn::LocusPocus locus 1501 2000 . . . . seq13 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=198;iiLocus_exception=delta-overlap-delta;riil=0 seq13 AEGeAn::LocusPocus locus 603 1300 . . . left_overlap=198;liil=0;child_gene=1;child_mRNA=1 -seq13 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true +seq13 AEGeAn::LocusPocus locus 1301 1500 . . . . seq14 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=199;iiLocus_exception=delta-overlap-delta;riil=0 seq14 AEGeAn::LocusPocus locus 602 1300 . . . left_overlap=199;liil=0;child_gene=1;child_mRNA=1 -seq14 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true +seq14 AEGeAn::LocusPocus locus 1301 1500 . . . . seq15 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=200;iiLocus_exception=delta-overlap-delta;riil=0 seq15 AEGeAn::LocusPocus locus 601 1300 . . . left_overlap=200;liil=0;child_gene=1;child_mRNA=1 -seq15 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true +seq15 AEGeAn::LocusPocus locus 1301 1500 . . . . seq16 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=201;iiLocus_exception=delta-overlap-gene;riil=0 seq16 AEGeAn::LocusPocus locus 600 1300 . . . left_overlap=201;liil=0;child_gene=1;child_mRNA=1 -seq16 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true +seq16 AEGeAn::LocusPocus locus 1301 1500 . . . . seq17 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=395;iiLocus_exception=delta-overlap-gene;riil=0 seq17 AEGeAn::LocusPocus locus 406 1200 . . . left_overlap=395;liil=0;child_gene=1;child_mRNA=1 -seq17 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true +seq17 AEGeAn::LocusPocus locus 1201 1500 . . . . seq18 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=399;iiLocus_exception=delta-overlap-gene;riil=0 seq18 AEGeAn::LocusPocus locus 402 1200 . . . left_overlap=399;liil=0;child_gene=1;child_mRNA=1 -seq18 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true +seq18 AEGeAn::LocusPocus locus 1201 1500 . . . . seq19 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=400;iiLocus_exception=delta-overlap-gene;riil=0 seq19 AEGeAn::LocusPocus locus 401 1200 . . . left_overlap=400;liil=0;child_gene=1;child_mRNA=1 -seq19 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true +seq19 AEGeAn::LocusPocus locus 1201 1500 . . . . seq20 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 -seq20 AEGeAn::LocusPocus locus 801 1001 . . . fragment=true +seq20 AEGeAn::LocusPocus locus 801 1001 . . . . seq21 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 -seq21 AEGeAn::LocusPocus locus 801 1000 . . . fragment=true +seq21 AEGeAn::LocusPocus locus 801 1000 . . . . seq22 AEGeAn::LocusPocus locus 1 999 . . . child_gene=1;child_mRNA=1 seq23 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1 seq24 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 diff --git a/data/gff3/mrot-cst-out-cds.gff3 b/data/gff3/mrot-cst-out-cds.gff3 index aae711a..957cac8 100644 --- a/data/gff3/mrot-cst-out-cds.gff3 +++ b/data/gff3/mrot-cst-out-cds.gff3 @@ -6,5 +6,5 @@ #!genome-build-accession NCBI_Assembly:GCF_000220905.1 #!annotation-date 7 April 2015 #!annotation-source NCBI Megachile rotundata Annotation Release 101 -NW_003797177.1 AEGeAn::LocusPocus locus 9652 19311 . . . effective_length=9660;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NW_003797177.1 AEGeAn::LocusPocus locus 11405 18146 . . . iiLocus_exception=intron-gene;iLocus_type=piLocus;child_gene=1;child_mRNA=4 +NW_003797177.1 AEGeAn::LocusPocus locus 9652 19311 . . . effective_length=9660;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NW_003797177.1 AEGeAn::LocusPocus locus 11405 18146 . . . iiLocus_exception=intron-gene;iLocus_type=siLocus;child_gene=1;child_mRNA=4 diff --git a/data/gff3/nvit-exospindle-out.gff3 b/data/gff3/nvit-exospindle-out.gff3 index 30da870..b836157 100644 --- a/data/gff3/nvit-exospindle-out.gff3 +++ b/data/gff3/nvit-exospindle-out.gff3 @@ -6,7 +6,7 @@ #!genome-build-accession NCBI_Assembly:GCF_000002325.3 #!annotation-date 3 June 2014 #!annotation-source NCBI Nasonia vitripennis Annotation Release 101 -NC_015867.2 AEGeAn::LocusPocus locus 370926 373152 . . . child_gene=1;child_mRNA=1;right_overlap=262;iiLocus_exception=delta-overlap-delta;riil=0;effective_length=1965;iLocus_type=piLocus -NC_015867.2 AEGeAn::LocusPocus locus 372891 380536 . . . effective_length=6758;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NC_015867.2 AEGeAn::LocusPocus locus 374998 378903 . . . iiLocus_exception=intron-gene;iLocus_type=piLocus;child_gene=1;child_mRNA=1 -NC_015867.2 AEGeAn::LocusPocus locus 379649 381835 . . . left_overlap=888;liil=0;child_gene=1;child_mRNA=1;effective_length=2187;iLocus_type=piLocus +NC_015867.2 AEGeAn::LocusPocus locus 370926 373152 . . . child_gene=1;child_mRNA=1;right_overlap=262;iiLocus_exception=delta-overlap-delta;riil=0;effective_length=1965;iLocus_type=siLocus +NC_015867.2 AEGeAn::LocusPocus locus 372891 380536 . . . effective_length=6758;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NC_015867.2 AEGeAn::LocusPocus locus 374998 378903 . . . iiLocus_exception=intron-gene;iLocus_type=siLocus;child_gene=1;child_mRNA=1 +NC_015867.2 AEGeAn::LocusPocus locus 379649 381835 . . . left_overlap=888;liil=0;child_gene=1;child_mRNA=1;effective_length=2187;iLocus_type=siLocus diff --git a/data/scripts/miloci.py b/data/scripts/miloci.py index be6425c..34a32e7 100755 --- a/data/scripts/miloci.py +++ b/data/scripts/miloci.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS +# Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS # # The AEGeAn Toolkit is distributed under the ISC License. See # the 'LICENSE' file in the AEGeAn source code distribution or @@ -45,7 +45,7 @@ def merge_iloci(loci): attrs[key] = 0 attrs[key] += value - attrstring = 'merged=true;iLocus_type=miLocus' + attrstring = 'iLocus_type=miLocus' for key in sorted(attrs): attrstring += ';%s=%d' % (key, attrs[key]) gff3 = [seqid, 'AEGeAn::miloci.py', 'locus', str(start), str(end), @@ -82,7 +82,7 @@ def parse_iloci(fp): if len(prev_loci) > 0: yield merge_iloci(prev_loci) prev_loci = [] - line = re.sub('ID=[^;\n]+;*', 'geneless=true;', line) + line = re.sub('ID=[^;\n]+;*', '', line) line = re.sub('Name=[^;\n]+;*', '', line) yield line if len(prev_loci) > 0: diff --git a/data/scripts/uloci.py b/data/scripts/uloci.py index 1828f09..8d223d1 100755 --- a/data/scripts/uloci.py +++ b/data/scripts/uloci.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS +# Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS # # The AEGeAn Toolkit is distributed under the ISC License. See # the 'LICENSE' file in the AEGeAn source code distribution or @@ -111,8 +111,8 @@ if __name__ == '__main__': for seqid, seqlen in parse_gff3(args.infile): locid = args.idfmt % args.counter args.counter += 1 - attrs = 'ID=%s;Name=%s;fragment=true;unannot=true;' % (locid, locid) - attrs += 'iLocus_type=iiLocus;effective_length=%d' % seqlen + attrs = 'ID=%s;Name=%s;unannot=true;' % (locid, locid) + attrs += 'iLocus_type=fiLocus;effective_length=%d' % seqlen fields = [seqid, args.src, 'locus', '1', str(seqlen), '.', '.', '.', attrs] print(*fields, sep='\t') diff --git a/docs/contrib.rst b/docs/contrib.rst index 7888185..161cb5f 100644 --- a/docs/contrib.rst +++ b/docs/contrib.rst @@ -4,7 +4,8 @@ The following assisted in the development of the AEGeAn Toolkit and/or contributed to its code base. * Daniel S. Standage <[email protected]>, primary developer -* Volker Brendel <[email protected]>, supervision and testing +* Volker Brendel <[email protected]>, intellectual development, supervision, + and testing * Sascha Steinbiss <[email protected]> and Gordon Gremme <[email protected]>, integration with GenomeTools, including code examples and implementing feature requests diff --git a/src/core/AgnLocus.c b/src/core/AgnLocus.c index 04b2aa3..20ceb24 100644 --- a/src/core/AgnLocus.c +++ b/src/core/AgnLocus.c @@ -344,7 +344,7 @@ void agn_locus_data_aggregate(AgnLocus *locus, AgnComparisonData *data) break; default: desc = NULL; - fprintf(stderr, "error: unknow comp classification %d\n", c); + fprintf(stderr, "error: unknown comp classification %d\n", c); break; } desc->comparison_count++; diff --git a/src/core/AgnLocusRefineStream.c b/src/core/AgnLocusRefineStream.c index 0ae0e4d..65d1522 100644 --- a/src/core/AgnLocusRefineStream.c +++ b/src/core/AgnLocusRefineStream.c @@ -1,6 +1,6 @@ /** -Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS +Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS The AEGeAn Toolkit is distributed under the ISC License. See the 'LICENSE' file in the AEGeAn source code distribution or @@ -182,12 +182,12 @@ bool agn_locus_refine_stream_unit_test(AgnUnitTest *test) if(elen) test1a = strcmp(elen, "11466") == 0; gt_genome_node_delete(locus); - + locus = gt_queue_get(queue); locusrange = gt_genome_node_get_range(locus); test1 = test1 && locusrange.start == 1916352 && locusrange.end == 1927323; gt_genome_node_delete(locus); - + locus = gt_queue_get(queue); locusrange = gt_genome_node_get_range(locus); test1 = test1 && locusrange.start == 1918157 && locusrange.end == 1921155; @@ -211,7 +211,7 @@ bool agn_locus_refine_stream_unit_test(AgnUnitTest *test) if(elen) test2a = strcmp(elen, "9660") == 0; gt_genome_node_delete(locus); - + locus = gt_queue_get(queue); locusrange = gt_genome_node_get_range(locus); test2 = test2 && locusrange.start == 11405 && locusrange.end == 18146; @@ -293,7 +293,7 @@ static bool refine_locus_check_intron_genes(AgnLocusRefineStream *stream, gt_array_delete(exons); return false; } - + GtUword i; bool overlap = false; for(i = 0; i < gt_array_size(exons); i++) @@ -368,7 +368,7 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, gnrange.end = origrange.end; else gnrange.end += stream->delta; - + agn_locus_set_range(*gn, gnrange.start, gnrange.end); agn_assert(gt_range_contains(&origrange, &gnrange)); gt_feature_node_set_source(fn, stream->source); @@ -418,7 +418,7 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, break; } } - + // If the iLoci are all coding or all non-coding, just assign their collective // length (sans overlap from previous unrefined iLocus) to the first refined // iLocus. @@ -449,12 +449,12 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, } } } - const char *typestr = "piLocus"; + const char *typestr = "siLocus"; if(coding_status == false) typestr = "niLocus"; else if(agn_locus_num_genes(*gn) > 1) { - typestr = "complex"; + typestr = "ciLocus"; char exceptstr[32]; GtUword genenum = agn_typecheck_count(origfn, agn_typecheck_gene); @@ -492,13 +492,13 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, bool cds1 = agn_locus_num_mrnas(*gn1) > 0; if(cds1 == true) { - gt_feature_node_add_attribute(fn1, "iLocus_type", "piLocus"); + gt_feature_node_add_attribute(fn1, "iLocus_type", "siLocus"); gt_feature_node_add_attribute(fn2, "iLocus_type", "niLocus"); } else { gt_feature_node_add_attribute(fn1, "iLocus_type", "niLocus"); - gt_feature_node_add_attribute(fn2, "iLocus_type", "piLocus"); + gt_feature_node_add_attribute(fn2, "iLocus_type", "siLocus"); } const char *exc = gt_feature_node_get_attribute(fn2, "iiLocus_exception"); @@ -524,7 +524,7 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, gt_feature_node_add_attribute(fn1, "riil", orig_riil); } } - + // The genes overlap else { @@ -611,14 +611,18 @@ static void locus_refine_stream_extend(AgnLocusRefineStream *stream, gt_feature_node_add_attribute(fn, "riil", "0"); } - const char *type = "complex"; - if(agn_locus_num_genes(*gn) == 1) + const char *type = ""; + if(agn_locus_num_mrnas(*gn) == 0) { - if(agn_locus_num_mrnas(*gn) > 0) - type = "piLocus"; - else - type = "niLocus"; - + type = "niLocus"; + } + else if(agn_locus_num_genes(*gn) == 1) + { + type = "siLocus"; + } + else + { + type = "ciLocus"; } gt_feature_node_add_attribute(fn, "iLocus_type", type); } @@ -655,12 +659,20 @@ static int locus_refine_stream_handler(AgnLocusRefineStream *stream, sprintf(lenstr, "%lu", gt_range_length(&rng) - ro); gt_feature_node_add_attribute(locus, "effective_length", lenstr); - if(gt_feature_node_number_of_children(locus) == 0) - gt_feature_node_add_attribute(locus, "iLocus_type", "iiLocus"); - else if(agn_locus_num_mrnas(gn) > 0) - gt_feature_node_add_attribute(locus, "iLocus_type", "piLocus"); + const char *loctype = gt_genome_node_get_user_data(gn, "iLocus_type"); + if(loctype == NULL) + { + if(gt_feature_node_number_of_children(locus) == 0) + gt_feature_node_add_attribute(locus, "iLocus_type", "iiLocus"); + else if(agn_locus_num_mrnas(gn) > 0) + gt_feature_node_add_attribute(locus, "iLocus_type", "siLocus"); + else + gt_feature_node_add_attribute(locus, "iLocus_type", "niLocus"); + } else - gt_feature_node_add_attribute(locus, "iLocus_type", "niLocus"); + { + gt_feature_node_add_attribute(locus, "iLocus_type", loctype); + } gt_queue_add(stream->locusqueue, locus); return 0; } diff --git a/src/core/AgnLocusStream.c b/src/core/AgnLocusStream.c index 93ea047..f0f7f1b 100644 --- a/src/core/AgnLocusStream.c +++ b/src/core/AgnLocusStream.c @@ -1,6 +1,6 @@ /** -Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS +Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS The AEGeAn Toolkit is distributed under the ISC License. See the 'LICENSE' file in the AEGeAn source code distribution or @@ -262,13 +262,12 @@ static void locus_stream_extend(AgnLocusStream *stream, AgnLocus *locus) locusrange.end); if(stream->endmode >= 0 && !stream->skip_iiLoci) { - AgnLocus *iilocus = agn_locus_new(seqid); - GtRange irange = { seqrange.start, - locusrange.start - stream->delta - 1 }; - agn_locus_set_range(iilocus, irange.start, irange.end); - GtFeatureNode *iilocfn = gt_feature_node_cast(iilocus); - gt_feature_node_add_attribute(iilocfn, "fragment", "true"); - gt_queue_add(stream->locusqueue, iilocus); + AgnLocus *filocus = agn_locus_new(seqid); + GtRange irange = {seqrange.start, locusrange.start - stream->delta - 1}; + agn_locus_set_range(filocus, irange.start, irange.end); + gt_genome_node_add_user_data(filocus, "iLocus_type", + gt_cstr_dup("fiLocus"), gt_free_func); + gt_queue_add(stream->locusqueue, filocus); } } else @@ -397,12 +396,12 @@ static void locus_stream_extend(AgnLocusStream *stream, AgnLocus *locus) locusrange.end + stream->delta); if(stream->endmode >= 0 && !stream->skip_iiLoci) { - AgnLocus *term_locus = agn_locus_new(seqid); - agn_locus_set_range(term_locus, - locusrange.end + stream->delta + 1, seqrange.end); - GtFeatureNode *tlfn = (GtFeatureNode *)term_locus; - gt_feature_node_add_attribute(tlfn, "fragment", "true"); - gt_queue_add(stream->locusqueue, term_locus); + AgnLocus *filocus = agn_locus_new(seqid); + GtRange irange = {locusrange.end + stream->delta + 1, seqrange.end}; + agn_locus_set_range(filocus, irange.start, irange.end); + gt_genome_node_add_user_data(filocus, "iLocus_type", + gt_cstr_dup("fiLocus"), gt_free_func); + gt_queue_add(stream->locusqueue, filocus); } } else @@ -863,4 +862,3 @@ static void locus_stream_unit_test_loci(AgnUnitTest *test) gt_queue_delete(queue); } - -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/aegean.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
