Changeset 8309 for trunk/CONVERTALN
- Timestamp:
- 20/12/11 12:29:17 (5 months ago)
- Location:
- trunk/CONVERTALN
- Files:
-
- 5 modified
-
embl.cxx (modified) (2 diffs)
-
genbank.cxx (modified) (6 diffs)
-
macke.cxx (modified) (2 diffs)
-
main.cxx (modified) (1 diff)
-
prototypes.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CONVERTALN/embl.cxx
r7200 r8309 154 154 } 155 155 156 void EmblParser::parse_keyed_section(const char *key) { 157 if (str_equal(key, "ID")) { 158 embl_one_entry(reader, embl.ID, key); 159 } 160 else if (str_equal(key, "DT")) { 161 embl_date(embl, reader); 162 } 163 else if (str_equal(key, "DE")) { 164 embl_one_entry(reader, embl.description, key); 165 } 166 else if (str_equal(key, "OS")) { 167 embl_one_entry(reader, embl.os, key); 168 } 169 else if (str_equal(key, "AC")) { 170 embl_one_entry(reader, embl.accession, key); 171 } 172 else if (str_equal(key, "KW")) { 173 embl_one_entry(reader, embl.keywords, key); 174 175 // correct missing '.' 176 if (!has_content(embl.keywords)) freedup(embl.keywords, ".\n"); 177 else terminate_with(embl.keywords, '.'); 178 } 179 else if (str_equal(key, "DR")) { 180 embl_one_entry(reader, embl.dr, key); 181 } 182 else if (str_equal(key, "RA")) { 183 Emblref& ref = embl.get_latest_ref(); 184 embl_one_entry(reader, ref.author, key); 185 terminate_with(ref.author, ';'); 186 } 187 else if (str_equal(key, "RT")) { 188 Emblref& ref = embl.get_latest_ref(); 189 embl_one_entry(reader, ref.title, key); 190 embl_correct_title(ref); 191 } 192 else if (str_equal(key, "RL")) { 193 Emblref& ref = embl.get_latest_ref(); 194 embl_one_entry(reader, ref.journal, key); 195 terminate_with(ref.journal, '.'); 196 } 197 else if (str_equal(key, "RP")) { 198 Emblref& ref = embl.get_latest_ref(); 199 embl_one_entry(reader, ref.processing, key); 200 } 201 else if (str_equal(key, "RN")) { 202 embl.resize_refs(embl.get_refcount()+1); 203 ++reader; 204 } 205 else if (str_equal(key, "CC")) { 206 embl_comments(embl, reader); 207 } 208 else if (str_equal(key, "SQ")) { 209 embl_origin(seq, reader); 210 state = ENTRY_COMPLETED; 211 } 212 else { 213 embl_skip_unidentified(key, reader); 214 } 215 } 216 217 void embl_key_word(const char *line, int index, char *key) { 218 parse_key_word(line+index, key, " \t\n"); 219 } 220 221 void embl_origin(Seq& seq, Reader& reader) { 156 static void embl_origin(Seq& seq, Reader& reader) { 222 157 // Read in embl sequence data. 223 158 ca_assert(seq.is_empty()); … … 238 173 } 239 174 } 175 176 void EmblParser::parse_keyed_section(const char *key) { 177 if (str_equal(key, "ID")) { 178 embl_one_entry(reader, embl.ID, key); 179 } 180 else if (str_equal(key, "DT")) { 181 embl_date(embl, reader); 182 } 183 else if (str_equal(key, "DE")) { 184 embl_one_entry(reader, embl.description, key); 185 } 186 else if (str_equal(key, "OS")) { 187 embl_one_entry(reader, embl.os, key); 188 } 189 else if (str_equal(key, "AC")) { 190 embl_one_entry(reader, embl.accession, key); 191 } 192 else if (str_equal(key, "KW")) { 193 embl_one_entry(reader, embl.keywords, key); 194 195 // correct missing '.' 196 if (!has_content(embl.keywords)) freedup(embl.keywords, ".\n"); 197 else terminate_with(embl.keywords, '.'); 198 } 199 else if (str_equal(key, "DR")) { 200 embl_one_entry(reader, embl.dr, key); 201 } 202 else if (str_equal(key, "RA")) { 203 Emblref& ref = embl.get_latest_ref(); 204 embl_one_entry(reader, ref.author, key); 205 terminate_with(ref.author, ';'); 206 } 207 else if (str_equal(key, "RT")) { 208 Emblref& ref = embl.get_latest_ref(); 209 embl_one_entry(reader, ref.title, key); 210 embl_correct_title(ref); 211 } 212 else if (str_equal(key, "RL")) { 213 Emblref& ref = embl.get_latest_ref(); 214 embl_one_entry(reader, ref.journal, key); 215 terminate_with(ref.journal, '.'); 216 } 217 else if (str_equal(key, "RP")) { 218 Emblref& ref = embl.get_latest_ref(); 219 embl_one_entry(reader, ref.processing, key); 220 } 221 else if (str_equal(key, "RN")) { 222 embl.resize_refs(embl.get_refcount()+1); 223 ++reader; 224 } 225 else if (str_equal(key, "CC")) { 226 embl_comments(embl, reader); 227 } 228 else if (str_equal(key, "SQ")) { 229 embl_origin(seq, reader); 230 state = ENTRY_COMPLETED; 231 } 232 else { 233 embl_skip_unidentified(key, reader); 234 } 235 } 236 237 void embl_key_word(const char *line, int index, char *key) { 238 parse_key_word(line+index, key, " \t\n"); 239 } 240 240 241 static void embl_print_lines(Writer& write, const char *key, const char *content, const WrapMode& wrapMode) { 241 242 // Print EMBL entry and wrap around if line over EMBLMAXLINE. -
trunk/CONVERTALN/genbank.cxx
r7623 r8309 53 53 } 54 54 55 void genbank_one_entry_in(char*& datastring, Reader& reader) {55 static void genbank_one_entry_in(char*& datastring, Reader& reader) { 56 56 freedup(datastring, reader.line()+Skip_white_space(reader.line(), GBINDENT)); 57 57 return genbank_continue_line(datastring, GBINDENT, reader); … … 64 64 } 65 65 66 void genbank_source(GenBank& gbk, Reader& reader) {66 static void genbank_source(GenBank& gbk, Reader& reader) { 67 67 // Read in genbank SOURCE lines and also ORGANISM lines. 68 68 genbank_one_entry_in(gbk.source, reader); … … 87 87 88 88 89 void genbank_skip_unidentified(Reader& reader, int blank_num) {89 static void genbank_skip_unidentified(Reader& reader, int blank_num) { 90 90 // Skip the lines of unidentified keyword. 91 91 ++reader; … … 94 94 } 95 95 96 void genbank_reference(GenBank& gbk, Reader& reader) {96 static void genbank_reference(GenBank& gbk, Reader& reader) { 97 97 // Read in genbank REFERENCE lines. 98 98 int refnum; … … 243 243 } 244 244 245 void GenbankParser::parse_keyed_section(const char *key) { 246 if (str_equal(key, "LOCUS")) { 247 genbank_one_entry_in(gbk.locus, reader); 248 if (!gbk.locus_contains_date()) 249 warning(14, "LOCUS data might be incomplete"); 250 } 251 else if (str_equal(key, "DEFINITION")) { 252 genbank_one_entry_in(gbk.definition, reader); 253 terminate_with(gbk.definition, '.'); // correct missing '.' at the end 254 } 255 else if (str_equal(key, "ACCESSION")) { 256 genbank_one_entry_in(gbk.accession, reader); 257 genbank_verify_accession(gbk); 258 } 259 else if (str_equal(key, "KEYWORDS")) { 260 genbank_one_entry_in(gbk.keywords, reader); 261 genbank_verify_keywords(gbk); 262 } 263 else if (str_equal(key, "SOURCE")) { 264 genbank_source(gbk, reader); 265 terminate_with(gbk.source, '.'); // correct missing '.' at the end 266 terminate_with(gbk.organism, '.'); 267 } 268 else if (str_equal(key, "REFERENCE")) { 269 genbank_reference(gbk, reader); 270 } 271 else if (str_equal(key, "COMMENTS")) { 272 genbank_comments(gbk, reader); 273 } 274 else if (str_equal(key, "COMMENT")) { 275 genbank_comments(gbk, reader); 276 } 277 else if (str_equal(key, "ORIGIN")) { 278 genbank_origin(seq, reader); 279 state = ENTRY_COMPLETED; 280 } 281 else { 282 genbank_skip_unidentified(reader, 2); 283 } 284 } 285 286 void genbank_origin(Seq& seq, Reader& reader) { 245 static void genbank_origin(Seq& seq, Reader& reader) { 287 246 // Read in genbank sequence data. 288 247 ca_assert(seq.is_empty()); … … 299 258 } 300 259 260 void GenbankParser::parse_keyed_section(const char *key) { 261 if (str_equal(key, "LOCUS")) { 262 genbank_one_entry_in(gbk.locus, reader); 263 if (!gbk.locus_contains_date()) 264 warning(14, "LOCUS data might be incomplete"); 265 } 266 else if (str_equal(key, "DEFINITION")) { 267 genbank_one_entry_in(gbk.definition, reader); 268 terminate_with(gbk.definition, '.'); // correct missing '.' at the end 269 } 270 else if (str_equal(key, "ACCESSION")) { 271 genbank_one_entry_in(gbk.accession, reader); 272 genbank_verify_accession(gbk); 273 } 274 else if (str_equal(key, "KEYWORDS")) { 275 genbank_one_entry_in(gbk.keywords, reader); 276 genbank_verify_keywords(gbk); 277 } 278 else if (str_equal(key, "SOURCE")) { 279 genbank_source(gbk, reader); 280 terminate_with(gbk.source, '.'); // correct missing '.' at the end 281 terminate_with(gbk.organism, '.'); 282 } 283 else if (str_equal(key, "REFERENCE")) { 284 genbank_reference(gbk, reader); 285 } 286 else if (str_equal(key, "COMMENTS")) { 287 genbank_comments(gbk, reader); 288 } 289 else if (str_equal(key, "COMMENT")) { 290 genbank_comments(gbk, reader); 291 } 292 else if (str_equal(key, "ORIGIN")) { 293 genbank_origin(seq, reader); 294 state = ENTRY_COMPLETED; 295 } 296 else { 297 genbank_skip_unidentified(reader, 2); 298 } 299 } 300 301 301 static void genbank_print_lines(Writer& write, const char *key, const char *content, const WrapMode& wrapMode) { 302 302 // Print one genbank line, wrap around if over column GBMAXLINE -
trunk/CONVERTALN/macke.cxx
r7046 r8309 8 8 9 9 #define MACKELIMIT 10000 10 11 static int macke_abbrev(const char *line, char *key, int index) { 12 // Get the key from a macke line. 13 // returns index behind delimiting ':' 14 index = Skip_white_space(line, index); 15 int len = parse_key_word(line+index, key, " :\t\n"); 16 return index+len+1; 17 } 10 18 11 19 static void macke_continue_line(const char *key, char *oldname, char*& var, Reader& reader) { … … 66 74 ca_assert(seqabbr); // = macke.seqabbr 67 75 macke_read_seq(seq, seqabbr, reader); 68 }69 70 int macke_abbrev(const char *line, char *key, int index) {71 // Get the key from a macke line.72 // returns index behind delimiting ':'73 index = Skip_white_space(line, index);74 int len = parse_key_word(line+index, key, " :\t\n");75 return index+len+1;76 76 } 77 77 -
trunk/CONVERTALN/main.cxx
r8246 r8309 16 16 struct TypeSwitch { const char *switchtext; Format format; }; 17 17 18 TypeSwitch convertible_type[] = { // see fconv.cxx@format_spec18 static TypeSwitch convertible_type[] = { // see fconv.cxx@format_spec 19 19 { "GenBank", GENBANK }, 20 20 { "EMBL", EMBL }, -
trunk/CONVERTALN/prototypes.h
r8246 r8309 23 23 int comment_subkey(const char *line, char *key); 24 24 void embl_key_word(const char *line, int index, char *key); 25 void embl_origin(Seq &seq, Reader &reader);26 25 void embl_out_header(const Embl &embl, const Seq &seq, Writer &write); 27 26 void embl_out(const Embl &embl, const Seq &seq, Writer &write); … … 44 43 /* genbank.cxx */ 45 44 void genbank_key_word(const char *line, int index, char *key); 46 void genbank_one_entry_in(char *&datastring, Reader &reader);47 void genbank_source(GenBank &gbk, Reader &reader);48 void genbank_skip_unidentified(Reader &reader, int blank_num);49 void genbank_reference(GenBank &gbk, Reader &reader);50 void genbank_origin(Seq &seq, Reader &reader);51 45 void genbank_out_header(const GenBank &gbk, const Seq &seq, Writer &write); 52 46 void genbank_out_base_count(const Seq &seq, Writer &write); … … 55 49 /* macke.cxx */ 56 50 void macke_origin(Seq &seq, char *&seqabbr, Reader &reader); 57 int macke_abbrev(const char *line, char *key, int index);58 51 void macke_out_header(Writer &write); 59 52 void macke_seq_display_out(const Macke &macke, Writer &write, Format inType, bool first_sequence);
