Codebase list aegean / upstream/0.15.2+dfsg
Imported Upstream version 0.15.2+dfsg Sascha Steinbiss 8 years ago
15 changed file(s) with 99 addition(s) and 85 deletion(s). Raw diff Collapse all Expand all
11 All notable changes to this project will be documented in this file.
22 This project adheres to [Semantic Versioning](http://semver.org/).
33
4 ## [0.15.2] - 2016-03-17
5
6 ### Fixed
7 - Minor typo in AgnLocus class.
8 - Correct reporting of iLocus type.
49
510 ## [0.15.1] - 2016-01-08
611
11
22 AEGeAn: <b>a</b>nalysis and <b>e</b>valuation of <b>ge</b>nome <b>an</b>notations
33
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).
55 See LICENSE and for details.
6 Project homepage: http://standage.github.io/AEGeAn.
6 Project homepage: http://brendelgroup.github.io/AEGeAn.
77
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)
109 [![ReadTheDocs build status](https://readthedocs.org/projects/aegean/badge/?version=latest)](https://readthedocs.org/projects/aegean/badge/?version=latest)
11
0 v0.15.1 stable
0 v0.15.2 stable
55 #!genome-build-accession NCBI_Assembly:GCF_000204515.1
66 #!annotation-date
77 #!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
99 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
1212 NW_011626563.1 AEGeAn::LocusPocus locus 1537022 1540189 . . . liil=0;riil=0;iLocus_type=niLocus;child_gene=1;child_ncRNA=1
1313 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
55 #!genome-build-accession NCBI_Assembly:GCF_000002195.4
66 #!annotation-date 7 January 2014
77 #!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
55 #!genome-build-accession NCBI_Assembly:GCF_000002195.4
66 #!annotation-date 7 January 2014
77 #!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
2424 ##sequence-region seq24 1 800
2525 ##sequence-region seq25 1 799
2626 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 . . . .
2828 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 . . . .
3030 seq03 AEGeAn::LocusPocus locus 202 900 . . . child_gene=1;child_mRNA=1
3131 seq04 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1
3232 seq05 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1
3434 seq07 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=201
3535 seq07 AEGeAn::LocusPocus locus 801 1001 . . . fg_orient=FF
3636 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 . . . .
3838 seq08 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;riil=200
3939 seq08 AEGeAn::LocusPocus locus 801 1000 . . . fg_orient=FF
4040 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 . . . .
4242 seq09 AEGeAn::LocusPocus locus 1 900 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0
4343 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 . . . .
4545 seq10 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0
4646 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 . . . .
4848 seq11 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;iiLocus_exception=delta-re-extend;riil=0
4949 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 . . . .
5151 seq12 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=1;iiLocus_exception=delta-overlap-delta;riil=0
5252 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 . . . .
5454 seq13 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=198;iiLocus_exception=delta-overlap-delta;riil=0
5555 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 . . . .
5757 seq14 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=199;iiLocus_exception=delta-overlap-delta;riil=0
5858 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 . . . .
6060 seq15 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=200;iiLocus_exception=delta-overlap-delta;riil=0
6161 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 . . . .
6363 seq16 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=201;iiLocus_exception=delta-overlap-gene;riil=0
6464 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 . . . .
6666 seq17 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=395;iiLocus_exception=delta-overlap-gene;riil=0
6767 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 . . . .
6969 seq18 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=399;iiLocus_exception=delta-overlap-gene;riil=0
7070 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 . . . .
7272 seq19 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1;right_overlap=400;iiLocus_exception=delta-overlap-gene;riil=0
7373 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 . . . .
7575 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 . . . .
7777 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 . . . .
7979 seq22 AEGeAn::LocusPocus locus 1 999 . . . child_gene=1;child_mRNA=1
8080 seq23 AEGeAn::LocusPocus locus 1 801 . . . child_gene=1;child_mRNA=1
8181 seq24 AEGeAn::LocusPocus locus 1 800 . . . child_gene=1;child_mRNA=1
55 #!genome-build-accession NCBI_Assembly:GCF_000220905.1
66 #!annotation-date 7 April 2015
77 #!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
55 #!genome-build-accession NCBI_Assembly:GCF_000002325.3
66 #!annotation-date 3 June 2014
77 #!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
00 #!/usr/bin/env python
11
2 # Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS
2 # Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS
33 #
44 # The AEGeAn Toolkit is distributed under the ISC License. See
55 # the 'LICENSE' file in the AEGeAn source code distribution or
4444 attrs[key] = 0
4545 attrs[key] += value
4646
47 attrstring = 'merged=true;iLocus_type=miLocus'
47 attrstring = 'iLocus_type=miLocus'
4848 for key in sorted(attrs):
4949 attrstring += ';%s=%d' % (key, attrs[key])
5050 gff3 = [seqid, 'AEGeAn::miloci.py', 'locus', str(start), str(end),
8181 if len(prev_loci) > 0:
8282 yield merge_iloci(prev_loci)
8383 prev_loci = []
84 line = re.sub('ID=[^;\n]+;*', 'geneless=true;', line)
84 line = re.sub('ID=[^;\n]+;*', '', line)
8585 line = re.sub('Name=[^;\n]+;*', '', line)
8686 yield line
8787 if len(prev_loci) > 0:
00 #!/usr/bin/env python
11
2 # Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS
2 # Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS
33 #
44 # The AEGeAn Toolkit is distributed under the ISC License. See
55 # the 'LICENSE' file in the AEGeAn source code distribution or
110110 for seqid, seqlen in parse_gff3(args.infile):
111111 locid = args.idfmt % args.counter
112112 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
115115 fields = [seqid, args.src, 'locus', '1', str(seqlen), '.', '.', '.',
116116 attrs]
117117 print(*fields, sep='\t')
33 contributed to its code base.
44
55 * 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
78 * Sascha Steinbiss <steinbiss@zbh.uni-hamburg.de> and Gordon Gremme
89 <gordon@gremme.org>, integration with GenomeTools, including code examples
910 and implementing feature requests
343343 break;
344344 default:
345345 desc = NULL;
346 fprintf(stderr, "error: unknow comp classification %d\n", c);
346 fprintf(stderr, "error: unknown comp classification %d\n", c);
347347 break;
348348 }
349349 desc->comparison_count++;
00 /**
11
2 Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS
2 Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS
33
44 The AEGeAn Toolkit is distributed under the ISC License. See
55 the 'LICENSE' file in the AEGeAn source code distribution or
181181 if(elen)
182182 test1a = strcmp(elen, "11466") == 0;
183183 gt_genome_node_delete(locus);
184
184
185185 locus = gt_queue_get(queue);
186186 locusrange = gt_genome_node_get_range(locus);
187187 test1 = test1 && locusrange.start == 1916352 && locusrange.end == 1927323;
188188 gt_genome_node_delete(locus);
189
189
190190 locus = gt_queue_get(queue);
191191 locusrange = gt_genome_node_get_range(locus);
192192 test1 = test1 && locusrange.start == 1918157 && locusrange.end == 1921155;
210210 if(elen)
211211 test2a = strcmp(elen, "9660") == 0;
212212 gt_genome_node_delete(locus);
213
213
214214 locus = gt_queue_get(queue);
215215 locusrange = gt_genome_node_get_range(locus);
216216 test2 = test2 && locusrange.start == 11405 && locusrange.end == 18146;
292292 gt_array_delete(exons);
293293 return false;
294294 }
295
295
296296 GtUword i;
297297 bool overlap = false;
298298 for(i = 0; i < gt_array_size(exons); i++)
367367 gnrange.end = origrange.end;
368368 else
369369 gnrange.end += stream->delta;
370
370
371371 agn_locus_set_range(*gn, gnrange.start, gnrange.end);
372372 agn_assert(gt_range_contains(&origrange, &gnrange));
373373 gt_feature_node_set_source(fn, stream->source);
417417 break;
418418 }
419419 }
420
420
421421 // If the iLoci are all coding or all non-coding, just assign their collective
422422 // length (sans overlap from previous unrefined iLocus) to the first refined
423423 // iLocus.
448448 }
449449 }
450450 }
451 const char *typestr = "piLocus";
451 const char *typestr = "siLocus";
452452 if(coding_status == false)
453453 typestr = "niLocus";
454454 else if(agn_locus_num_genes(*gn) > 1)
455455 {
456 typestr = "complex";
456 typestr = "ciLocus";
457457
458458 char exceptstr[32];
459459 GtUword genenum = agn_typecheck_count(origfn, agn_typecheck_gene);
491491 bool cds1 = agn_locus_num_mrnas(*gn1) > 0;
492492 if(cds1 == true)
493493 {
494 gt_feature_node_add_attribute(fn1, "iLocus_type", "piLocus");
494 gt_feature_node_add_attribute(fn1, "iLocus_type", "siLocus");
495495 gt_feature_node_add_attribute(fn2, "iLocus_type", "niLocus");
496496 }
497497 else
498498 {
499499 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");
501501 }
502502
503503 const char *exc = gt_feature_node_get_attribute(fn2, "iiLocus_exception");
523523 gt_feature_node_add_attribute(fn1, "riil", orig_riil);
524524 }
525525 }
526
526
527527 // The genes overlap
528528 else
529529 {
610610 gt_feature_node_add_attribute(fn, "riil", "0");
611611 }
612612
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";
621625 }
622626 gt_feature_node_add_attribute(fn, "iLocus_type", type);
623627 }
654658 sprintf(lenstr, "%lu", gt_range_length(&rng) - ro);
655659 gt_feature_node_add_attribute(locus, "effective_length", lenstr);
656660
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 }
661671 else
662 gt_feature_node_add_attribute(locus, "iLocus_type", "niLocus");
672 {
673 gt_feature_node_add_attribute(locus, "iLocus_type", loctype);
674 }
663675 gt_queue_add(stream->locusqueue, locus);
664676 return 0;
665677 }
00 /**
11
2 Copyright (c) 2010-2015, Daniel S. Standage and CONTRIBUTORS
2 Copyright (c) 2010-2016, Daniel S. Standage and CONTRIBUTORS
33
44 The AEGeAn Toolkit is distributed under the ISC License. See
55 the 'LICENSE' file in the AEGeAn source code distribution or
261261 locusrange.end);
262262 if(stream->endmode >= 0 && !stream->skip_iiLoci)
263263 {
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);
271270 }
272271 }
273272 else
396395 locusrange.end + stream->delta);
397396 if(stream->endmode >= 0 && !stream->skip_iiLoci)
398397 {
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);
405404 }
406405 }
407406 else
862861
863862 gt_queue_delete(queue);
864863 }
865