Imported Upstream version 0.15.2+dfsg
Sascha Steinbiss
8 years ago
1 | 1 | All notable changes to this project will be documented in this file. |
2 | 2 | This project adheres to [Semantic Versioning](http://semver.org/). |
3 | 3 | |
4 | ## [0.15.2] - 2016-03-17 | |
5 | ||
6 | ### Fixed | |
7 | - Minor typo in AgnLocus class. | |
8 | - Correct reporting of iLocus type. | |
4 | 9 | |
5 | 10 | ## [0.15.1] - 2016-01-08 |
6 | 11 |
1 | 1 | |
2 | 2 | AEGeAn: <b>a</b>nalysis and <b>e</b>valuation of <b>ge</b>nome <b>an</b>notations |
3 | 3 | |
4 | Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS. | |
4 | Copyright (c) 2010-2016, Daniel S. Standage and [CONTRIBUTORS](https://github.com/BrendelGroup/AEGeAn/blob/master/docs/contrib.rst). | |
5 | 5 | See LICENSE and for details. |
6 | Project homepage: http://standage.github.io/AEGeAn. | |
6 | Project homepage: http://brendelgroup.github.io/AEGeAn. | |
7 | 7 | |
8 | [![AEGeAn build status](https://api.travis-ci.org/standage/AEGeAn.svg?branch=master)](https://travis-ci.org/standage/AEGeAn) | |
9 | [![Coverity Scan build status](https://scan.coverity.com/projects/1021/badge.svg)](https://scan.coverity.com/projects/1021) | |
8 | [![AEGeAn build status](https://api.travis-ci.org/BrendelGroup/AEGeAn.svg?branch=master)](https://travis-ci.org/BrendelGroup/AEGeAn) | |
10 | 9 | [![ReadTheDocs build status](https://readthedocs.org/projects/aegean/badge/?version=latest)](https://readthedocs.org/projects/aegean/badge/?version=latest) |
11 |
5 | 5 | #!genome-build-accession NCBI_Assembly:GCF_000204515.1 |
6 | 6 | #!annotation-date |
7 | 7 | #!annotation-source NCBI Acromyrmex echinatior Annotation Release 100 |
8 | NW_011626563.1 AEGeAn::LocusPocus locus 1190754 1200781 . . . child_gene=1;child_mRNA=2;riil=769;effective_length=10028;iLocus_type=piLocus | |
8 | NW_011626563.1 AEGeAn::LocusPocus locus 1190754 1200781 . . . child_gene=1;child_mRNA=2;riil=769;effective_length=10028;iLocus_type=siLocus | |
9 | 9 | NW_011626563.1 AEGeAn::LocusPocus locus 1200782 1201550 . . . fg_orient=FR;effective_length=769;iLocus_type=iiLocus |
10 | 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 | |
11 | 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 | |
10 | 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 | |
11 | 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 | |
12 | 12 | NW_011626563.1 AEGeAn::LocusPocus locus 1537022 1540189 . . . liil=0;riil=0;iLocus_type=niLocus;child_gene=1;child_ncRNA=1 |
13 | 13 | NW_011626563.1 AEGeAn::LocusPocus locus 1566217 1575100 . . . fg_orient=RR;effective_length=8884;iLocus_type=iiLocus |
14 | NW_011626563.1 AEGeAn::LocusPocus locus 1575101 1579176 . . . liil=8884;child_gene=1;child_mRNA=1;effective_length=4076;iLocus_type=piLocus | |
14 | NW_011626563.1 AEGeAn::LocusPocus locus 1575101 1579176 . . . liil=8884;child_gene=1;child_mRNA=1;effective_length=4076;iLocus_type=siLocus |
5 | 5 | #!genome-build-accession NCBI_Assembly:GCF_000002195.4 |
6 | 6 | #!annotation-date 7 January 2014 |
7 | 7 | #!annotation-source NCBI Apis mellifera Annotation Release 102 |
8 | 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 | |
9 | NC_007079.3 AEGeAn::LocusPocus locus 8270498 8273178 . . . liil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 | |
8 | 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 | |
9 | NC_007079.3 AEGeAn::LocusPocus locus 8270498 8273178 . . . liil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 |
5 | 5 | #!genome-build-accession NCBI_Assembly:GCF_000002195.4 |
6 | 6 | #!annotation-date 7 January 2014 |
7 | 7 | #!annotation-source NCBI Apis mellifera Annotation Release 102 |
8 | 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 | |
9 | NC_007077.3 AEGeAn::LocusPocus locus 8817660 8822332 . . . liil=0;iLocus_type=piLocus;child_gene=1;child_mRNA=1 | |
8 | 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 | |
9 | NC_007077.3 AEGeAn::LocusPocus locus 8817660 8822332 . . . liil=0;iLocus_type=siLocus;child_gene=1;child_mRNA=1 |
24 | 24 | ##sequence-region seq24 1 800 |
25 | 25 | ##sequence-region seq25 1 799 |
26 | 26 | seq01 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 |
27 | seq02 AEGeAn::LocusPocus locus 1 200 . . . fragment=true | |
27 | seq02 AEGeAn::LocusPocus locus 1 200 . . . . | |
28 | 28 | seq02 AEGeAn::LocusPocus locus 201 900 . . . child_gene=1;child_mRNA=1 |
29 | seq03 AEGeAn::LocusPocus locus 1 201 . . . fragment=true | |
29 | seq03 AEGeAn::LocusPocus locus 1 201 . . . . | |
30 | 30 | seq03 AEGeAn::LocusPocus locus 202 900 . . . child_gene=1;child_mRNA=1 |
31 | 31 | seq04 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 |
32 | 32 | seq05 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1 |
34 | 34 | seq07 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=201 |
35 | 35 | seq07 AEGeAn::LocusPocus locus 801 1001 . . . fg_orient=FF |
36 | 36 | seq07 AEGeAn::LocusPocus locus 1002 1600 . . . liil=201;child_gene=1;child_mRNA=1 |
37 | seq07 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true | |
37 | seq07 AEGeAn::LocusPocus locus 1601 2000 . . . . | |
38 | 38 | seq08 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=200 |
39 | 39 | seq08 AEGeAn::LocusPocus locus 801 1000 . . . fg_orient=FF |
40 | 40 | seq08 AEGeAn::LocusPocus locus 1001 1600 . . . liil=200;child_gene=1;child_mRNA=1 |
41 | seq08 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true | |
41 | seq08 AEGeAn::LocusPocus locus 1601 2000 . . . . | |
42 | 42 | seq09 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 |
43 | 43 | seq09 AEGeAn::LocusPocus locus 901 1600 . . . liil=0;child_gene=1;child_mRNA=1 |
44 | seq09 AEGeAn::LocusPocus locus 1601 2000 . . . fragment=true | |
44 | seq09 AEGeAn::LocusPocus locus 1601 2000 . . . . | |
45 | 45 | seq10 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 |
46 | 46 | seq10 AEGeAn::LocusPocus locus 802 1500 . . . liil=0;child_gene=1;child_mRNA=1 |
47 | seq10 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true | |
47 | seq10 AEGeAn::LocusPocus locus 1501 2000 . . . . | |
48 | 48 | seq11 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0 |
49 | 49 | seq11 AEGeAn::LocusPocus locus 801 1500 . . . liil=0;child_gene=1;child_mRNA=1 |
50 | seq11 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true | |
50 | seq11 AEGeAn::LocusPocus locus 1501 2000 . . . . | |
51 | 51 | seq12 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=1;iiLocus_exception=delta-overlap-delta;riil=0 |
52 | 52 | seq12 AEGeAn::LocusPocus locus 800 1500 . . . left_overlap=1;liil=0;child_gene=1;child_mRNA=1 |
53 | seq12 AEGeAn::LocusPocus locus 1501 2000 . . . fragment=true | |
53 | seq12 AEGeAn::LocusPocus locus 1501 2000 . . . . | |
54 | 54 | seq13 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=198;iiLocus_exception=delta-overlap-delta;riil=0 |
55 | 55 | seq13 AEGeAn::LocusPocus locus 603 1300 . . . left_overlap=198;liil=0;child_gene=1;child_mRNA=1 |
56 | seq13 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true | |
56 | seq13 AEGeAn::LocusPocus locus 1301 1500 . . . . | |
57 | 57 | seq14 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=199;iiLocus_exception=delta-overlap-delta;riil=0 |
58 | 58 | seq14 AEGeAn::LocusPocus locus 602 1300 . . . left_overlap=199;liil=0;child_gene=1;child_mRNA=1 |
59 | seq14 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true | |
59 | seq14 AEGeAn::LocusPocus locus 1301 1500 . . . . | |
60 | 60 | seq15 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=200;iiLocus_exception=delta-overlap-delta;riil=0 |
61 | 61 | seq15 AEGeAn::LocusPocus locus 601 1300 . . . left_overlap=200;liil=0;child_gene=1;child_mRNA=1 |
62 | seq15 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true | |
62 | seq15 AEGeAn::LocusPocus locus 1301 1500 . . . . | |
63 | 63 | seq16 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=201;iiLocus_exception=delta-overlap-gene;riil=0 |
64 | 64 | seq16 AEGeAn::LocusPocus locus 600 1300 . . . left_overlap=201;liil=0;child_gene=1;child_mRNA=1 |
65 | seq16 AEGeAn::LocusPocus locus 1301 1500 . . . fragment=true | |
65 | seq16 AEGeAn::LocusPocus locus 1301 1500 . . . . | |
66 | 66 | seq17 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=395;iiLocus_exception=delta-overlap-gene;riil=0 |
67 | 67 | seq17 AEGeAn::LocusPocus locus 406 1200 . . . left_overlap=395;liil=0;child_gene=1;child_mRNA=1 |
68 | seq17 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true | |
68 | seq17 AEGeAn::LocusPocus locus 1201 1500 . . . . | |
69 | 69 | seq18 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=399;iiLocus_exception=delta-overlap-gene;riil=0 |
70 | 70 | seq18 AEGeAn::LocusPocus locus 402 1200 . . . left_overlap=399;liil=0;child_gene=1;child_mRNA=1 |
71 | seq18 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true | |
71 | seq18 AEGeAn::LocusPocus locus 1201 1500 . . . . | |
72 | 72 | seq19 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=400;iiLocus_exception=delta-overlap-gene;riil=0 |
73 | 73 | seq19 AEGeAn::LocusPocus locus 401 1200 . . . left_overlap=400;liil=0;child_gene=1;child_mRNA=1 |
74 | seq19 AEGeAn::LocusPocus locus 1201 1500 . . . fragment=true | |
74 | seq19 AEGeAn::LocusPocus locus 1201 1500 . . . . | |
75 | 75 | seq20 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 |
76 | seq20 AEGeAn::LocusPocus locus 801 1001 . . . fragment=true | |
76 | seq20 AEGeAn::LocusPocus locus 801 1001 . . . . | |
77 | 77 | seq21 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 |
78 | seq21 AEGeAn::LocusPocus locus 801 1000 . . . fragment=true | |
78 | seq21 AEGeAn::LocusPocus locus 801 1000 . . . . | |
79 | 79 | seq22 AEGeAn::LocusPocus locus 1 999 . . . child_gene=1;child_mRNA=1 |
80 | 80 | seq23 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1 |
81 | 81 | seq24 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1 |
5 | 5 | #!genome-build-accession NCBI_Assembly:GCF_000220905.1 |
6 | 6 | #!annotation-date 7 April 2015 |
7 | 7 | #!annotation-source NCBI Megachile rotundata Annotation Release 101 |
8 | NW_003797177.1 AEGeAn::LocusPocus locus 9652 19311 . . . effective_length=9660;iLocus_type=piLocus;child_gene=1;child_mRNA=1 | |
9 | NW_003797177.1 AEGeAn::LocusPocus locus 11405 18146 . . . iiLocus_exception=intron-gene;iLocus_type=piLocus;child_gene=1;child_mRNA=4 | |
8 | NW_003797177.1 AEGeAn::LocusPocus locus 9652 19311 . . . effective_length=9660;iLocus_type=siLocus;child_gene=1;child_mRNA=1 | |
9 | NW_003797177.1 AEGeAn::LocusPocus locus 11405 18146 . . . iiLocus_exception=intron-gene;iLocus_type=siLocus;child_gene=1;child_mRNA=4 |
5 | 5 | #!genome-build-accession NCBI_Assembly:GCF_000002325.3 |
6 | 6 | #!annotation-date 3 June 2014 |
7 | 7 | #!annotation-source NCBI Nasonia vitripennis Annotation Release 101 |
8 | 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 | |
9 | NC_015867.2 AEGeAn::LocusPocus locus 372891 380536 . . . effective_length=6758;iLocus_type=piLocus;child_gene=1;child_mRNA=1 | |
10 | NC_015867.2 AEGeAn::LocusPocus locus 374998 378903 . . . iiLocus_exception=intron-gene;iLocus_type=piLocus;child_gene=1;child_mRNA=1 | |
11 | 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 | |
8 | 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 | |
9 | NC_015867.2 AEGeAn::LocusPocus locus 372891 380536 . . . effective_length=6758;iLocus_type=siLocus;child_gene=1;child_mRNA=1 | |
10 | NC_015867.2 AEGeAn::LocusPocus locus 374998 378903 . . . iiLocus_exception=intron-gene;iLocus_type=siLocus;child_gene=1;child_mRNA=1 | |
11 | 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 |
0 | 0 | #!/usr/bin/env python |
1 | 1 | |
2 | # Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS | |
2 | # Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS | |
3 | 3 | # |
4 | 4 | # The AEGeAn Toolkit is distributed under the ISC License. See |
5 | 5 | # the 'LICENSE' file in the AEGeAn source code distribution or |
44 | 44 | attrs[key] = 0 |
45 | 45 | attrs[key] += value |
46 | 46 | |
47 | attrstring = 'merged=true;iLocus_type=miLocus' | |
47 | attrstring = 'iLocus_type=miLocus' | |
48 | 48 | for key in sorted(attrs): |
49 | 49 | attrstring += ';%s=%d' % (key, attrs[key]) |
50 | 50 | gff3 = [seqid, 'AEGeAn::miloci.py', 'locus', str(start), str(end), |
81 | 81 | if len(prev_loci) > 0: |
82 | 82 | yield merge_iloci(prev_loci) |
83 | 83 | prev_loci = [] |
84 | line = re.sub('ID=[^;\n]+;*', 'geneless=true;', line) | |
84 | line = re.sub('ID=[^;\n]+;*', '', line) | |
85 | 85 | line = re.sub('Name=[^;\n]+;*', '', line) |
86 | 86 | yield line |
87 | 87 | if len(prev_loci) > 0: |
0 | 0 | #!/usr/bin/env python |
1 | 1 | |
2 | # Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS | |
2 | # Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS | |
3 | 3 | # |
4 | 4 | # The AEGeAn Toolkit is distributed under the ISC License. See |
5 | 5 | # the 'LICENSE' file in the AEGeAn source code distribution or |
110 | 110 | for seqid, seqlen in parse_gff3(args.infile): |
111 | 111 | locid = args.idfmt % args.counter |
112 | 112 | args.counter += 1 |
113 | attrs = 'ID=%s;Name=%s;fragment=true;unannot=true;' % (locid, locid) | |
114 | attrs += 'iLocus_type=iiLocus;effective_length=%d' % seqlen | |
113 | attrs = 'ID=%s;Name=%s;unannot=true;' % (locid, locid) | |
114 | attrs += 'iLocus_type=fiLocus;effective_length=%d' % seqlen | |
115 | 115 | fields = [seqid, args.src, 'locus', '1', str(seqlen), '.', '.', '.', |
116 | 116 | attrs] |
117 | 117 | print(*fields, sep='\t') |
3 | 3 | contributed to its code base. |
4 | 4 | |
5 | 5 | * Daniel S. Standage <daniel.standage@gmail.com>, primary developer |
6 | * Volker Brendel <vbrendel@indiana.edu>, supervision and testing | |
6 | * Volker Brendel <vbrendel@indiana.edu>, intellectual development, supervision, | |
7 | and testing | |
7 | 8 | * Sascha Steinbiss <steinbiss@zbh.uni-hamburg.de> and Gordon Gremme |
8 | 9 | <gordon@gremme.org>, integration with GenomeTools, including code examples |
9 | 10 | and implementing feature requests |
343 | 343 | break; |
344 | 344 | default: |
345 | 345 | desc = NULL; |
346 | fprintf(stderr, "error: unknow comp classification %d\n", c); | |
346 | fprintf(stderr, "error: unknown comp classification %d\n", c); | |
347 | 347 | break; |
348 | 348 | } |
349 | 349 | desc->comparison_count++; |
0 | 0 | /** |
1 | 1 | |
2 | Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS | |
2 | Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS | |
3 | 3 | |
4 | 4 | The AEGeAn Toolkit is distributed under the ISC License. See |
5 | 5 | the 'LICENSE' file in the AEGeAn source code distribution or |
181 | 181 | if(elen) |
182 | 182 | test1a = strcmp(elen, "11466") == 0; |
183 | 183 | gt_genome_node_delete(locus); |
184 | ||
184 | ||
185 | 185 | locus = gt_queue_get(queue); |
186 | 186 | locusrange = gt_genome_node_get_range(locus); |
187 | 187 | test1 = test1 && locusrange.start == 1916352 && locusrange.end == 1927323; |
188 | 188 | gt_genome_node_delete(locus); |
189 | ||
189 | ||
190 | 190 | locus = gt_queue_get(queue); |
191 | 191 | locusrange = gt_genome_node_get_range(locus); |
192 | 192 | test1 = test1 && locusrange.start == 1918157 && locusrange.end == 1921155; |
210 | 210 | if(elen) |
211 | 211 | test2a = strcmp(elen, "9660") == 0; |
212 | 212 | gt_genome_node_delete(locus); |
213 | ||
213 | ||
214 | 214 | locus = gt_queue_get(queue); |
215 | 215 | locusrange = gt_genome_node_get_range(locus); |
216 | 216 | test2 = test2 && locusrange.start == 11405 && locusrange.end == 18146; |
292 | 292 | gt_array_delete(exons); |
293 | 293 | return false; |
294 | 294 | } |
295 | ||
295 | ||
296 | 296 | GtUword i; |
297 | 297 | bool overlap = false; |
298 | 298 | for(i = 0; i < gt_array_size(exons); i++) |
367 | 367 | gnrange.end = origrange.end; |
368 | 368 | else |
369 | 369 | gnrange.end += stream->delta; |
370 | ||
370 | ||
371 | 371 | agn_locus_set_range(*gn, gnrange.start, gnrange.end); |
372 | 372 | agn_assert(gt_range_contains(&origrange, &gnrange)); |
373 | 373 | gt_feature_node_set_source(fn, stream->source); |
417 | 417 | break; |
418 | 418 | } |
419 | 419 | } |
420 | ||
420 | ||
421 | 421 | // If the iLoci are all coding or all non-coding, just assign their collective |
422 | 422 | // length (sans overlap from previous unrefined iLocus) to the first refined |
423 | 423 | // iLocus. |
448 | 448 | } |
449 | 449 | } |
450 | 450 | } |
451 | const char *typestr = "piLocus"; | |
451 | const char *typestr = "siLocus"; | |
452 | 452 | if(coding_status == false) |
453 | 453 | typestr = "niLocus"; |
454 | 454 | else if(agn_locus_num_genes(*gn) > 1) |
455 | 455 | { |
456 | typestr = "complex"; | |
456 | typestr = "ciLocus"; | |
457 | 457 | |
458 | 458 | char exceptstr[32]; |
459 | 459 | GtUword genenum = agn_typecheck_count(origfn, agn_typecheck_gene); |
491 | 491 | bool cds1 = agn_locus_num_mrnas(*gn1) > 0; |
492 | 492 | if(cds1 == true) |
493 | 493 | { |
494 | gt_feature_node_add_attribute(fn1, "iLocus_type", "piLocus"); | |
494 | gt_feature_node_add_attribute(fn1, "iLocus_type", "siLocus"); | |
495 | 495 | gt_feature_node_add_attribute(fn2, "iLocus_type", "niLocus"); |
496 | 496 | } |
497 | 497 | else |
498 | 498 | { |
499 | 499 | gt_feature_node_add_attribute(fn1, "iLocus_type", "niLocus"); |
500 | gt_feature_node_add_attribute(fn2, "iLocus_type", "piLocus"); | |
500 | gt_feature_node_add_attribute(fn2, "iLocus_type", "siLocus"); | |
501 | 501 | } |
502 | 502 | |
503 | 503 | const char *exc = gt_feature_node_get_attribute(fn2, "iiLocus_exception"); |
523 | 523 | gt_feature_node_add_attribute(fn1, "riil", orig_riil); |
524 | 524 | } |
525 | 525 | } |
526 | ||
526 | ||
527 | 527 | // The genes overlap |
528 | 528 | else |
529 | 529 | { |
610 | 610 | gt_feature_node_add_attribute(fn, "riil", "0"); |
611 | 611 | } |
612 | 612 | |
613 | const char *type = "complex"; | |
614 | if(agn_locus_num_genes(*gn) == 1) | |
615 | { | |
616 | if(agn_locus_num_mrnas(*gn) > 0) | |
617 | type = "piLocus"; | |
618 | else | |
619 | type = "niLocus"; | |
620 | ||
613 | const char *type = ""; | |
614 | if(agn_locus_num_mrnas(*gn) == 0) | |
615 | { | |
616 | type = "niLocus"; | |
617 | } | |
618 | else if(agn_locus_num_genes(*gn) == 1) | |
619 | { | |
620 | type = "siLocus"; | |
621 | } | |
622 | else | |
623 | { | |
624 | type = "ciLocus"; | |
621 | 625 | } |
622 | 626 | gt_feature_node_add_attribute(fn, "iLocus_type", type); |
623 | 627 | } |
654 | 658 | sprintf(lenstr, "%lu", gt_range_length(&rng) - ro); |
655 | 659 | gt_feature_node_add_attribute(locus, "effective_length", lenstr); |
656 | 660 | |
657 | if(gt_feature_node_number_of_children(locus) == 0) | |
658 | gt_feature_node_add_attribute(locus, "iLocus_type", "iiLocus"); | |
659 | else if(agn_locus_num_mrnas(gn) > 0) | |
660 | gt_feature_node_add_attribute(locus, "iLocus_type", "piLocus"); | |
661 | const char *loctype = gt_genome_node_get_user_data(gn, "iLocus_type"); | |
662 | if(loctype == NULL) | |
663 | { | |
664 | if(gt_feature_node_number_of_children(locus) == 0) | |
665 | gt_feature_node_add_attribute(locus, "iLocus_type", "iiLocus"); | |
666 | else if(agn_locus_num_mrnas(gn) > 0) | |
667 | gt_feature_node_add_attribute(locus, "iLocus_type", "siLocus"); | |
668 | else | |
669 | gt_feature_node_add_attribute(locus, "iLocus_type", "niLocus"); | |
670 | } | |
661 | 671 | else |
662 | gt_feature_node_add_attribute(locus, "iLocus_type", "niLocus"); | |
672 | { | |
673 | gt_feature_node_add_attribute(locus, "iLocus_type", loctype); | |
674 | } | |
663 | 675 | gt_queue_add(stream->locusqueue, locus); |
664 | 676 | return 0; |
665 | 677 | } |
0 | 0 | /** |
1 | 1 | |
2 | Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS | |
2 | Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS | |
3 | 3 | |
4 | 4 | The AEGeAn Toolkit is distributed under the ISC License. See |
5 | 5 | the 'LICENSE' file in the AEGeAn source code distribution or |
261 | 261 | locusrange.end); |
262 | 262 | if(stream->endmode >= 0 && !stream->skip_iiLoci) |
263 | 263 | { |
264 | AgnLocus *iilocus = agn_locus_new(seqid); | |
265 | GtRange irange = { seqrange.start, | |
266 | locusrange.start - stream->delta - 1 }; | |
267 | agn_locus_set_range(iilocus, irange.start, irange.end); | |
268 | GtFeatureNode *iilocfn = gt_feature_node_cast(iilocus); | |
269 | gt_feature_node_add_attribute(iilocfn, "fragment", "true"); | |
270 | gt_queue_add(stream->locusqueue, iilocus); | |
264 | AgnLocus *filocus = agn_locus_new(seqid); | |
265 | GtRange irange = {seqrange.start, locusrange.start - stream->delta - 1}; | |
266 | agn_locus_set_range(filocus, irange.start, irange.end); | |
267 | gt_genome_node_add_user_data(filocus, "iLocus_type", | |
268 | gt_cstr_dup("fiLocus"), gt_free_func); | |
269 | gt_queue_add(stream->locusqueue, filocus); | |
271 | 270 | } |
272 | 271 | } |
273 | 272 | else |
396 | 395 | locusrange.end + stream->delta); |
397 | 396 | if(stream->endmode >= 0 && !stream->skip_iiLoci) |
398 | 397 | { |
399 | AgnLocus *term_locus = agn_locus_new(seqid); | |
400 | agn_locus_set_range(term_locus, | |
401 | locusrange.end + stream->delta + 1, seqrange.end); | |
402 | GtFeatureNode *tlfn = (GtFeatureNode *)term_locus; | |
403 | gt_feature_node_add_attribute(tlfn, "fragment", "true"); | |
404 | gt_queue_add(stream->locusqueue, term_locus); | |
398 | AgnLocus *filocus = agn_locus_new(seqid); | |
399 | GtRange irange = {locusrange.end + stream->delta + 1, seqrange.end}; | |
400 | agn_locus_set_range(filocus, irange.start, irange.end); | |
401 | gt_genome_node_add_user_data(filocus, "iLocus_type", | |
402 | gt_cstr_dup("fiLocus"), gt_free_func); | |
403 | gt_queue_add(stream->locusqueue, filocus); | |
405 | 404 | } |
406 | 405 | } |
407 | 406 | else |
862 | 861 | |
863 | 862 | gt_queue_delete(queue); |
864 | 863 | } |
865 |