Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Metagenomics
metagenedb
Commits
a68b6d27
Commit
a68b6d27
authored
Dec 09, 2019
by
Kenzo-Hugo Hillion
♻
Browse files
refacto style
parent
26fc8187
Changes
1
Hide whitespace changes
Inline
Side-by-side
backend/metagenedb/apps/catalog/management/commands/create_update_kegg_ko.py
View file @
a68b6d27
...
...
@@ -14,22 +14,20 @@ logger = logging.getLogger(__name__)
class
ImportKEGGKO
(
object
):
KEGG_KO_LIST_API
=
"http://rest.kegg.jp/list/ko"
ORM_SOURCE_KEY
=
'source'
KEGG_SOURCE
=
'kegg'
def
__init__
(
self
,
kegg_ko_list_api
=
KEGG_KO_LIST_API
):
self
.
kegg_ko_list_api
=
kegg_ko_list_api
self
.
processed_
kegg_
count
=
0
self
.
created_
kegg_
count
=
0
self
.
updated_
kegg_
count
=
0
self
.
skipped_
kegg_
count
=
0
self
.
skipped_
kegg_
ids
=
[]
self
.
processed_count
=
0
self
.
created_count
=
0
self
.
updated_count
=
0
self
.
skipped_count
=
0
self
.
skipped_ids
=
[]
def
load_all_kegg_ko
(
self
,
chunk_size
=
1000
,
test
=
False
):
all_ko_response
=
requests
.
get
(
self
.
kegg_ko_list_api
)
all_ko_response
.
raise_for_status
()
all_ko
=
all_ko_response
.
text
.
splitlines
()
self
.
total_
kegg_
nb
=
len
(
all_ko
)
self
.
total_nb
=
len
(
all_ko
)
for
chunk
in
generate_chunks
(
all_ko
,
chunk_size
):
ko_chunk
=
[
KEGGLineParser
.
ko_list
(
i
)
for
i
in
chunk
]
for
i
in
ko_chunk
:
...
...
@@ -37,25 +35,25 @@ class ImportKEGGKO(object):
try
:
kegg
=
KeggOrthology
(
**
payload
)
kegg
.
save
()
self
.
created_
kegg_
count
+=
1
self
.
created_count
+=
1
except
IntegrityError
:
try
:
kegg
=
KeggOrthology
.
objects
.
get
(
function_id
=
payload
.
get
(
'function_id'
))
for
k
,
v
in
payload
.
items
():
setattr
(
kegg
,
k
,
v
)
kegg
.
save
()
self
.
updated_
kegg_
count
+=
1
self
.
updated_count
+=
1
except
IntegrityError
:
self
.
skipped_
kegg_
ids
.
append
(
payload
.
get
(
'function_id'
))
self
.
skipped_
kegg_
count
+=
1
self
.
processed_
kegg_
count
+=
len
(
ko_chunk
)
logger
.
info
(
"%s/%s KEGG KO processed so far..."
,
self
.
processed_
kegg_
count
,
self
.
total_
kegg_
nb
)
self
.
skipped_ids
.
append
(
payload
.
get
(
'function_id'
))
self
.
skipped_count
+=
1
self
.
processed_count
+=
len
(
ko_chunk
)
logger
.
info
(
"%s/%s KEGG KO processed so far..."
,
self
.
processed_count
,
self
.
total_nb
)
if
test
:
break
logger
.
info
(
"[DONE] %s/%s KEGG KO created."
,
self
.
created_
kegg_
count
,
self
.
total_
kegg_
nb
)
logger
.
info
(
"[DONE] %s/%s KEGG KO updated."
,
self
.
updated_
kegg_
count
,
self
.
total_
kegg_
nb
)
logger
.
info
(
"[DONE] %s/%s KEGG KO skipped. List: %s"
,
self
.
skipped_
kegg_
count
,
self
.
total_
kegg_
nb
,
self
.
skipped_
kegg_
ids
)
logger
.
info
(
"[DONE] %s/%s KEGG KO created."
,
self
.
created_count
,
self
.
total_nb
)
logger
.
info
(
"[DONE] %s/%s KEGG KO updated."
,
self
.
updated_count
,
self
.
total_nb
)
logger
.
info
(
"[DONE] %s/%s KEGG KO skipped. List: %s"
,
self
.
skipped_count
,
self
.
total_nb
,
self
.
skipped_ids
)
class
Command
(
BaseCommand
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment