-
Notifications
You must be signed in to change notification settings - Fork 0
/
HomologyService.spec
162 lines (148 loc) · 3.32 KB
/
HomologyService.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
module HomologyService
{
typedef structure {
string id;
string accession;
string title;
int taxid;
string sciname;
} HitDescr;
typedef structure {
int num;
float bit_score;
float score;
float evalue;
int identity;
int positive;
int density;
int pattern_from;
int pattern_to;
int query_from;
int query_to;
string query_strand;
int query_frame;
int hit_from;
int hit_to;
string hit_strand;
int hit_frame;
int align_len;
int gaps;
string qseq;
string hseq;
string midline;
} Hsp;
typedef structure {
int num;
list<HitDescr> description;
int len;
list<Hsp> hsps;
} Hit;
typedef structure {
int db_num;
int db_len;
int hsp_len;
int eff_space;
float kappa;
float lambda;
float entropy;
} Statistics;
typedef structure {
string query_id;
string query_title;
int query_len;
/* need: query-masking */
list<Hit> hits;
Statistics stat;
} Search;
typedef structure {
string program;
string version;
string reference;
structure {
string db;
string subjects;
} search_target;
structure {
string matrix;
float expect;
float include;
int sc_match;
int sc_mismatch;
int gap_open;
int gap_extend;
string filter;
string pattern;
string entrez_query;
int cbs;
int query_gencode;
int db_gencode;
string bl2seq_mode;
} params;
structure {
/* structure {
} iterations;
*/
Search search;
/* structure {
} bl2seq;
*/
} result;
} Report;
typedef string genome_id;
typedef structure
{
string function;
string genome_name;
string genome_id;
string md5;
string locus_tag;
string alt_locus_tag;
int match_count;
} FeatureMetadata;
typedef structure
{
float evalue_cutoff;
int max_hits;
float min_coverage;
} BlastParameters;
funcdef blast_fasta_to_genomes(string fasta_data,
string program,
list<genome_id> genomes,
/* subject_type is "contigs" or "features" */
string subject_type,
/* Post demo we will slot this in here.
BlastParameters blast_parameters */
float evalue_cutoff,
int max_hits,
float min_coverage)
returns(list<Report> reports, mapping<string, FeatureMetadata> metadata) authentication optional;
funcdef blast_fasta_to_taxon(string fasta_data,
string program,
string taxon_id,
/* subject_type is "contigs" or "features" */
string subject_type,
/* Post demo we will slot this in here.
BlastParameters blast_parameters */
float evalue_cutoff,
int max_hits,
float min_coverage)
returns(list<Report> reports, mapping<string, FeatureMetadata> metadata);
typedef structure
{
string name;
string key;
/* db_type is either "dna" or "protein" */
string db_type;
int seq_count;
} DatabaseDescription;
funcdef enumerate_databases() returns (list<DatabaseDescription>);
funcdef blast_fasta_to_database(string fasta_data, string program, string database_key,
/* Post demo we will slot this in here.
BlastParameters blast_parameters */
float evalue_cutoff,
int max_hits,
float min_coverage)
returns (list<Report> reports,
mapping <string, FeatureMetadata> metadata,
mapping <string, list<tuple<string, FeatureMetadata>>> identical_proteins);
};