Skip to content
GitLab
Menu
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
bef0add0
Commit
bef0add0
authored
Dec 11, 2019
by
Kenzo-Hugo Hillion
♻
Browse files
change table to contain version of eggnog
parent
db4cb890
Pipeline
#19817
passed with stages
in 2 minutes and 25 seconds
Changes
16
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
backend/metagenedb/api/catalog/urls.py
View file @
bef0add0
...
...
@@ -54,7 +54,7 @@ class CustomRouter(DefaultRouter):
api_router
=
CustomRouter
()
api_router
.
register
(
r
'functions'
,
views
.
FunctionViewSet
,
basename
=
'functions'
)
api_router
.
register
(
r
'kegg-orthologies'
,
views
.
KeggOrthologyViewSet
,
basename
=
'kegg-orthologies'
)
api_router
.
register
(
r
'eggnogs'
,
views
.
EggN
og
ViewSet
,
basename
=
'eggnogs'
)
api_router
.
register
(
r
'eggnogs'
,
views
.
EggN
OGv5
ViewSet
,
basename
=
'eggnogs'
)
api_router
.
register
(
r
'genes'
,
views
.
GeneViewSet
,
basename
=
'genes'
)
api_router
.
register
(
r
'taxonomy'
,
views
.
TaxonomyViewSet
,
basename
=
'taxonomy'
)
...
...
backend/metagenedb/api/catalog/views/__init__.py
View file @
bef0add0
from
.function
import
EggN
og
ViewSet
,
KeggOrthologyViewSet
,
FunctionViewSet
# noqa
from
.function
import
EggN
OGv5
ViewSet
,
KeggOrthologyViewSet
,
FunctionViewSet
# noqa
from
.gene
import
GeneViewSet
# noqa
from
.taxonomy
import
TaxonomyViewSet
# noqa
backend/metagenedb/api/catalog/views/function.py
View file @
bef0add0
...
...
@@ -7,8 +7,8 @@ from rest_framework.viewsets import ModelViewSet
from
metagenedb.api.catalog.filters
import
FunctionFilter
from
metagenedb.api.catalog.qparams_validators.function
import
FunctionQueryParams
from
metagenedb.apps.catalog.models
import
EggN
og
,
Function
,
KeggOrthology
from
metagenedb.apps.catalog.serializers
import
EggN
og
Serializer
,
FunctionSerializer
,
KeggOrthologySerializer
from
metagenedb.apps.catalog.models
import
EggN
OGv5
,
Function
,
KeggOrthology
from
metagenedb.apps.catalog.serializers
import
EggN
OG
Serializer
,
FunctionSerializer
,
KeggOrthologySerializer
from
metagenedb.common.utils.external_api.togows
import
GetFunctionExternalInfo
from
.bulk_viewset
import
BulkViewSet
...
...
@@ -57,7 +57,7 @@ class KeggOrthologyViewSet(ModelViewSet):
return
Response
(
returned_data
)
class
EggN
og
ViewSet
(
ModelViewSet
):
queryset
=
EggN
og
.
objects
.
all
()
serializer_class
=
EggN
og
Serializer
class
EggN
OGv5
ViewSet
(
ModelViewSet
):
queryset
=
EggN
OGv5
.
objects
.
all
()
serializer_class
=
EggN
OG
Serializer
lookup_field
=
'function_id'
backend/metagenedb/api/catalog/views/test_function.py
View file @
bef0add0
...
...
@@ -2,7 +2,7 @@ from rest_framework.test import APITestCase
import
mock
from
metagenedb.apps.catalog.factory
import
EggN
og
Factory
,
KeggOrthologyFactory
from
metagenedb.apps.catalog.factory
import
EggN
OGv5
Factory
,
KeggOrthologyFactory
from
metagenedb.common.utils.mocks.metagenedb
import
(
MetageneDBCatalogFunctionAPIMock
,
MetageneDBCatalogKeggOrthologyAPIMock
)
...
...
@@ -14,7 +14,7 @@ class TestKeggOrthologyViewSet(APITestCase):
self
.
function_api
=
MetageneDBCatalogFunctionAPIMock
(
self
.
client
)
self
.
kegg_ortho_api
=
MetageneDBCatalogKeggOrthologyAPIMock
(
self
.
client
)
self
.
kegg_function
=
KeggOrthologyFactory
.
create
()
self
.
eggnog_function
=
EggN
og
Factory
.
create
()
self
.
eggnog_function
=
EggN
OGv5
Factory
.
create
()
def
test_retrieve
(
self
):
for
function
in
[
self
.
kegg_function
,
self
.
eggnog_function
]:
...
...
backend/metagenedb/apps/catalog/admin/function.py
View file @
bef0add0
from
django.contrib
import
admin
from
metagenedb.apps.catalog.models
import
EggN
og
,
EggN
og
FunctionalCategory
,
Function
,
KeggOrthology
from
metagenedb.apps.catalog.models
import
EggN
OGv5
,
EggN
OG
FunctionalCategory
,
Function
,
KeggOrthology
@
admin
.
register
(
KeggOrthology
)
...
...
@@ -17,8 +17,8 @@ class FunctionAdmin(admin.ModelAdmin):
search_fields
=
(
'function_id'
,)
@
admin
.
register
(
EggN
og
)
class
EggN
og
Admin
(
admin
.
ModelAdmin
):
@
admin
.
register
(
EggN
OGv5
)
class
EggN
OGv5
Admin
(
admin
.
ModelAdmin
):
list_display
=
(
'function_id'
,
'name'
,
'get_functional_categories'
)
search_fields
=
(
'function_id'
,
'name'
)
...
...
@@ -30,8 +30,8 @@ class EggNogAdmin(admin.ModelAdmin):
get_functional_categories
.
short_description
=
'Functional categories'
@
admin
.
register
(
EggN
og
FunctionalCategory
)
class
EggN
og
FunctionalCategoryAdmin
(
admin
.
ModelAdmin
):
@
admin
.
register
(
EggN
OG
FunctionalCategory
)
class
EggN
OG
FunctionalCategoryAdmin
(
admin
.
ModelAdmin
):
list_display
=
(
'category_id'
,
'name'
,
'group'
)
search_fields
=
(
'category_id'
,
'name'
)
backend/metagenedb/apps/catalog/factory/__init__.py
View file @
bef0add0
from
.function
import
EggN
og
Factory
,
FunctionFactory
,
KeggOrthologyFactory
# noqa
from
.function
import
EggN
OGv5
Factory
,
FunctionFactory
,
KeggOrthologyFactory
# noqa
from
.gene
import
GeneFactory
# noqa
from
.taxonomy
import
TaxonomyFactory
# noqa
backend/metagenedb/apps/catalog/factory/function.py
View file @
bef0add0
...
...
@@ -22,9 +22,9 @@ class FunctionFactory(BaseFunctionFactory):
function_id
=
FuzzyLowerText
(
prefix
=
'function-'
,
length
=
15
)
class
EggN
og
Factory
(
BaseFunctionFactory
):
class
EggN
OGv5
Factory
(
BaseFunctionFactory
):
class
Meta
:
model
=
models
.
EggN
og
model
=
models
.
EggN
OGv5
class
KeggOrthologyFactory
(
BaseFunctionFactory
):
...
...
backend/metagenedb/apps/catalog/management/commands/create_eggnog_functional_cat.py
View file @
bef0add0
...
...
@@ -3,7 +3,7 @@ import logging
from
django.core.management.base
import
BaseCommand
from
django.core.exceptions
import
ValidationError
from
metagenedb.apps.catalog.models
import
EggN
og
FunctionalCategory
from
metagenedb.apps.catalog.models
import
EggN
OG
FunctionalCategory
from
metagenedb.common.utils.parsers.eggnog
import
EggNOGFunctionalCategoriesParser
logging
.
basicConfig
(
format
=
'[%(asctime)s] %(levelname)s:%(name)s:%(message)s'
)
...
...
@@ -12,7 +12,7 @@ logger = logging.getLogger(__name__)
class
ImportEggNOGFunctionalCategories
(
object
):
LOOKUP_FIELD
=
'category_id'
MODEL
=
EggN
og
FunctionalCategory
MODEL
=
EggN
OG
FunctionalCategory
GROUP_MAPPING
=
{
'Information storage and processing'
:
'info_storage_processing'
,
'Cellular processes and signaling'
:
'cellular_processes_signaling'
,
...
...
backend/metagenedb/apps/catalog/management/commands/create_update_eggnog.py
View file @
bef0add0
...
...
@@ -3,7 +3,7 @@ import logging
from
django.core.management.base
import
BaseCommand
from
django.core.exceptions
import
ValidationError
from
metagenedb.apps.catalog.models
import
EggN
og
,
EggN
og
FunctionalCategory
from
metagenedb.apps.catalog.models
import
EggN
OGv5
,
EggN
OG
FunctionalCategory
from
metagenedb.common.utils.chunks
import
file_len
from
metagenedb.common.utils.parsers
import
EggNOGAnnotationLineParser
...
...
@@ -24,7 +24,7 @@ class ImportEggNOG(object):
self
.
skipped_errors
=
[]
def
_build_functional_category_dict
(
self
):
all_categories
=
EggN
og
FunctionalCategory
.
objects
.
all
()
all_categories
=
EggN
OG
FunctionalCategory
.
objects
.
all
()
if
not
all_categories
:
raise
Exception
(
"You need to create Functional categories first."
)
self
.
functional_cat_instances
=
{
cat
.
category_id
:
cat
for
cat
in
all_categories
}
...
...
@@ -43,14 +43,14 @@ class ImportEggNOG(object):
payload
=
{
k
:
v
for
k
,
v
in
eggnog_dict
.
items
()
if
v
!=
""
}
eggnog
=
None
try
:
eggnog
=
EggN
og
(
**
payload
)
eggnog
=
EggN
OGv5
(
**
payload
)
eggnog
.
full_clean
()
eggnog
.
save
()
self
.
created_count
+=
1
except
ValidationError
as
validation_error
:
if
'function_id'
in
validation_error
.
error_dict
.
keys
():
try
:
eggnog
=
EggN
og
.
objects
.
get
(
function_id
=
payload
.
get
(
'function_id'
))
eggnog
=
EggN
OGv5
.
objects
.
get
(
function_id
=
payload
.
get
(
'function_id'
))
for
k
,
v
in
payload
.
items
():
setattr
(
eggnog
,
k
,
v
)
eggnog
.
full_clean
()
...
...
backend/metagenedb/apps/catalog/migrations/0016_rename_eggnog.py
0 → 100644
View file @
bef0add0
# Generated by Django 3.0 on 2019-12-11 22:07
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'catalog'
,
'0015_m2m_func_cat_eggnog'
),
]
operations
=
[
migrations
.
RenameModel
(
old_name
=
'EggNog'
,
new_name
=
'EggNOGv5'
,
),
migrations
.
AlterField
(
model_name
=
'eggnogv5'
,
name
=
'functional_categories'
,
field
=
models
.
ManyToManyField
(
to
=
'catalog.EggNOGFunctionalCategory'
),
),
]
backend/metagenedb/apps/catalog/models/__init__.py
View file @
bef0add0
from
.function
import
EggN
og
,
EggN
og
FunctionalCategory
,
Function
,
KeggOrthology
# noqa
from
.function
import
EggN
OGv5
,
EggN
OG
FunctionalCategory
,
Function
,
KeggOrthology
# noqa
from
.gene
import
Gene
,
GeneFunction
# noqa
from
.taxonomy
import
Taxonomy
# noqa
backend/metagenedb/apps/catalog/models/function.py
View file @
bef0add0
...
...
@@ -36,7 +36,7 @@ class KeggOrthology(Function):
verbose_name_plural
=
"KEGG orthologies"
class
EggN
og
FunctionalCategory
(
models
.
Model
):
class
EggN
OG
FunctionalCategory
(
models
.
Model
):
GROUP_CHOICES
=
[
(
'info_storage_processing'
,
'Information Storage and Processing'
),
(
'cellular_processes_signaling'
,
'Cellular Processes and Signaling'
),
...
...
@@ -56,14 +56,14 @@ class EggNogFunctionalCategory(models.Model):
verbose_name_plural
=
"EggNOG functional categories"
class
EggN
og
(
Function
):
class
EggN
OGv5
(
Function
):
SOURCE
=
'eggnog'
functional_categories
=
models
.
ManyToManyField
(
EggN
og
FunctionalCategory
)
functional_categories
=
models
.
ManyToManyField
(
EggN
OG
FunctionalCategory
)
def
__init__
(
self
,
*
args
,
**
kwargs
):
super
(
EggN
og
,
self
).
__init__
(
source
=
self
.
SOURCE
,
*
args
,
**
kwargs
)
super
(
EggN
OGv5
,
self
).
__init__
(
source
=
self
.
SOURCE
,
*
args
,
**
kwargs
)
class
Meta
:
verbose_name
=
"EggNOG"
verbose_name_plural
=
"EggNOGs"
verbose_name
=
"EggNOG
v5.0
"
verbose_name_plural
=
"EggNOGs
v5.0
"
backend/metagenedb/apps/catalog/serializers/__init__.py
View file @
bef0add0
from
.function
import
EggN
og
Serializer
,
FunctionSerializer
,
KeggOrthologySerializer
# noqa
from
.function
import
EggN
OG
Serializer
,
FunctionSerializer
,
KeggOrthologySerializer
# noqa
from
.gene
import
GeneSerializer
# noqa
from
.taxonomy
import
TaxonomySerializer
# noqa
backend/metagenedb/apps/catalog/serializers/function.py
View file @
bef0add0
from
rest_framework
import
serializers
from
metagenedb.apps.catalog.models
import
EggN
og
,
Function
,
KeggOrthology
from
metagenedb.apps.catalog.models
import
EggN
OGv5
,
Function
,
KeggOrthology
from
.bulk_list
import
BulkListSerializer
...
...
@@ -18,17 +18,17 @@ class FunctionSerializer(serializers.ModelSerializer):
fields
=
(
'function_id'
,
'source'
,
'name'
)
class
EggN
og
ListSerializer
(
BulkListSerializer
):
class
EggN
OG
ListSerializer
(
BulkListSerializer
):
class
Meta
:
model
=
EggN
og
model
=
EggN
OGv5
class
EggN
og
Serializer
(
serializers
.
ModelSerializer
):
class
EggN
OG
Serializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
EggN
og
list_serializer_class
=
EggN
og
ListSerializer
model
=
EggN
OGv5
list_serializer_class
=
EggN
OG
ListSerializer
fields
=
(
'function_id'
,
'name'
,
'functional_categories'
)
...
...
backend/metagenedb/common/utils/mocks/metagenedb.py
View file @
bef0add0
...
...
@@ -90,5 +90,5 @@ class MetageneDBCatalogKeggOrthologyAPIMock(MetageneDBCatalogFunctionAPIMock):
REVERSE_PATH
=
'catalog:v1:kegg-orthologies'
class
MetageneDBCatalogEggN
og
APIMock
(
MetageneDBCatalogFunctionAPIMock
):
class
MetageneDBCatalogEggN
OGv5
APIMock
(
MetageneDBCatalogFunctionAPIMock
):
REVERSE_PATH
=
'catalog:v1:eggnogs'
backend/scripts/populate_db/test_import_igc_data.py
View file @
bef0add0
...
...
@@ -4,13 +4,13 @@ from rest_framework.test import APITestCase
from
metagenedb.common.utils.mocks.metagenedb
import
(
MetageneDBCatalogTaxonomyAPIMock
,
MetageneDBCatalogEggN
og
APIMock
,
MetageneDBCatalogEggN
OGv5
APIMock
,
MetageneDBCatalogKeggOrthologyAPIMock
)
from
metagenedb.apps.catalog.factory
import
(
TaxonomyFactory
,
KeggOrthologyFactory
,
EggN
og
Factory
EggN
OGv5
Factory
)
from
scripts.populate_db.import_igc_data
import
ImportIGCGenes
...
...
@@ -302,12 +302,12 @@ class TestBuildBuildFunctionCatalog(APITestCase):
@
classmethod
def
setUpTestData
(
cls
):
cls
.
keggs
=
KeggOrthologyFactory
.
create_batch
(
100
)
cls
.
eggnogs
=
EggN
og
Factory
.
create_batch
(
100
)
cls
.
eggnogs
=
EggN
OGv5
Factory
.
create_batch
(
100
)
def
setUp
(
self
):
self
.
import_igc_genes
=
ImportIGCGenes
(
'test'
,
'test_url'
,
'test_token'
)
self
.
kegg_api_mock
=
MetageneDBCatalogKeggOrthologyAPIMock
(
self
.
client
)
self
.
eggnog_api_mock
=
MetageneDBCatalogEggN
og
APIMock
(
self
.
client
)
self
.
eggnog_api_mock
=
MetageneDBCatalogEggN
OGv5
APIMock
(
self
.
client
)
self
.
import_igc_genes
.
metagenedb_kegg_api
=
self
.
kegg_api_mock
self
.
import_igc_genes
.
metagenedb_eggnog_api
=
self
.
eggnog_api_mock
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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