1 /* @source seqxref application
2 **
3 ** Return a sequence
4 **
5 ** @author Copyright (C) Peter Rice
6 ** @@
7 **
8 ** This program is free software; you can redistribute it and/or
9 ** modify it under the terms of the GNU General Public License
10 ** as published by the Free Software Foundation; either version 2
11 ** of the License, or (at your option) any later version.
12 **
13 ** This program is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ** GNU General Public License for more details.
17 **
18 ** You should have received a copy of the GNU General Public License
19 ** along with this program; if not, write to the Free Software
20 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 ******************************************************************************/
22
23 #include "emboss.h"
24
25
26
27
28 /* @prog seqxref **************************************************************
29 **
30 ** Reads sequences and reports all their cross-references
31 **
32 ******************************************************************************/
33
main(int argc,char ** argv)34 int main(int argc, char **argv)
35 {
36 AjPSeqall seqall;
37 AjPFile outf;
38 AjPSeq seq = NULL;
39 AjPList xrefs = NULL;
40 ajuint nrefs;
41 AjPSeqXref xref = NULL;
42
43 embInit("seqxref", argc, argv);
44
45 outf = ajAcdGetOutfile("outfile");
46 seqall = ajAcdGetSeqall("sequence");
47
48 xrefs = ajListNew();
49
50 while(ajSeqallNext(seqall, &seq))
51 {
52 nrefs = ajSeqGetXrefs(seq, xrefs);
53 ajSeqxreflistSort(xrefs);
54
55 ajFmtPrintF(outf, "#%S: %u\n", ajSeqGetUsaS(seq), nrefs);
56
57 while(ajListPop(xrefs, (void**)&xref))
58 {
59 ajFmtPrintF(outf, "%S:%S\n", xref->Db, xref->Id);
60 ajSeqxrefDel(&xref);
61 }
62 }
63
64 ajListFree(&xrefs);
65 ajSeqDel(&seq);
66
67 ajFileClose(&outf);
68 ajSeqallDel(&seqall);
69
70 embExit();
71
72 return 0;
73 }
74
75