ebi-eva-common-pyutils 0.5.3.dev3__tar.gz → 0.5.3.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/PKG-INFO +1 -1
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/assembly/assembly.py +5 -3
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/metadata_utils.py +33 -1
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils.egg-info/PKG-INFO +1 -1
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/setup.py +1 -1
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/CHANGELOG.md +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/LICENSE +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/MANIFEST.in +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/README.md +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/archive_directory.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/assembly/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/command_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/common_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/config.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/config_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/contig_alias/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/contig_alias/contig_alias.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/ena_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/file_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/logger.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/mongo_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/mongodb/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/mongodb/mongo_database.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/ncbi_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/network_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/nextflow/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/nextflow/nextflow_pipeline.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/pg_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/reference/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/reference/assembly.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/reference/sequence.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/spring_properties.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/taxonomy/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/taxonomy/taxonomy.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/variation/__init__.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/variation/assembly_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils/variation/contig_utils.py +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils.egg-info/SOURCES.txt +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils.egg-info/dependency_links.txt +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils.egg-info/requires.txt +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/ebi_eva_common_pyutils.egg-info/top_level.txt +0 -0
- {ebi_eva_common_pyutils-0.5.3.dev3 → ebi_eva_common_pyutils-0.5.3.dev5}/setup.cfg +0 -0
|
@@ -21,11 +21,13 @@ logging_config.add_stdout_handler()
|
|
|
21
21
|
logger = logging_config.get_logger(__name__)
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
def get_supported_asm_from_ensembl(tax_id: int) -> str:
|
|
24
|
+
def get_supported_asm_from_ensembl(tax_id: int) -> str | None:
|
|
25
25
|
logger.info(f'Query Ensembl for species name using taxonomy {tax_id}')
|
|
26
26
|
scientific_name_api_param = get_scientific_name_from_ensembl(tax_id).lower().replace(' ', '_')
|
|
27
27
|
ENSEMBL_REST_API_URL = "http://rest.ensembl.org/info/assembly/{0}?content-type=application/json".format(
|
|
28
28
|
scientific_name_api_param)
|
|
29
29
|
response = json_request(ENSEMBL_REST_API_URL)
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
assembly_accession_attribute = 'assembly_accession'
|
|
31
|
+
if assembly_accession_attribute in response:
|
|
32
|
+
return str(response.get('assembly_accession'))
|
|
33
|
+
return None
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
+
import datetime
|
|
14
15
|
import re
|
|
15
16
|
from urllib.parse import urlsplit
|
|
16
17
|
|
|
@@ -20,10 +21,11 @@ from ebi_eva_common_pyutils.config_utils import get_metadata_creds_for_profile
|
|
|
20
21
|
from ebi_eva_common_pyutils.ena_utils import get_scientific_name_and_common_name
|
|
21
22
|
from ebi_eva_common_pyutils.logger import logging_config
|
|
22
23
|
from ebi_eva_common_pyutils.ncbi_utils import get_ncbi_assembly_name_from_term
|
|
23
|
-
from ebi_eva_common_pyutils.pg_utils import get_result_cursor, get_all_results_for_query
|
|
24
|
+
from ebi_eva_common_pyutils.pg_utils import get_result_cursor, get_all_results_for_query, execute_query
|
|
24
25
|
from ebi_eva_common_pyutils.taxonomy.taxonomy import get_scientific_name_from_ensembl
|
|
25
26
|
|
|
26
27
|
logger = logging_config.get_logger(__name__)
|
|
28
|
+
SUPPORTED_ASSEMBLY_TRACKER_TABLE = "evapro.supported_assembly_tracker"
|
|
27
29
|
|
|
28
30
|
|
|
29
31
|
def get_metadata_connection_handle(profile, settings_xml_file):
|
|
@@ -254,3 +256,33 @@ def insert_taxonomy(metadata_connection_handle, taxonomy_id, scientific_name, co
|
|
|
254
256
|
'VALUES (%s, %s, %s, %s, %s)',
|
|
255
257
|
(taxonomy_id, common_name, scientific_name, taxonomy_code, eva_species_name))
|
|
256
258
|
logger.info('New taxonomy {} added'.format(taxonomy_id))
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def add_to_supported_assemblies(metadata_connection_handle, source_of_assembly: str, target_assembly: str,
|
|
262
|
+
taxonomy_id: int):
|
|
263
|
+
today = datetime.date.today().strftime('%Y-%m-%d')
|
|
264
|
+
# First check if the current assembly is already target - if so don't do anything
|
|
265
|
+
current_query = (
|
|
266
|
+
f"SELECT assembly_id FROM evapro.supported_assembly_tracker "
|
|
267
|
+
f"WHERE taxonomy_id={taxonomy_id} AND current=true;"
|
|
268
|
+
)
|
|
269
|
+
results = get_all_results_for_query(metadata_connection_handle, current_query)
|
|
270
|
+
if len(results) > 0 and results[0][0] == target_assembly:
|
|
271
|
+
logger.warning(f'Current assembly for taxonomy {taxonomy_id} is already {target_assembly}!')
|
|
272
|
+
return
|
|
273
|
+
|
|
274
|
+
# Deprecate the last current assembly
|
|
275
|
+
update_query = (
|
|
276
|
+
f"UPDATE evapro.supported_assembly_tracker "
|
|
277
|
+
f"SET current=false, end_date='{today}' "
|
|
278
|
+
f"WHERE taxonomy_id={taxonomy_id} AND current=true;"
|
|
279
|
+
)
|
|
280
|
+
execute_query(metadata_connection_handle, update_query)
|
|
281
|
+
|
|
282
|
+
# Then insert the new assembly
|
|
283
|
+
insert_query = (
|
|
284
|
+
f"INSERT INTO evapro.supported_assembly_tracker "
|
|
285
|
+
f"(taxonomy_id, source, assembly_id, current, start_date) "
|
|
286
|
+
f"VALUES({taxonomy_id}, '{source_of_assembly}', '{target_assembly}', true, '{today}');"
|
|
287
|
+
)
|
|
288
|
+
execute_query(metadata_connection_handle, insert_query)
|
|
@@ -7,7 +7,7 @@ setup(
|
|
|
7
7
|
name='ebi_eva_common_pyutils',
|
|
8
8
|
scripts=[os.path.join(os.path.dirname(__file__), 'ebi_eva_common_pyutils', 'archive_directory.py')],
|
|
9
9
|
packages=find_packages(),
|
|
10
|
-
version='0.5.3.
|
|
10
|
+
version='0.5.3.dev5',
|
|
11
11
|
license='Apache',
|
|
12
12
|
description='EBI EVA - Common Python Utilities',
|
|
13
13
|
url='https://github.com/EBIVariation/eva-common-pyutils',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|