source: tags/initial/CONVERTALN/fconv.c

Last change on this file was 2, checked in by oldcode, 24 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.9 KB
Line 
1/* ------------- File format converting subroutine ------------- */
2
3#include <stdio.h>
4#include "convert.h"
5#include "global.h"
6
7/* ------------------------------------------------------------- */
8/*      Function convert().
9/*              For given input file and type, convert the file
10/*                      to desired out type and save the result in
11/*                      the out file.
12*/
13convert(inf, outf, intype, outype)     
14char    *inf, *outf;
15int     intype, outype;
16{
17        void    genbank_to_macke(), genbank_to_genbank(); 
18        void    genbank_to_embl();
19        void    embl_to_macke(), embl_to_genbank();
20        void    embl_to_embl();
21        void    macke_to_genbank(), macke_to_embl();
22        void    to_gcg(), to_paup(), to_phylip(), to_printable();
23        void    alma_to_macke(), alma_to_genbank();
24        void    embl_to_alma(), macke_to_alma(), genbank_to_alma();
25        int     Cmpstr();
26        int     dd;             /* copy stdin to outfile after first line */
27        dd = 0;
28        if (outype == PHYLIP2){
29            outype = PHYLIP;
30            dd = 1;
31        }
32       
33        if(Cmpstr(inf, outf)==EQ)
34                error(45, "Input file and output file must be different file.\n");
35               if(intype==GENBANK&&outype==MACKE)       {
36                genbank_to_macke(inf, outf);
37        } else if(intype==GENBANK&&outype==GENBANK)     {
38                genbank_to_genbank(inf, outf);
39        } else if(intype==GENBANK&&outype==PAUP)        {
40                to_paup(inf, outf, GENBANK);
41        } else if(intype==GENBANK&&outype==PHYLIP)      {
42                to_phylip(inf, outf, GENBANK,dd);
43        } else if(intype==GENBANK&&outype==PROTEIN)     {
44                error(69, "Sorry, cannot convert from GENBANK to SWISSPROT, Exit");
45        } else if(intype==GENBANK&&outype==EMBL)        {
46                genbank_to_embl(inf, outf);
47        } else if(intype==GENBANK&&outype==PRINTABLE)   {
48                to_printable(inf, outf, GENBANK);
49        } else if(intype==GENBANK&&outype==ALMA)        {
50                genbank_to_alma(inf, outf);
51        } else if(intype==MACKE&&outype==GENBANK)       {
52                macke_to_genbank(inf, outf);
53        } else if(intype==MACKE&&outype==PAUP)          {
54                to_paup(inf, outf, MACKE);
55        } else if(intype==MACKE&&outype==PHYLIP)        {
56                to_phylip(inf, outf, MACKE,dd);
57        } else if(intype==MACKE&&outype==PROTEIN)       {
58                macke_to_embl(inf, outf);
59        } else if(intype==MACKE&&outype==EMBL)  {
60                macke_to_embl(inf, outf);
61        } else if(intype==MACKE&&outype==PRINTABLE)     {
62                to_printable(inf, outf, MACKE);
63        } else if(intype==MACKE&&outype==ALMA)  {
64                macke_to_alma(inf, outf);
65        } else if(intype==PAUP&&outype==GENBANK)        {
66                error(6, "Sorry, cannot convert from Paup to GENBANK, Exit.\n");
67        } else if(intype==PAUP&&outype==MACKE)          {
68                error(81, "Sorry, cannot convert from Paup to AE2, Exit.\n");
69        } else if(intype==PAUP&&outype==PHYLIP)         {
70                error(8, "Sorry, cannot convert from Paup to Phylip, Exit.\n");
71        } else if(intype==PAUP&&outype==PROTEIN)                {
72                error(71, "Sorry, cannot convert from Paup to SWISSPROT, Exit.");
73        } else if(intype==PAUP&&outype==EMBL)           {
74                error(78, "Sorry, cannot convert from Paup to SWISSPROT, Exit.");
75        } else if(intype==PHYLIP&&outype==GENBANK)      {
76                error(85, "Sorry, cannot convert from Phylip to GenBank, Exit.\n");
77        } else if(intype==PHYLIP&&outype==MACKE)        {
78                error(88, "Sorry, cannot convert from Phylip to AE2, Exit.\n");
79        } else if(intype==PHYLIP&&outype==PAUP)         {
80                error(89, "Sorry, cannot convert from Phylip to Paup, Exit.\n");
81        } else if(intype==PHYLIP&&outype==PROTEIN)              {
82                error(72, "Sorry, cannot convert from Phylip to SWISSPROT, Exit.\n");
83        } else if(intype==PHYLIP&&outype==EMBL)         {
84                error(79, "Sorry, cannot convert from Phylip to SWISSPROT, Exit.\n");
85        } else if(intype==PROTEIN&&outype==MACKE)       {
86                embl_to_macke(inf, outf, PROTEIN);
87        } else if(intype==PROTEIN&&outype==GENBANK)     {
88                error(78, "GenBank doesn't maintain protein data.");
89                /* embl_to_genbank(inf, outf, PROTEIN); */
90                /* protein_to_genbank(inf, outf);  */
91        } else if(intype==PROTEIN&&outype==PAUP)        {
92                to_paup(inf, outf, PROTEIN);
93        } else if(intype==PROTEIN&&outype==PHYLIP)      {
94                to_phylip(inf, outf, PROTEIN,dd);
95        } else if(intype==PROTEIN&&outype==EMBL)        {
96                error(58, "EMBL doesn't maintain protein data.");
97                /* embl_to_embl(inf, outf, PROTEIN); */
98        } else if(intype==PROTEIN&&outype==PRINTABLE)   {
99                to_printable(inf, outf, PROTEIN);
100        } else if(intype==EMBL&&outype==EMBL)   {
101                embl_to_embl(inf, outf, EMBL);
102        } else if(intype==EMBL&&outype==GENBANK)        {
103                embl_to_genbank(inf, outf, EMBL);
104        } else if(intype==EMBL&&outype==MACKE)  {
105                embl_to_macke(inf, outf, EMBL);
106        } else if(intype==EMBL&&outype==PROTEIN)        {
107                embl_to_embl(inf, outf, EMBL);
108        } else if(intype==EMBL&&outype==PAUP)   {
109                to_paup(inf, outf, EMBL);
110        } else if(intype==EMBL&&outype==PHYLIP) {
111                to_phylip(inf, outf, EMBL,dd);
112        } else if(intype==EMBL&&outype==PRINTABLE)      {
113                to_printable(inf, outf, EMBL);
114        } else if(intype==EMBL&&outype==ALMA)   {
115                embl_to_alma(inf, outf);
116        } else if(intype==ALMA&&outype==MACKE)  {
117                alma_to_macke(inf, outf);
118        } else if(intype==ALMA&&outype==GENBANK)        {
119                alma_to_genbank(inf, outf);
120        } else if(intype==ALMA&&outype==PAUP)   {
121                to_paup(inf, outf, ALMA);
122        } else if(intype==ALMA&&outype==PHYLIP) {
123                to_phylip(inf, outf, ALMA,dd);
124        } else if(intype==ALMA&&outype==PRINTABLE)      {
125                to_printable(inf, outf, ALMA);
126        } else if(outype==GCG)  {
127                to_gcg(intype, inf);
128        } else  error(90, "Unidentified input type or output type, Exit\n");
129}
130
131/* ------------------- COMMON SUBROUTINES ----------------------- */
132
133/* -------------------------------------------------------------- */
134/*      Function init().
135/*      Initialize data structure at the very beginning of running
136/*              any program.
137*/
138void
139init()  {
140
141/* initialize macke format */
142        data.macke.seqabbr=NULL;
143        data.macke.name=NULL;
144        data.macke.atcc=NULL;
145        data.macke.rna=NULL;
146        data.macke.date=NULL;
147        data.macke.nbk=NULL;
148        data.macke.acs=NULL;
149        data.macke.who=NULL;
150        data.macke.remarks=NULL;
151        data.macke.numofrem=0;
152        data.macke.rna_or_dna='d';
153        data.macke.journal=NULL;
154        data.macke.title=NULL;
155        data.macke.author=NULL;
156        data.macke.strain=NULL;
157        data.macke.subspecies=NULL;
158/* initialize gnebank format */
159        data.gbk.locus=NULL;
160        data.gbk.definition=NULL;
161        data.gbk.accession=NULL;
162        data.gbk.keywords=NULL;
163        data.gbk.source=NULL;
164        data.gbk.organism=NULL;
165        data.gbk.numofref=0;
166        data.gbk.reference=NULL;
167        data.gbk.comments.orginf.exist=0;
168        data.gbk.comments.orginf.source=NULL;
169        data.gbk.comments.orginf.cc=NULL;
170        data.gbk.comments.orginf.formname=NULL;
171        data.gbk.comments.orginf.nickname=NULL;
172        data.gbk.comments.orginf.commname=NULL;
173        data.gbk.comments.orginf.hostorg=NULL;
174        data.gbk.comments.seqinf.exist=0;
175        data.gbk.comments.seqinf.RDPid=NULL;
176        data.gbk.comments.seqinf.gbkentry=NULL;
177        data.gbk.comments.seqinf.methods=NULL;
178        data.gbk.comments.seqinf.comp5=' ';
179        data.gbk.comments.seqinf.comp3=' ';
180        data.gbk.comments.others=NULL;
181/* initialize paup format */
182        data.paup.ntax = 0;
183        data.paup.equate = "~=.|><";
184        data.paup.gap = '-';
185/* initial phylip data */
186/* initial embl data */
187        data.embl.id=NULL;
188        data.embl.dateu=NULL;
189        data.embl.datec=NULL;
190        data.embl.description=NULL;
191        data.embl.os=NULL;
192        data.embl.accession=NULL;
193        data.embl.keywords=NULL;
194        data.embl.dr=NULL;
195        data.embl.numofref=0;
196        data.embl.reference=NULL;
197        data.embl.comments.orginf.exist=0;
198        data.embl.comments.orginf.source=NULL;
199        data.embl.comments.orginf.cc=NULL;
200        data.embl.comments.orginf.formname=NULL;
201        data.embl.comments.orginf.nickname=NULL;
202        data.embl.comments.orginf.commname=NULL;
203        data.embl.comments.orginf.hostorg=NULL;
204        data.embl.comments.seqinf.exist=0;
205        data.embl.comments.seqinf.RDPid=NULL;
206        data.embl.comments.seqinf.gbkentry=NULL;
207        data.embl.comments.seqinf.methods=NULL;
208        data.embl.comments.seqinf.comp5=' ';
209        data.embl.comments.seqinf.comp3=' ';
210        data.embl.comments.others=NULL;
211/* initial alma data */
212        data.alma.id=NULL;
213        data.alma.filename=NULL;
214        data.alma.format=UNKNOWN;
215        data.alma.defgap='-';
216        data.alma.num_of_sequence=0;
217        data.alma.sequence=NULL;
218/* inital NBRF data format */
219        data.nbrf.id=NULL;
220        data.nbrf.description=NULL;
221/* initial sequence data */
222        data.numofseq = 0;
223        data.seq_length = 0;
224        data.max = INITSEQ;
225        data.sequence = (char*)calloc(1,(unsigned)(sizeof(char)*INITSEQ+1));
226        data.ids=NULL;
227        data.seqs=NULL;
228}
229/* -------------------------------------------------------------- */
230/*      Function init_seq_data().
231/*              Init. seq. data.
232*/
233void
234init_seq_data() {
235        data.numofseq = 0;
236        data.seq_length = 0;
237}
Note: See TracBrowser for help on using the repository browser.