Package Bio :: Package dbdefs :: Module genbank
[hide private]
[frames] | no frames]

Source Code for Module Bio.dbdefs.genbank

 1  # Copyright 2002 by Jeffrey Chang.  All rights reserved. 
 2  # This code is part of the Biopython distribution and governed by its 
 3  # license.  Please see the LICENSE file that should have been included 
 4  # as part of this package. 
 5   
 6  from Bio.config.DBRegistry import DBGroup, EUtilsDB 
 7  from _support import * 
 8   
 9  from Martel import * 
10   
11  proxy_error_expr = has_expr(Alt(Str("500"), Str("502")) + Str(" Proxy Error")) 
12  diagnostic_error_expr = has_str("WWW Error 500 Diagnostic") 
13  error_expr = Str("ERROR") 
14   
15  ncbi_failures=[ 
16      (proxy_error_expr, "proxy error"), 
17      (diagnostic_error_expr, "diagnostic error"), 
18      (error_expr, "ERROR"), 
19      (html_expr, "I got HTML and shouldn't have"), 
20      (Str("Please try again later"), "Please try again later"), 
21      (Str("The sequence has been intentionally withdrawn"), 
22       "Sequence withdrawn"), 
23      (blank_expr, "No data returned") 
24      ] 
25   
26  nucleotide_genbank_eutils = EUtilsDB( 
27          name = "nucleotide-genbank-eutils", 
28          doc = "Retrieve nucleotide GenBank sequences from NCBI using EUtils", 
29          delay = 5.0, 
30          db = "nucleotide", 
31          rettype = "gb", 
32          failure_cases = ncbi_failures 
33          ) 
34   
35  genome_genbank_eutils = EUtilsDB( 
36          name = "genome-genbank-eutils", 
37          doc = "Retrieve genome GenBank sequences from NCBI using EUtils", 
38          delay = 5.0, 
39          db = "genome", 
40          rettype = "gb", 
41          failure_cases = ncbi_failures 
42          ) 
43   
44  # If the id is not in the database, I get a message like: 
45  # ERROR : GenPept does not exist for gi = 433174 
46  not_exist_expr = Str("ERROR") + Re("[^d]*") + Str("does not exist for gi") 
47   
48  protein_genbank_eutils = EUtilsDB( 
49          name = "protein-genbank-eutils", 
50          doc = "Retrieve protein GenPept sequences from NCBI using EUtils", 
51          delay = 5.0, 
52          db = "protein", 
53          rettype = "gp", 
54          failure_cases = ncbi_failures+[(not_exist_expr, "GI does not exist")] 
55          ) 
56   
57  gb_nucleotide = DBGroup( 
58          name = "genbank-nucleotide", 
59          behavior = "serial" 
60      ) 
61  gb_nucleotide.add(nucleotide_genbank_eutils) 
62   
63  gb_protein = DBGroup( 
64          name = "genbank-protein", 
65          behavior = "serial") 
66  gb_protein.add(protein_genbank_eutils) 
67   
68  gb_genome = DBGroup( 
69          name = "genbank-genome", 
70          behavior = "serial") 
71  gb_genome.add(genome_genbank_eutils) 
72