1
2
3
4
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
45
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