-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathisTrans_GEMS_MoreFields.m
69 lines (61 loc) · 2.09 KB
/
isTrans_GEMS_MoreFields.m
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
function model = isTrans_GEMS_MoreFields(model, mets_core)
unique_comp = unique(model.metCompSymbol);
for im = 1:length(unique_comp)
mets_core = strrep(mets_core, strcat('_', unique_comp{im}), '');
end
mets_core_all={};
for im = 1:length(unique_comp)
mets_core_all = [mets_core_all, strcat(mets_core, '_', unique_comp{im})];
end
model.isCoreTrans = zeros(length(model.rxns),1);
model.extra_enzymatic = zeros(length(model.rxns),1);
for i=1:length(model.rxns)
mets = model.mets(find(model.S(:, i)));
comps = model.metCompSymbol(find(model.S(:, i)));
mets = strrep(mets, '_c', '');
mets = strrep(mets, '_p', '');
mets = strrep(mets, '_e', '');
mets = strrep(mets, '_g', '');
mets = strrep(mets, '_l', '');
mets = strrep(mets, '_m', '');
mets = strrep(mets, '_n', '');
mets = strrep(mets, '_r', '');
mets = strrep(mets, '_s', '');
mets = strrep(mets, '_x', '');
mets = strrep(mets, '_j', '');
mets = strrep(mets, '_o', '');
mets = strrep(mets, '_q', '');
mets = strrep(mets, '_t', '');
mets = strrep(mets, '_v', '');
mets = strrep(mets, '_w', '');
unique_mets = unique(mets);
unique_comp = unique(comps);
if length(mets)~=length(unique_mets) || length(unique_comp)>1
model.isTrans(i,1)=1;
mets_to_check = model.mets(find(model.S(:, i)));
[ab, bmets] = ismember(mets_to_check, mets_core_all);
if length(mets_to_check)==length(find(bmets))
model.isCoreTrans(i,1) = 1;
end
if ismember('e', unique_comp)
model.isExchangeTrans(i,1) = 1;
else
model.isExchangeTrans(i,1) = 0;
end
else
model.isTrans(i,1) = 0;
model.isExchangeTrans(i,1) = 0;
end
if length(mets)>1 && length(unique_comp)==1
if strcmp(unique_comp, 'e')
model.extra_enzymatic(i,1) = 1;
else
model.extra_enzymatic(i,1) = 0;
end
end
end
drains = extract_drains(model);
[~,id] = ismember(drains, model.rxns);
model.isExchange = zeros(length(model.rxns),1);
model.isExchange(id) = 1;
end