Skip to content

Commit d7786a3

Browse files
authored
Merge pull request #40 from brain-bican/author_annotation_fields
Author annotation fields
2 parents 802c9a8 + fe189e0 commit d7786a3

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
setup(
1010
name="tdta",
11-
version="0.1.0.dev10",
11+
version="0.1.0.dev11",
1212
description="The aim of this project is to provide taxonomy development tools custom actions.",
1313
long_description=README,
1414
long_description_content_type="text/markdown",

src/tdta/tdt_export.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import json
55
from contextlib import closing
66
from pathlib import Path
7+
from datetime import datetime
78

89
from tdta.utils import read_project_config
910
from cas.model import (CellTypeAnnotation, Annotation, Labelset, AnnotationTransfer, AutomatedAnnotation, Review)
@@ -35,12 +36,13 @@ def export_cas_data(sqlite_db: str, output_file: str, dataset_cache_folder: str
3536
parse_labelset_data(cta, sqlite_db, table_name)
3637
elif table_name == "annotation_transfer":
3738
parse_annotation_transfer_data(cta, sqlite_db, table_name)
38-
elif table_name == "review":
39-
parse_review_data(cta, sqlite_db, table_name)
39+
# elif table_name == "review":
40+
# # don't export reviews to the CAS json for now
41+
# parse_review_data(cta, sqlite_db, table_name)
4042

4143
project_config = read_project_config(Path(output_file).parent.absolute())
4244

43-
if "matrix_file_id" in project_config:
45+
if project_config and "matrix_file_id" in project_config:
4446
matrix_file_id = str(project_config["matrix_file_id"]).strip()
4547
anndata = resolve_matrix_file(matrix_file_id, dataset_cache_folder)
4648
labelsets = cta.labelsets.copy()
@@ -163,6 +165,7 @@ def parse_annotation_transfer_data(cta, sqlite_db, table_name):
163165
else:
164166
filtered_annotations[0].transferred_annotations = [at]
165167

168+
166169
def parse_review_data(cta, sqlite_db, table_name):
167170
"""
168171
Reads 'Annotation Review' table data into the CAS object
@@ -180,8 +183,10 @@ def parse_review_data(cta, sqlite_db, table_name):
180183
filtered_annotations = [a for a in cta.annotations
181184
if a.cell_set_accession == row[columns.index("target_node_accession")]]
182185
if filtered_annotations:
183-
ar = Review("", "", "", "", "")
186+
ar = Review(None, "", "", "")
184187
auto_fill_object_from_row(ar, columns, row)
188+
if ar.datestamp and isinstance(ar.datestamp, str):
189+
ar.datestamp = datetime.strptime(ar.datestamp, '%Y-%m-%dT%H:%M:%S.%fZ')
185190
if filtered_annotations[0].reviews:
186191
filtered_annotations[0].reviews.append(ar)
187192
else:

src/test/tdt_export_test.py

+16-4
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ def test_export(self):
2222

2323
self.assertTrue("author_name" in result)
2424
self.assertEqual("Nelson Johansen", result["author_name"])
25-
self.assertFalse("orcid" in result)
26-
self.assertFalse("cellannotation_schema_version" in result)
25+
self.assertTrue("orcid" in result)
26+
self.assertEqual("https://orcid.org/0000-0002-4436-969X", result["orcid"])
27+
self.assertTrue("cellannotation_schema_version" in result)
28+
self.assertEqual("0.2b0", result["cellannotation_schema_version"])
2729

2830
self.assertTrue("labelsets" in result)
2931
self.assertEqual(4, len(result["labelsets"]))
@@ -37,8 +39,8 @@ def test_export(self):
3739
self.assertEqual(355, len(result["annotations"]))
3840
# print(result["annotations"][:3])
3941
test_annotation = [x for x in result["annotations"] if x["cell_label"] == "1_MSN"][0]
40-
self.assertEqual("D1-Matrix", test_annotation["parent_cell_set_name"])
4142
self.assertEqual("AIT115_300", test_annotation["parent_cell_set_accession"])
43+
self.assertFalse("parent_cell_set_name" in test_annotation)
4244
self.assertFalse("marker_gene_evidence" in test_annotation)
4345
# self.assertEqual(3, len(test_annotation["marker_gene_evidence"]))
4446
# self.assertTrue("EPYC" in test_annotation["marker_gene_evidence"])
@@ -48,6 +50,16 @@ def test_export(self):
4850
self.assertFalse("rationale_dois" in test_annotation)
4951

5052
self.assertTrue("author_annotation_fields" in test_annotation)
51-
self.assertEqual(12, len(test_annotation["author_annotation_fields"]))
53+
print(test_annotation["author_annotation_fields"])
54+
self.assertEqual(11, len(test_annotation["author_annotation_fields"]))
5255
self.assertEqual('16393', test_annotation["author_annotation_fields"]['Cluster size'])
5356
self.assertEqual('PuR(0.52) | CaH(0.39)', test_annotation["author_annotation_fields"]['region.info _Frequency_'])
57+
58+
self.assertFalse("reviews" in test_annotation)
59+
# self.assertTrue("reviews" in test_annotation)
60+
# self.assertEqual(1, len(test_annotation["reviews"]))
61+
# self.assertEqual('hkir-dev', test_annotation["reviews"][0]['reviewer'])
62+
# self.assertEqual('Disagree', test_annotation["reviews"][0]['review'])
63+
# self.assertEqual('incorrect', test_annotation["reviews"][0]['explanation'])
64+
# print(test_annotation["reviews"][0]['datestamp'])
65+
# self.assertEqual('2024-05-29T08:10:11.126Z', test_annotation["reviews"][0]['datestamp'])

src/test/test_data/nanobot.db

32 KB
Binary file not shown.

0 commit comments

Comments
 (0)