diff --git a/apiv2/Makefile b/apiv2/Makefile index 972a1d32e..79e850997 100644 --- a/apiv2/Makefile +++ b/apiv2/Makefile @@ -38,7 +38,7 @@ build: ## Build docker containers update-schema: codegen alembic-autogenerate alembic-upgrade-head # $(docker_compose_run) $(CONTAINER) ruff check --fix . $(docker_compose_run) $(APP_CONTAINER) sh -c 'strawberry export-schema main:schema > /app/graphql_api/schema.graphql' - linkml generate erdiagram --structural --classes Alignment --classes AnnotationAuthor --classes AnnotationFile --classes AnnotationShape --classes Annotation --classes DatasetAuthor --classes DatasetFunding --classes Dataset --classes DepositionAuthor --classes Deposition --classes Frame --classes PerSectionAlignmentParameters --classes PerSectionParameters --classes Run --classes Tiltseries --classes TomogramAuthor --classes TomogramVoxelSpacing --classes Tomogram schema/schema.yaml> schema/README.md + linkml generate erdiagram --structural --classes Alignment --classes AnnotationAuthor --classes AnnotationFile --classes AnnotationShape --classes Annotation --classes DatasetAuthor --classes DatasetFunding --classes Dataset --classes DepositionAuthor --classes Deposition --classes Frame --classes PerSectionAlignmentParameters --classes AnnotationMethodLink --classes GainFile --classes FrameAcquisitionFile --classes Run --classes Tiltseries --classes TomogramAuthor --classes TomogramVoxelSpacing --classes Tomogram schema/schema.yaml> schema/README.md docker compose up -d sleep 5 # wait for the app to reload after having files updated. docker compose exec $(APP_CONTAINER) python3 -m sgqlc.introspection --exclude-deprecated --exclude-description http://localhost:9009/graphql graphql_api/schema.json diff --git a/apiv2/cerbos/policies/annotation_method_link.yaml b/apiv2/cerbos/policies/annotation_method_link.yaml new file mode 100644 index 000000000..2470a51f1 --- /dev/null +++ b/apiv2/cerbos/policies/annotation_method_link.yaml @@ -0,0 +1,31 @@ +# Auto-generated by running 'make codegen'. Do not edit. +# Make changes to the template codegen/templates/cerbos/policies/class_name.yaml.j2 instead. +# yaml-language-server: $schema=https://api.cerbos.dev/latest/cerbos/policy/v1/Policy.schema.json +apiVersion: api.cerbos.dev/v1 +resourcePolicy: + version: "default" + importDerivedRoles: + - common_roles + resource: "annotation_method_link" + rules: + - actions: ['view'] + effect: EFFECT_ALLOW + derivedRoles: + - anonymous + + - actions: ['create', 'update'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + + - actions: ['download', 'delete'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + schemas: + principalSchema: + ref: cerbos:///principal.json diff --git a/apiv2/cerbos/policies/frame_acquisition_file.yaml b/apiv2/cerbos/policies/frame_acquisition_file.yaml new file mode 100644 index 000000000..3461f4e36 --- /dev/null +++ b/apiv2/cerbos/policies/frame_acquisition_file.yaml @@ -0,0 +1,31 @@ +# Auto-generated by running 'make codegen'. Do not edit. +# Make changes to the template codegen/templates/cerbos/policies/class_name.yaml.j2 instead. +# yaml-language-server: $schema=https://api.cerbos.dev/latest/cerbos/policy/v1/Policy.schema.json +apiVersion: api.cerbos.dev/v1 +resourcePolicy: + version: "default" + importDerivedRoles: + - common_roles + resource: "frame_acquisition_file" + rules: + - actions: ['view'] + effect: EFFECT_ALLOW + derivedRoles: + - anonymous + + - actions: ['create', 'update'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + + - actions: ['download', 'delete'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + schemas: + principalSchema: + ref: cerbos:///principal.json diff --git a/apiv2/cerbos/policies/gain_file.yaml b/apiv2/cerbos/policies/gain_file.yaml new file mode 100644 index 000000000..68ba50d37 --- /dev/null +++ b/apiv2/cerbos/policies/gain_file.yaml @@ -0,0 +1,31 @@ +# Auto-generated by running 'make codegen'. Do not edit. +# Make changes to the template codegen/templates/cerbos/policies/class_name.yaml.j2 instead. +# yaml-language-server: $schema=https://api.cerbos.dev/latest/cerbos/policy/v1/Policy.schema.json +apiVersion: api.cerbos.dev/v1 +resourcePolicy: + version: "default" + importDerivedRoles: + - common_roles + resource: "gain_file" + rules: + - actions: ['view'] + effect: EFFECT_ALLOW + derivedRoles: + - anonymous + + - actions: ['create', 'update'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + + - actions: ['download', 'delete'] + effect: EFFECT_DENY + roles: + - user + derivedRoles: + - anonymous + schemas: + principalSchema: + ref: cerbos:///principal.json diff --git a/apiv2/database/migrations/versions/20241002_152402_autogenerated.py b/apiv2/database/migrations/versions/20241002_152402_autogenerated.py new file mode 100644 index 000000000..24fcd0e11 --- /dev/null +++ b/apiv2/database/migrations/versions/20241002_152402_autogenerated.py @@ -0,0 +1,191 @@ +"""autogenerated + +Create Date: 2024-10-02 19:24:04.875030 + +""" + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = "20241002_152402" +down_revision = "20240918_121738" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table( + "frame_acquisition_file", + sa.Column("run_id", sa.Integer(), nullable=True), + sa.Column("s3_mdoc_path", sa.String(), nullable=False), + sa.Column("https_mdoc_path", sa.String(), nullable=False), + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.ForeignKeyConstraint(["run_id"], ["run.id"], name=op.f("fk_frame_acquisition_file_run_id_run")), + sa.PrimaryKeyConstraint("id", name=op.f("pk_frame_acquisition_file")), + ) + op.create_index(op.f("ix_frame_acquisition_file_id"), "frame_acquisition_file", ["id"], unique=False) + op.create_index(op.f("ix_frame_acquisition_file_run_id"), "frame_acquisition_file", ["run_id"], unique=False) + op.create_table( + "gain_file", + sa.Column("run_id", sa.Integer(), nullable=True), + sa.Column("s3_file_path", sa.String(), nullable=False), + sa.Column("https_file_path", sa.String(), nullable=False), + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.ForeignKeyConstraint(["run_id"], ["run.id"], name=op.f("fk_gain_file_run_id_run")), + sa.PrimaryKeyConstraint("id", name=op.f("pk_gain_file")), + ) + op.create_index(op.f("ix_gain_file_id"), "gain_file", ["id"], unique=False) + op.create_index(op.f("ix_gain_file_run_id"), "gain_file", ["run_id"], unique=False) + op.create_table( + "annotation_method_link", + sa.Column("annotation_id", sa.Integer(), nullable=True), + sa.Column( + "link_type", + sa.Enum( + "documentation", + "models_weights", + "other", + "source_code", + "website", + name="annotation_method_link_type_enum", + native_enum=False, + ), + nullable=False, + ), + sa.Column("name", sa.String(), nullable=True), + sa.Column("link", sa.String(), nullable=False), + sa.Column("id", sa.Integer(), autoincrement=True, nullable=False), + sa.ForeignKeyConstraint( + ["annotation_id"], + ["annotation.id"], + name=op.f("fk_annotation_method_link_annotation_id_annotation"), + ), + sa.PrimaryKeyConstraint("id", name=op.f("pk_annotation_method_link")), + ) + op.create_index( + op.f("ix_annotation_method_link_annotation_id"), + "annotation_method_link", + ["annotation_id"], + unique=False, + ) + op.create_index(op.f("ix_annotation_method_link_id"), "annotation_method_link", ["id"], unique=False) + op.drop_index("ix_per_section_parameters_frame_id", table_name="per_section_parameters") + op.drop_index("ix_per_section_parameters_id", table_name="per_section_parameters") + op.drop_index("ix_per_section_parameters_tiltseries_id", table_name="per_section_parameters") + op.drop_table("per_section_parameters") + op.add_column( + "alignment", + sa.Column( + "alignment_method", + sa.Enum( + "projection_matching", + "patch_tracking", + "fiducial_based", + name="alignment_method_type_enum", + native_enum=False, + ), + nullable=True, + ), + ) + op.add_column("alignment", sa.Column("s3_alignment_metadata", sa.String(), nullable=True)) + op.add_column("alignment", sa.Column("https_alignment_metadata", sa.String(), nullable=True)) + op.add_column("alignment", sa.Column("is_portal_standard", sa.Boolean(), nullable=True)) + op.drop_column("alignment", "local_alignment_file") + op.drop_column("annotation", "method_links") + op.add_column("per_section_alignment_parameters", sa.Column("volume_x_rotation", sa.Float(), nullable=True)) + op.drop_column("per_section_alignment_parameters", "in_plane_rotation") + op.add_column( + "per_section_alignment_parameters", + sa.Column("in_plane_rotation", postgresql.JSONB(astext_type=sa.Text()), nullable=True), + ) + op.drop_column("per_section_alignment_parameters", "beam_tilt") + op.drop_column("tiltseries", "https_gain_file") + op.drop_column("tiltseries", "frames_count") + op.drop_column("tiltseries", "https_collection_metadata") + op.drop_column("tiltseries", "s3_collection_metadata") + op.drop_column("tiltseries", "s3_gain_file") + op.add_column("tomogram", sa.Column("is_portal_standard", sa.Boolean(), nullable=True)) + op.add_column("tomogram", sa.Column("is_author_submitted", sa.Boolean(), nullable=True)) + op.add_column("tomogram", sa.Column("is_visualization_default", sa.Boolean(), nullable=True)) + op.add_column("tomogram", sa.Column("publications", sa.String(), nullable=True)) + op.add_column("tomogram", sa.Column("related_database_entries", sa.String(), nullable=True)) + op.add_column("tomogram", sa.Column("deposition_date", sa.DateTime(timezone=True), nullable=False)) + op.add_column("tomogram", sa.Column("release_date", sa.DateTime(timezone=True), nullable=False)) + op.add_column("tomogram", sa.Column("last_modified_date", sa.DateTime(timezone=True), nullable=False)) + op.drop_column("tomogram", "is_canonical") + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("tomogram", sa.Column("is_canonical", sa.BOOLEAN(), autoincrement=False, nullable=True)) + op.drop_column("tomogram", "last_modified_date") + op.drop_column("tomogram", "release_date") + op.drop_column("tomogram", "deposition_date") + op.drop_column("tomogram", "related_database_entries") + op.drop_column("tomogram", "publications") + op.drop_column("tomogram", "is_visualization_default") + op.drop_column("tomogram", "is_author_submitted") + op.drop_column("tomogram", "is_portal_standard") + op.add_column("tiltseries", sa.Column("s3_gain_file", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column("tiltseries", sa.Column("s3_collection_metadata", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column( + "tiltseries", + sa.Column("https_collection_metadata", sa.VARCHAR(), autoincrement=False, nullable=True), + ) + op.add_column("tiltseries", sa.Column("frames_count", sa.INTEGER(), autoincrement=False, nullable=True)) + op.add_column("tiltseries", sa.Column("https_gain_file", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column( + "per_section_alignment_parameters", + sa.Column("beam_tilt", sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=True), + ) + op.drop_column("per_section_alignment_parameters", "in_plane_rotation") + op.add_column( + "per_section_alignment_parameters", + sa.Column("in_plane_rotation", sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=True), + ) + op.drop_column("per_section_alignment_parameters", "volume_x_rotation") + op.add_column("annotation", sa.Column("method_links", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column("alignment", sa.Column("local_alignment_file", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.drop_column("alignment", "is_portal_standard") + op.drop_column("alignment", "https_alignment_metadata") + op.drop_column("alignment", "s3_alignment_metadata") + op.drop_column("alignment", "alignment_method") + op.create_table( + "per_section_parameters", + sa.Column("frame_id", sa.INTEGER(), autoincrement=False, nullable=False), + sa.Column("tiltseries_id", sa.INTEGER(), autoincrement=False, nullable=False), + sa.Column("z_index", sa.INTEGER(), autoincrement=False, nullable=False), + sa.Column("defocus", sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=True), + sa.Column("astigmatism", sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=True), + sa.Column("astigmatic_angle", sa.DOUBLE_PRECISION(precision=53), autoincrement=False, nullable=True), + sa.Column("id", sa.INTEGER(), autoincrement=True, nullable=False), + sa.ForeignKeyConstraint(["frame_id"], ["frame.id"], name="fk_per_section_parameters_frame_id_frame"), + sa.ForeignKeyConstraint( + ["tiltseries_id"], + ["tiltseries.id"], + name="fk_per_section_parameters_tiltseries_id_tiltseries", + ), + sa.PrimaryKeyConstraint("id", name="pk_per_section_parameters"), + ) + op.create_index( + "ix_per_section_parameters_tiltseries_id", + "per_section_parameters", + ["tiltseries_id"], + unique=False, + ) + op.create_index("ix_per_section_parameters_id", "per_section_parameters", ["id"], unique=False) + op.create_index("ix_per_section_parameters_frame_id", "per_section_parameters", ["frame_id"], unique=False) + op.drop_index(op.f("ix_annotation_method_link_id"), table_name="annotation_method_link") + op.drop_index(op.f("ix_annotation_method_link_annotation_id"), table_name="annotation_method_link") + op.drop_table("annotation_method_link") + op.drop_index(op.f("ix_gain_file_run_id"), table_name="gain_file") + op.drop_index(op.f("ix_gain_file_id"), table_name="gain_file") + op.drop_table("gain_file") + op.drop_index(op.f("ix_frame_acquisition_file_run_id"), table_name="frame_acquisition_file") + op.drop_index(op.f("ix_frame_acquisition_file_id"), table_name="frame_acquisition_file") + op.drop_table("frame_acquisition_file") + # ### end Alembic commands ### diff --git a/apiv2/database/migrations/versions/20241003_144355_autogenerated.py b/apiv2/database/migrations/versions/20241003_144355_autogenerated.py new file mode 100644 index 000000000..9ce1a802f --- /dev/null +++ b/apiv2/database/migrations/versions/20241003_144355_autogenerated.py @@ -0,0 +1,30 @@ +"""autogenerated + +Create Date: 2024-10-03 18:43:58.750446 + +""" + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "20241003_144355" +down_revision = "20241002_152402" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column("frame", "https_gain_file") + op.drop_column("frame", "s3_gain_file") + op.drop_column("tomogram", "is_standardized") + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("tomogram", sa.Column("is_standardized", sa.BOOLEAN(), autoincrement=False, nullable=False)) + op.add_column("frame", sa.Column("s3_gain_file", sa.VARCHAR(), autoincrement=False, nullable=True)) + op.add_column("frame", sa.Column("https_gain_file", sa.VARCHAR(), autoincrement=False, nullable=True)) + # ### end Alembic commands ### diff --git a/apiv2/database/models/__init__.py b/apiv2/database/models/__init__.py index c68efb691..c75365806 100644 --- a/apiv2/database/models/__init__.py +++ b/apiv2/database/models/__init__.py @@ -10,6 +10,8 @@ from sqlalchemy.orm import configure_mappers from platformics.database.models import Base, meta # noqa: F401 +from database.models.gain_file import GainFile # noqa: F401 +from database.models.frame_acquisition_file import FrameAcquisitionFile # noqa: F401 from database.models.alignment import Alignment # noqa: F401 from database.models.annotation_author import AnnotationAuthor # noqa: F401 from database.models.annotation_file import AnnotationFile # noqa: F401 @@ -22,12 +24,12 @@ from database.models.deposition import Deposition # noqa: F401 from database.models.deposition_type import DepositionType # noqa: F401 from database.models.frame import Frame # noqa: F401 -from database.models.per_section_parameters import PerSectionParameters # noqa: F401 from database.models.per_section_alignment_parameters import PerSectionAlignmentParameters # noqa: F401 from database.models.run import Run # noqa: F401 from database.models.tiltseries import Tiltseries # noqa: F401 from database.models.tomogram_author import TomogramAuthor # noqa: F401 from database.models.tomogram_voxel_spacing import TomogramVoxelSpacing # noqa: F401 from database.models.tomogram import Tomogram # noqa: F401 +from database.models.annotation_method_link import AnnotationMethodLink # noqa: F401 configure_mappers() diff --git a/apiv2/database/models/alignment.py b/apiv2/database/models/alignment.py index 46b90286e..a6e722c75 100644 --- a/apiv2/database/models/alignment.py +++ b/apiv2/database/models/alignment.py @@ -7,9 +7,9 @@ from typing import TYPE_CHECKING -from sqlalchemy import Enum, Float, ForeignKey, Integer, String +from sqlalchemy import Boolean, Enum, Float, ForeignKey, Integer, String from sqlalchemy.orm import Mapped, mapped_column, relationship -from support.enums import alignment_type_enum +from support.enums import alignment_method_type_enum, alignment_type_enum from platformics.database.models.base import Base from platformics.database.models.file import File @@ -82,6 +82,9 @@ class Alignment(Base): alignment_type: Mapped[alignment_type_enum] = mapped_column( Enum(alignment_type_enum, native_enum=False), nullable=True, ) + alignment_method: Mapped[alignment_method_type_enum] = mapped_column( + Enum(alignment_method_type_enum, native_enum=False), nullable=True, + ) volume_x_dimension: Mapped[float] = mapped_column(Float, nullable=True) volume_y_dimension: Mapped[float] = mapped_column(Float, nullable=True) volume_z_dimension: Mapped[float] = mapped_column(Float, nullable=True) @@ -90,6 +93,8 @@ class Alignment(Base): volume_z_offset: Mapped[float] = mapped_column(Float, nullable=True) x_rotation_offset: Mapped[float] = mapped_column(Float, nullable=True) tilt_offset: Mapped[float] = mapped_column(Float, nullable=True) - local_alignment_file: Mapped[str] = mapped_column(String, nullable=True) affine_transformation_matrix: Mapped[str] = mapped_column(String, nullable=True) + s3_alignment_metadata: Mapped[str] = mapped_column(String, nullable=True) + https_alignment_metadata: Mapped[str] = mapped_column(String, nullable=True) + is_portal_standard: Mapped[bool] = mapped_column(Boolean, nullable=True) id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/annotation.py b/apiv2/database/models/annotation.py index fd64eeb0a..60ce1a4c0 100644 --- a/apiv2/database/models/annotation.py +++ b/apiv2/database/models/annotation.py @@ -17,6 +17,7 @@ if TYPE_CHECKING: from database.models.annotation_author import AnnotationAuthor + from database.models.annotation_method_link import AnnotationMethodLink from database.models.annotation_shape import AnnotationShape from database.models.deposition import Deposition from database.models.run import Run @@ -28,6 +29,7 @@ File = "File" Run = "Run" AnnotationShape = "AnnotationShape" + AnnotationMethodLink = "AnnotationMethodLink" AnnotationAuthor = "AnnotationAuthor" Deposition = "Deposition" ... @@ -50,6 +52,13 @@ class Annotation(Base): foreign_keys="AnnotationShape.annotation_id", cascade="all, delete-orphan", ) + method_links: Mapped[list[AnnotationMethodLink]] = relationship( + "AnnotationMethodLink", + back_populates="annotation", + uselist=True, + foreign_keys="AnnotationMethodLink.annotation_id", + cascade="all, delete-orphan", + ) authors: Mapped[list[AnnotationAuthor]] = relationship( "AnnotationAuthor", back_populates="annotation", @@ -67,7 +76,6 @@ class Annotation(Base): https_metadata_path: Mapped[str] = mapped_column(String, nullable=False) annotation_publication: Mapped[str] = mapped_column(String, nullable=True) annotation_method: Mapped[str] = mapped_column(String, nullable=False) - method_links: Mapped[str] = mapped_column(String, nullable=True) ground_truth_status: Mapped[bool] = mapped_column(Boolean, nullable=True) object_id: Mapped[str] = mapped_column(String, nullable=False) object_name: Mapped[str] = mapped_column(String, nullable=False) diff --git a/apiv2/database/models/annotation_method_link.py b/apiv2/database/models/annotation_method_link.py new file mode 100644 index 000000000..904600bb7 --- /dev/null +++ b/apiv2/database/models/annotation_method_link.py @@ -0,0 +1,44 @@ +""" +SQLAlchemy database model for AnnotationMethodLink + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/database/models/class_name.py.j2 instead. +""" + +from typing import TYPE_CHECKING + +from sqlalchemy import Enum, ForeignKey, Integer, String +from sqlalchemy.orm import Mapped, mapped_column, relationship +from support.enums import annotation_method_link_type_enum + +from platformics.database.models.base import Base +from platformics.database.models.file import File + +if TYPE_CHECKING: + from database.models.annotation import Annotation + + from platformics.database.models.file import File + + ... +else: + File = "File" + Annotation = "Annotation" + ... + + +class AnnotationMethodLink(Base): + __tablename__ = "annotation_method_link" + __mapper_args__ = {"polymorphic_identity": __tablename__, "polymorphic_load": "inline"} + + annotation_id: Mapped[int] = mapped_column(Integer, ForeignKey("annotation.id"), nullable=True, index=True) + annotation: Mapped["Annotation"] = relationship( + "Annotation", + foreign_keys=annotation_id, + back_populates="method_links", + ) + link_type: Mapped[annotation_method_link_type_enum] = mapped_column( + Enum(annotation_method_link_type_enum, native_enum=False), nullable=False, + ) + name: Mapped[str] = mapped_column(String, nullable=True) + link: Mapped[str] = mapped_column(String, nullable=False) + id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/frame.py b/apiv2/database/models/frame.py index 75a541d8d..3ff152382 100644 --- a/apiv2/database/models/frame.py +++ b/apiv2/database/models/frame.py @@ -15,7 +15,6 @@ if TYPE_CHECKING: from database.models.deposition import Deposition - from database.models.per_section_parameters import PerSectionParameters from database.models.run import Run from platformics.database.models.file import File @@ -24,7 +23,6 @@ else: File = "File" Deposition = "Deposition" - PerSectionParameters = "PerSectionParameters" Run = "Run" ... @@ -39,13 +37,6 @@ class Frame(Base): foreign_keys=deposition_id, back_populates="frames", ) - per_section_parameters: Mapped[list[PerSectionParameters]] = relationship( - "PerSectionParameters", - back_populates="frame", - uselist=True, - foreign_keys="PerSectionParameters.frame_id", - cascade="all, delete-orphan", - ) run_id: Mapped[int] = mapped_column(Integer, ForeignKey("run.id"), nullable=True, index=True) run: Mapped["Run"] = relationship( "Run", @@ -56,8 +47,6 @@ class Frame(Base): acquisition_order: Mapped[int] = mapped_column(Integer, nullable=True) dose: Mapped[float] = mapped_column(Float, nullable=False) is_gain_corrected: Mapped[bool] = mapped_column(Boolean, nullable=True) - s3_gain_file: Mapped[str] = mapped_column(String, nullable=True) - https_gain_file: Mapped[str] = mapped_column(String, nullable=True) s3_prefix: Mapped[str] = mapped_column(String, nullable=False) https_prefix: Mapped[str] = mapped_column(String, nullable=False) id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/frame_acquisition_file.py b/apiv2/database/models/frame_acquisition_file.py new file mode 100644 index 000000000..d9bb01b98 --- /dev/null +++ b/apiv2/database/models/frame_acquisition_file.py @@ -0,0 +1,40 @@ +""" +SQLAlchemy database model for FrameAcquisitionFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/database/models/class_name.py.j2 instead. +""" + +from typing import TYPE_CHECKING + +from sqlalchemy import ForeignKey, Integer, String +from sqlalchemy.orm import Mapped, mapped_column, relationship + +from platformics.database.models.base import Base +from platformics.database.models.file import File + +if TYPE_CHECKING: + from database.models.run import Run + + from platformics.database.models.file import File + + ... +else: + File = "File" + Run = "Run" + ... + + +class FrameAcquisitionFile(Base): + __tablename__ = "frame_acquisition_file" + __mapper_args__ = {"polymorphic_identity": __tablename__, "polymorphic_load": "inline"} + + run_id: Mapped[int] = mapped_column(Integer, ForeignKey("run.id"), nullable=True, index=True) + run: Mapped["Run"] = relationship( + "Run", + foreign_keys=run_id, + back_populates="frame_acquisition_files", + ) + s3_mdoc_path: Mapped[str] = mapped_column(String, nullable=False) + https_mdoc_path: Mapped[str] = mapped_column(String, nullable=False) + id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/gain_file.py b/apiv2/database/models/gain_file.py new file mode 100644 index 000000000..7165220e1 --- /dev/null +++ b/apiv2/database/models/gain_file.py @@ -0,0 +1,40 @@ +""" +SQLAlchemy database model for GainFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/database/models/class_name.py.j2 instead. +""" + +from typing import TYPE_CHECKING + +from sqlalchemy import ForeignKey, Integer, String +from sqlalchemy.orm import Mapped, mapped_column, relationship + +from platformics.database.models.base import Base +from platformics.database.models.file import File + +if TYPE_CHECKING: + from database.models.run import Run + + from platformics.database.models.file import File + + ... +else: + File = "File" + Run = "Run" + ... + + +class GainFile(Base): + __tablename__ = "gain_file" + __mapper_args__ = {"polymorphic_identity": __tablename__, "polymorphic_load": "inline"} + + run_id: Mapped[int] = mapped_column(Integer, ForeignKey("run.id"), nullable=True, index=True) + run: Mapped["Run"] = relationship( + "Run", + foreign_keys=run_id, + back_populates="gain_files", + ) + s3_file_path: Mapped[str] = mapped_column(String, nullable=False) + https_file_path: Mapped[str] = mapped_column(String, nullable=False) + id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/per_section_alignment_parameters.py b/apiv2/database/models/per_section_alignment_parameters.py index 90f707123..13a45d0ac 100644 --- a/apiv2/database/models/per_section_alignment_parameters.py +++ b/apiv2/database/models/per_section_alignment_parameters.py @@ -8,6 +8,7 @@ from typing import TYPE_CHECKING from sqlalchemy import Float, ForeignKey, Integer +from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.orm import Mapped, mapped_column, relationship from platformics.database.models.base import Base @@ -38,7 +39,7 @@ class PerSectionAlignmentParameters(Base): z_index: Mapped[int] = mapped_column(Integer, nullable=False) x_offset: Mapped[float] = mapped_column(Float, nullable=True) y_offset: Mapped[float] = mapped_column(Float, nullable=True) - in_plane_rotation: Mapped[float] = mapped_column(Float, nullable=True) - beam_tilt: Mapped[float] = mapped_column(Float, nullable=True) + volume_x_rotation: Mapped[float] = mapped_column(Float, nullable=True) + in_plane_rotation: Mapped[JSONB] = mapped_column(JSONB, nullable=True) tilt_angle: Mapped[float] = mapped_column(Float, nullable=True) id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/run.py b/apiv2/database/models/run.py index 0453cd408..347aa961f 100644 --- a/apiv2/database/models/run.py +++ b/apiv2/database/models/run.py @@ -18,6 +18,8 @@ from database.models.annotation import Annotation from database.models.dataset import Dataset from database.models.frame import Frame + from database.models.frame_acquisition_file import FrameAcquisitionFile + from database.models.gain_file import GainFile from database.models.tiltseries import Tiltseries from database.models.tomogram import Tomogram from database.models.tomogram_voxel_spacing import TomogramVoxelSpacing @@ -31,6 +33,8 @@ Annotation = "Annotation" Dataset = "Dataset" Frame = "Frame" + GainFile = "GainFile" + FrameAcquisitionFile = "FrameAcquisitionFile" Tiltseries = "Tiltseries" TomogramVoxelSpacing = "TomogramVoxelSpacing" Tomogram = "Tomogram" @@ -56,6 +60,16 @@ class Run(Base): frames: Mapped[list[Frame]] = relationship( "Frame", back_populates="run", uselist=True, foreign_keys="Frame.run_id", cascade="all, delete-orphan", ) + gain_files: Mapped[list[GainFile]] = relationship( + "GainFile", back_populates="run", uselist=True, foreign_keys="GainFile.run_id", cascade="all, delete-orphan", + ) + frame_acquisition_files: Mapped[list[FrameAcquisitionFile]] = relationship( + "FrameAcquisitionFile", + back_populates="run", + uselist=True, + foreign_keys="FrameAcquisitionFile.run_id", + cascade="all, delete-orphan", + ) tiltseries: Mapped[list[Tiltseries]] = relationship( "Tiltseries", back_populates="run", uselist=True, foreign_keys="Tiltseries.run_id", cascade="all, delete-orphan", ) diff --git a/apiv2/database/models/tiltseries.py b/apiv2/database/models/tiltseries.py index 061d4fa61..e1ced287f 100644 --- a/apiv2/database/models/tiltseries.py +++ b/apiv2/database/models/tiltseries.py @@ -17,7 +17,6 @@ if TYPE_CHECKING: from database.models.alignment import Alignment from database.models.deposition import Deposition - from database.models.per_section_parameters import PerSectionParameters from database.models.run import Run from platformics.database.models.file import File @@ -26,7 +25,6 @@ else: File = "File" Alignment = "Alignment" - PerSectionParameters = "PerSectionParameters" Run = "Run" Deposition = "Deposition" ... @@ -43,13 +41,6 @@ class Tiltseries(Base): foreign_keys="Alignment.tiltseries_id", cascade="all, delete-orphan", ) - per_section_parameters: Mapped[list[PerSectionParameters]] = relationship( - "PerSectionParameters", - back_populates="tiltseries", - uselist=True, - foreign_keys="PerSectionParameters.tiltseries_id", - cascade="all, delete-orphan", - ) run_id: Mapped[int] = mapped_column(Integer, ForeignKey("run.id"), nullable=False, index=True) run: Mapped["Run"] = relationship( "Run", @@ -66,12 +57,8 @@ class Tiltseries(Base): s3_mrc_file: Mapped[str] = mapped_column(String, nullable=True) https_omezarr_dir: Mapped[str] = mapped_column(String, nullable=True) https_mrc_file: Mapped[str] = mapped_column(String, nullable=True) - s3_collection_metadata: Mapped[str] = mapped_column(String, nullable=True) - https_collection_metadata: Mapped[str] = mapped_column(String, nullable=True) s3_angle_list: Mapped[str] = mapped_column(String, nullable=True) https_angle_list: Mapped[str] = mapped_column(String, nullable=True) - s3_gain_file: Mapped[str] = mapped_column(String, nullable=True) - https_gain_file: Mapped[str] = mapped_column(String, nullable=True) acceleration_voltage: Mapped[int] = mapped_column(Integer, nullable=False) spherical_aberration_constant: Mapped[float] = mapped_column(Float, nullable=False) microscope_manufacturer: Mapped[tiltseries_microscope_manufacturer_enum] = mapped_column( @@ -98,5 +85,4 @@ class Tiltseries(Base): is_aligned: Mapped[bool] = mapped_column(Boolean, nullable=False) pixel_spacing: Mapped[float] = mapped_column(Float, nullable=False) aligned_tiltseries_binning: Mapped[int] = mapped_column(Integer, nullable=True) - frames_count: Mapped[int] = mapped_column(Integer, nullable=True) id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) diff --git a/apiv2/database/models/tomogram.py b/apiv2/database/models/tomogram.py index 237eec0de..850a71e4b 100644 --- a/apiv2/database/models/tomogram.py +++ b/apiv2/database/models/tomogram.py @@ -5,9 +5,10 @@ Make changes to the template codegen/templates/database/models/class_name.py.j2 instead. """ +import datetime from typing import TYPE_CHECKING -from sqlalchemy import Boolean, Enum, Float, ForeignKey, Integer, String +from sqlalchemy import Boolean, DateTime, Enum, Float, ForeignKey, Integer, String from sqlalchemy.orm import Mapped, mapped_column, relationship from support.enums import fiducial_alignment_status_enum, tomogram_processing_enum, tomogram_reconstruction_method_enum @@ -88,7 +89,9 @@ class Tomogram(Base): tomogram_version: Mapped[float] = mapped_column(Float, nullable=True) processing_software: Mapped[str] = mapped_column(String, nullable=True) reconstruction_software: Mapped[str] = mapped_column(String, nullable=False) - is_canonical: Mapped[bool] = mapped_column(Boolean, nullable=True) + is_portal_standard: Mapped[bool] = mapped_column(Boolean, nullable=True) + is_author_submitted: Mapped[bool] = mapped_column(Boolean, nullable=True) + is_visualization_default: Mapped[bool] = mapped_column(Boolean, nullable=True) s3_omezarr_dir: Mapped[str] = mapped_column(String, nullable=True) https_omezarr_dir: Mapped[str] = mapped_column(String, nullable=True) s3_mrc_file: Mapped[str] = mapped_column(String, nullable=True) @@ -103,5 +106,9 @@ class Tomogram(Base): key_photo_url: Mapped[str] = mapped_column(String, nullable=True) key_photo_thumbnail_url: Mapped[str] = mapped_column(String, nullable=True) neuroglancer_config: Mapped[str] = mapped_column(String, nullable=True) - is_standardized: Mapped[bool] = mapped_column(Boolean, nullable=False) + publications: Mapped[str] = mapped_column(String, nullable=True) + related_database_entries: Mapped[str] = mapped_column(String, nullable=True) id: Mapped[int] = mapped_column(Integer, nullable=False, index=True, autoincrement=True, primary_key=True) + deposition_date: Mapped[datetime.datetime] = mapped_column(DateTime(timezone=True), nullable=False) + release_date: Mapped[datetime.datetime] = mapped_column(DateTime(timezone=True), nullable=False) + last_modified_date: Mapped[datetime.datetime] = mapped_column(DateTime(timezone=True), nullable=False) diff --git a/apiv2/db_import/importer.py b/apiv2/db_import/importer.py index a707ef89b..12acde49d 100644 --- a/apiv2/db_import/importer.py +++ b/apiv2/db_import/importer.py @@ -8,6 +8,7 @@ from db_import.importers.annotation import ( AnnotationAuthorDBImporter, AnnotationDBImporter, + AnnotationMethodLinkDBImporter, StaleAnnotationDeletionDBImporter, ) from db_import.importers.base_importer import DBImportConfig @@ -33,6 +34,7 @@ def db_import_options(func): options = [] options.append(click.option("--import-annotations", is_flag=True, default=False)) options.append(click.option("--import-annotation-authors", is_flag=True, default=False)) + options.append(click.option("--import-annotation-method-links", is_flag=True, default=False)) options.append(click.option("--import-dataset-authors", is_flag=True, default=False)) options.append(click.option("--import-dataset-funding", is_flag=True, default=False)) options.append(click.option("--import-depositions", is_flag=True, default=False)) @@ -75,6 +77,7 @@ def load( filter_dataset: list[str], import_annotations: bool, import_annotation_authors: bool, + import_annotation_method_links: bool, import_dataset_authors: bool, import_dataset_funding: bool, import_depositions: bool, @@ -96,6 +99,7 @@ def load( filter_dataset, import_annotations, import_annotation_authors, + import_annotation_method_links, import_dataset_authors, import_dataset_funding, import_depositions, @@ -119,6 +123,7 @@ def load_func( filter_dataset: list[str] | None = None, import_annotations: bool = False, import_annotation_authors: bool = False, + import_annotation_method_links: bool = False, import_dataset_authors: bool = False, import_dataset_funding: bool = False, import_depositions: bool = False, @@ -139,6 +144,7 @@ def load_func( if import_everything: import_annotations = True import_annotation_authors = True + import_annotation_method_links = True import_dataset_authors = True import_dataset_funding = True import_depositions = True @@ -148,7 +154,7 @@ def load_func( import_tomogram_authors = True import_tomogram_voxel_spacing = True else: - import_annotations = max(import_annotations, import_annotation_authors) + import_annotations = max(import_annotations, import_annotation_authors, import_annotation_method_links) import_tomograms = max(import_tomograms, import_tomogram_authors) import_tomogram_voxel_spacing = max(import_annotations, import_tomograms, import_tomogram_voxel_spacing) import_runs = max(import_runs, import_tiltseries, import_tomogram_voxel_spacing) @@ -209,6 +215,7 @@ def load_func( if import_tomograms: tomogram_cleaner = StaleTomogramDeletionDBImporter(voxel_spacing_obj.id, config) + TomogramDBImporter.load_deposition_map(config) for tomogram in TomogramDBImporter.get_item(voxel_spacing_obj.id, run_id, voxel_spacing, config): tomogram_obj = tomogram.import_to_db() tomogram_cleaner.mark_as_active(tomogram_obj) @@ -231,6 +238,13 @@ def load_func( config, ) annotation_authors.import_to_db() + if import_annotation_method_links: + anno_method_links = AnnotationMethodLinkDBImporter.get_item( + annotation_obj.id, + annotation, + config, + ) + anno_method_links.import_to_db() annotation_cleaner.remove_stale_objects() voxel_spacing_cleaner.mark_as_active(voxel_spacing_obj) diff --git a/apiv2/db_import/importers/annotation.py b/apiv2/db_import/importers/annotation.py index 36a77f026..69c34f205 100644 --- a/apiv2/db_import/importers/annotation.py +++ b/apiv2/db_import/importers/annotation.py @@ -1,4 +1,3 @@ -import json from typing import Any, Iterator from database import models @@ -34,7 +33,6 @@ def __init__( def get_data_map(self) -> dict[str, Any]: deposition = get_deposition(self.config, self.metadata.get("deposition_id")) - method_links = self.metadata.get("method_links") return { "s3_metadata_path": self.join_path(self.config.s3_prefix, self.metadata_path), "https_metadata_path": self.join_path(self.config.https_prefix, self.metadata_path), @@ -56,7 +54,6 @@ def get_data_map(self) -> dict[str, Any]: "is_curator_recommended": ["is_curator_recommended"], "method_type": ["method_type"], "deposition_id": deposition.id, - "method_links": json.dumps(method_links) if method_links else None, } def import_to_db(self) -> Base: @@ -227,6 +224,42 @@ def get_item( return cls(annotation_id, parent, config) +class AnnotationMethodLinkDBImporter(StaleDeletionDBImporter): + def __init__(self, annotation_id: int, parent: AnnotationDBImporter, config: DBImportConfig): + self.annotation_id = annotation_id + self.parent = parent + self.config = config + self.metadata = parent.metadata.get("method_links", []) + + def get_data_map(self) -> dict[str, Any]: + return { + "annotation_id": self.annotation_id, + "link_type": ["link_type"], + "name": ["custom_name"], + "link": ["link"], + } + + @classmethod + def get_id_fields(cls) -> list[str]: + return ["annotation_id", "link"] + + @classmethod + def get_db_model_class(cls) -> type[Base]: + return models.AnnotationMethodLink + + def get_filters(self) -> dict[str, Any]: + return {"annotation_id": self.annotation_id} + + @classmethod + def get_item( + cls, + annotation_id: int, + parent: AnnotationDBImporter, + config: DBImportConfig, + ) -> "AnnotationAuthorDBImporter": + return cls(annotation_id, parent, config) + + class StaleAnnotationDeletionDBImporter(StaleParentDeletionDBImporter): ref_klass = AnnotationDBImporter diff --git a/apiv2/db_import/importers/tomogram.py b/apiv2/db_import/importers/tomogram.py index 392189601..072485478 100644 --- a/apiv2/db_import/importers/tomogram.py +++ b/apiv2/db_import/importers/tomogram.py @@ -1,6 +1,7 @@ import json from typing import Any, Iterator +import sqlalchemy as sa from database import models from db_import.common.normalize_fields import normalize_fiducial_alignment from db_import.importers.base_importer import ( @@ -16,6 +17,7 @@ class TomogramDBImporter(BaseDBImporter): + deposition_map = {} def __init__( self, voxel_spacing_id: int, @@ -37,6 +39,12 @@ def get_metadata_file_path(self) -> str: def get_data_map(self) -> dict[str, Any]: return {**self.get_direct_mapped_fields(), **self.get_computed_fields()} + @classmethod + def load_deposition_map(cls, config) -> None: + session = config.get_db_session() + for item in session.scalars(sa.select(models.Deposition)).all(): + cls.deposition_map[item.id] = item + @classmethod def get_id_fields(cls) -> list[str]: return ["name", "tomogram_voxel_spacing_id"] @@ -60,6 +68,9 @@ def get_direct_mapped_fields(cls) -> dict[str, Any]: "offset_y": ["offset", "y"], "offset_z": ["offset", "z"], "deposition_id": ["deposition_id"], + "deposition_date": ["deposition_date"], + "release_date": ["release_date"], + "last_modified_date": ["last_modified_date"], } def normalize_to_unknown_str(self, value: str) -> str: @@ -95,8 +106,13 @@ def get_computed_fields(self) -> dict[str, Any]: "key_photo_thumbnail_url": None, "neuroglancer_config": self.generate_neuroglancer_data(), "type": self.get_tomogram_type(), - "is_standardized": self.metadata.get("is_standardized") or False, + "is_portal_standard": self.metadata.get("is_standardized") or False, } + date_fields = ["deposition_date", "release_date", "last_modified_date"] + if not self.metadata.get("deposition_date"): + deposition = self.deposition_map[self.metadata["deposition_id"]] + for date_field in date_fields: + extra_data[date_field] = getattr(deposition, date_field) if key_photos := self.metadata.get("key_photo"): extra_data["key_photo_url"] = self.join_path(https_prefix, key_photos.get("snapshot")) extra_data["key_photo_thumbnail_url"] = self.join_path(https_prefix, key_photos.get("thumbnail")) diff --git a/apiv2/db_import/tests/populate_db.py b/apiv2/db_import/tests/populate_db.py index 5c366dbd0..54d58a62f 100644 --- a/apiv2/db_import/tests/populate_db.py +++ b/apiv2/db_import/tests/populate_db.py @@ -1,10 +1,11 @@ -from datetime import datetime +from datetime import date, datetime import sqlalchemy as sa from database.models import ( Annotation, AnnotationAuthor, AnnotationFile, + AnnotationMethodLink, AnnotationShape, Dataset, DatasetAuthor, @@ -34,6 +35,7 @@ ANNOTATION_ID = 602 ANNOTATION_FILE_ID = 701 ANNOTATION_AUTHOR_ID = 702 +ANNOTATION_METHOD_LINK_ID = 802 STALE_RUN_ID = 902 STALE_TOMOGRAM_ID = 903 @@ -49,9 +51,9 @@ def stale_deposition_metadata() -> dict: "id": DEPOSITION_ID1, "title": "Test Deposition", "description": "Test Description", - "deposition_date": datetime.now().date(), - "release_date": datetime.now().date(), - "last_modified_date": datetime.now().date(), + "deposition_date": date(2022, 4, 2), + "release_date": date(2022, 6, 1), + "last_modified_date": date(2022, 9, 2), "deposition_publications": "Publications", } @@ -233,7 +235,10 @@ def populate_stale_tomogram_voxel_spacing(session: sa.orm.Session, run_id: int = offset_x=0, offset_y=0, offset_z=0, - is_standardized=True, + is_portal_standard=True, + deposition_date=datetime.min, + release_date=datetime.min, + last_modified_date=datetime.min, ) session.add(stale_tomogram) session.add(TomogramAuthor(tomogram=stale_tomogram, name="Jane Smith", author_list_order=1)) @@ -284,7 +289,10 @@ def populate_tomograms(session: sa.orm.Session) -> Tomogram: offset_x=0, offset_y=0, offset_z=0, - is_standardized=True, + is_portal_standard=True, + deposition_date=datetime.min, + release_date=datetime.min, + last_modified_date=datetime.min, ) @@ -314,7 +322,10 @@ def populate_stale_tomograms(session: sa.orm.Session) -> Tomogram: offset_x=0, offset_y=0, offset_z=0, - is_standardized=True, + is_portal_standard=True, + deposition_date=datetime.min, + release_date=datetime.min, + last_modified_date=datetime.min, ) @@ -530,6 +541,39 @@ def populate_annotation_authors(session: sa.orm.Session) -> None: session.add(author2) +@write_data +def populate_stale_annotation_method_links(session: sa.orm.Session) -> None: + populate_stale_annotations(session) + session.add(AnnotationMethodLink(annotation_id=STALE_ANNOTATION_ID, name="Stale Link 0", link_type="other", link="https://some-link.com")) + session.add( + AnnotationMethodLink( + annotation_id=STALE_ANNOTATION_ID, + name="Stale link", + link_type="source_code", + link="https://stale-link.com", + ), + ) + +@write_data +def populate_annotation_method_links(session: sa.orm.Session) -> None: + populate_annotations(session) + row = AnnotationMethodLink( + id=ANNOTATION_METHOD_LINK_ID, + annotation_id=ANNOTATION_ID, + link="https://fake-link.com/resources/100-foo-1.0_method.pdf", + link_type="documentation", + name="Method Documentation", + ) + session.add(row) + row2 = AnnotationMethodLink( + annotation_id=ANNOTATION_ID, + link="https://another-link.com", + link_type="website", + name="Stale Link", + ) + session.add(row2) + + @write_data def populate_stale_annotation_authors(session: sa.orm.Session) -> None: populate_stale_annotations(session) diff --git a/apiv2/db_import/tests/test_db_annotation_import.py b/apiv2/db_import/tests/test_db_annotation_import.py index 6ccde09dc..79a9e21ab 100644 --- a/apiv2/db_import/tests/test_db_annotation_import.py +++ b/apiv2/db_import/tests/test_db_annotation_import.py @@ -7,13 +7,16 @@ ANNOTATION_AUTHOR_ID, ANNOTATION_FILE_ID, ANNOTATION_ID, + ANNOTATION_METHOD_LINK_ID, DATASET_ID, RUN1_ID, TOMOGRAM_VOXEL_ID1, populate_annotation_authors, populate_annotation_files, + populate_annotation_method_links, populate_stale_annotation_authors, populate_stale_annotation_files, + populate_stale_annotation_method_links, ) from sqlalchemy.orm import Session @@ -123,6 +126,25 @@ def expected_annotation_authors() -> list[dict[str, Any]]: ] +@pytest.fixture +def expected_annotation_method_links() -> list[dict[str, Any]]: + return [ + { + "id": ANNOTATION_METHOD_LINK_ID, + "annotation_id": ANNOTATION_ID, + "link": "https://fake-link.com/resources/100-foo-1.0_method.pdf", + "link_type": "documentation", + "name": "Method Documentation", + }, + { + "annotation_id": ANNOTATION_ID, + "link": "https://another-link.com/100-foo-1.0_code.zip", + "link_type": "source_code", + "name": "Source Code", + }, + ] + + # Tests addition and update of annotations and annotation files def test_import_annotations( sync_db_session: Session, @@ -207,3 +229,46 @@ def test_import_annotation_authors_removes_stale( assert len(annotation.authors) == len(expected_annotation_authors) for author in annotation.authors.order_by(models.AnnotationAuthor.author_list_order): verify_model(author, next(expected_annotations_authors_iter)) + + +# Tests update of existing annotation method links, addition of new method links +def test_import_annotation_method_links( + sync_db_session: Session, + verify_dataset_import: Callable[[list[str]], models.Dataset], + verify_model: Callable[[Base, dict[str, Any]], None], + expected_annotations: list[dict[str, Any]], + expected_annotation_method_links: list[dict[str, Any]], +) -> None: + populate_annotation_method_links(sync_db_session) + sync_db_session.commit() + verify_dataset_import(import_annotation_method_links=True) + expected_iter = iter(expected_annotation_method_links) + actual_runs = sync_db_session.get(models.Run, RUN1_ID) + for annotation in sorted(actual_runs.annotations, key=lambda x: x.s3_metadata_path): + assert len(annotation.method_links) == len(expected_annotation_method_links) + # for item in annotation.method_links.order_by(models.AnnotationMethodLink.link): + for item in sorted(annotation.method_links, key=lambda x: x.link): + verify_model(item, next(expected_iter)) + + +# Tests deletion of stale annotation and annotation method links +def test_import_annotation_method_links_removes_stale( + sync_db_session: Session, + verify_dataset_import: Callable[[list[str]], models.Dataset], + verify_model: Callable[[Base, dict[str, Any]], None], + expected_annotations: list[dict[str, Any]], + expected_annotation_method_links: list[dict[str, Any]], +) -> None: + populate_annotation_method_links(sync_db_session) + populate_stale_annotation_method_links(sync_db_session) + sync_db_session.commit() + verify_dataset_import(import_annotation_method_links=True) + expected_iter = iter(expected_annotation_method_links) + actual_runs = sync_db_session.get(models.Run, RUN1_ID) + for annotation in sorted(actual_runs.annotations, key=lambda x: x.s3_metadata_path): + if annotation.id != ANNOTATION_ID: + continue + assert len(annotation.method_links) == len(expected_annotation_method_links) + # for item in annotation.method_links.order_by(models.AnnotationMethodLink.link): + for item in sorted(annotation.method_links, key=lambda x: x.id, reverse=True): + verify_model(item, next(expected_iter)) diff --git a/apiv2/db_import/tests/test_db_tiltseries_import.py b/apiv2/db_import/tests/test_db_tiltseries_import.py index 3b052e884..ac7804a07 100644 --- a/apiv2/db_import/tests/test_db_tiltseries_import.py +++ b/apiv2/db_import/tests/test_db_tiltseries_import.py @@ -27,7 +27,6 @@ def expected_tiltseries(http_prefix: str) -> list[dict[str, Any]]: "data_acquisition_software": "SerialEM", "deposition_id": 300, "https_angle_list": f"{http_prefix}/{DATASET_ID}/RUN1/TiltSeries/bar.rawtlt", - "https_collection_metadata": f"{http_prefix}/{DATASET_ID}/RUN1/TiltSeries/foo.mdoc", "https_mrc_file": f"{http_prefix}/{DATASET_ID}/RUN1/TiltSeries/ts_foo.mrc", "https_omezarr_dir": f"{http_prefix}/{DATASET_ID}/RUN1/TiltSeries/ts_foo.zarr", "id": TILTSERIES_ID, @@ -42,7 +41,6 @@ def expected_tiltseries(http_prefix: str) -> list[dict[str, Any]]: "related_empiar_entry": "EMPIAR-XYZ", "run_id": RUN1_ID, "s3_angle_list": f"s3://test-public-bucket/{DATASET_ID}/RUN1/TiltSeries/bar.rawtlt", - "s3_collection_metadata": f"s3://test-public-bucket/{DATASET_ID}/RUN1/TiltSeries/foo.mdoc", "s3_mrc_file": f"s3://test-public-bucket/{DATASET_ID}/RUN1/TiltSeries/ts_foo.mrc", "s3_omezarr_dir": f"s3://test-public-bucket/{DATASET_ID}/RUN1/TiltSeries/ts_foo.zarr", "spherical_aberration_constant": 2.7, @@ -54,7 +52,6 @@ def expected_tiltseries(http_prefix: str) -> list[dict[str, Any]]: "tilt_step": 2, "tilting_scheme": "Dose symmetric from 0.0 degrees", "total_flux": 122, - "frames_count": 60, }, { "acceleration_voltage": 10000, @@ -82,7 +79,6 @@ def expected_tiltseries(http_prefix: str) -> list[dict[str, Any]]: "tilt_step": 3, "tilting_scheme": "min to max tilt", "total_flux": 12, - "frames_count": None, }, ] diff --git a/apiv2/db_import/tests/test_db_tomo_import.py b/apiv2/db_import/tests/test_db_tomo_import.py index a7826a305..b9fffcc75 100644 --- a/apiv2/db_import/tests/test_db_tomo_import.py +++ b/apiv2/db_import/tests/test_db_tomo_import.py @@ -1,9 +1,11 @@ +from datetime import date from typing import Any, Callable import pytest as pytest from database import models from db_import.tests.populate_db import ( DATASET_ID, + DEPOSITION_ID2, RUN1_ID, TOMOGRAM_AUTHOR_ID, TOMOGRAM_ID, @@ -69,7 +71,6 @@ def expected_tomograms_by_run(http_prefix: str) -> dict[str, dict[float, list[di "processing": "raw", "processing_software": "tomo3D", "tomogram_version": 1.0, - "is_canonical": True, "s3_omezarr_dir": f"s3://test-public-bucket/{run1_vs_path}CanonicalTomogram/RUN1.zarr", "https_omezarr_dir": f"{http_prefix}/{run1_vs_path}CanonicalTomogram/RUN1.zarr", "s3_mrc_file": f"s3://test-public-bucket/{run1_vs_path}CanonicalTomogram/RUN1.mrc", @@ -85,7 +86,10 @@ def expected_tomograms_by_run(http_prefix: str) -> dict[str, dict[float, list[di "key_photo_thumbnail_url": f"{http_prefix}/{run1_vs_path}KeyPhotos/key-photo-thumbnail.png", "neuroglancer_config": '{"foo":"bar","baz":"test"}', "deposition_id": 301, - "is_standardized": False, + "is_portal_standard": False, + "deposition_date": date(2023, 4, 2), + "release_date": date(2024, 6, 1), + "last_modified_date": date(2023, 9, 2), } run2_tomo = { "name": "RUN2", @@ -98,7 +102,6 @@ def expected_tomograms_by_run(http_prefix: str) -> dict[str, dict[float, list[di "reconstruction_software": "Unknown", "processing": "filtered", "tomogram_version": 1.0, - "is_canonical": True, "s3_omezarr_dir": f"s3://test-public-bucket/{run2_vs_path}CanonicalTomogram/RUN2.zarr", "https_omezarr_dir": f"{http_prefix}/{run2_vs_path}CanonicalTomogram/RUN2.zarr", "s3_mrc_file": f"s3://test-public-bucket/{run2_vs_path}CanonicalTomogram/RUN2.mrc", @@ -112,7 +115,10 @@ def expected_tomograms_by_run(http_prefix: str) -> dict[str, dict[float, list[di "offset_z": 0, "neuroglancer_config": "{}", "deposition_id": 300, - "is_standardized": False, + "is_portal_standard": False, + "deposition_date": date(2022, 4, 2), + "release_date": date(2022, 6, 1), + "last_modified_date": date(2022, 9, 2), } return { "RUN1": { @@ -164,7 +170,7 @@ def test_import_voxel_spacings_and_tomograms( ) -> None: populate_tomograms(sync_db_session) sync_db_session.commit() - actual = verify_dataset_import(import_tomograms=True) + actual = verify_dataset_import(import_tomograms=True, import_depositions=True, deposition_id=[DEPOSITION_ID2]) for run in sorted(actual.runs, key=lambda x: x.name): tomogram_voxel_spacings = sorted(run.tomogram_voxel_spacings, key=lambda x: x.voxel_spacing) expected_voxel_spacings = expected_voxel_spacings_by_run.get(run.name, []) diff --git a/apiv2/graphql_api/helpers/alignment.py b/apiv2/graphql_api/helpers/alignment.py index 61169b603..821a820d7 100644 --- a/apiv2/graphql_api/helpers/alignment.py +++ b/apiv2/graphql_api/helpers/alignment.py @@ -11,7 +11,7 @@ from graphql_api.helpers.deposition import DepositionGroupByOptions, build_deposition_groupby_output from graphql_api.helpers.run import RunGroupByOptions, build_run_groupby_output from graphql_api.helpers.tiltseries import TiltseriesGroupByOptions, build_tiltseries_groupby_output -from support.enums import alignment_type_enum +from support.enums import alignment_method_type_enum, alignment_type_enum if TYPE_CHECKING: from api.types.deposition import Deposition @@ -39,6 +39,7 @@ class AlignmentGroupByOptions: tiltseries: Optional[TiltseriesGroupByOptions] = None run: Optional[RunGroupByOptions] = None alignment_type: Optional[alignment_type_enum] = None + alignment_method: Optional[alignment_method_type_enum] = None volume_x_dimension: Optional[float] = None volume_y_dimension: Optional[float] = None volume_z_dimension: Optional[float] = None @@ -47,8 +48,10 @@ class AlignmentGroupByOptions: volume_z_offset: Optional[float] = None x_rotation_offset: Optional[float] = None tilt_offset: Optional[float] = None - local_alignment_file: Optional[str] = None affine_transformation_matrix: Optional[str] = None + s3_alignment_metadata: Optional[str] = None + https_alignment_metadata: Optional[str] = None + is_portal_standard: Optional[bool] = None id: Optional[int] = None diff --git a/apiv2/graphql_api/helpers/annotation.py b/apiv2/graphql_api/helpers/annotation.py index 3ef490e50..0252ec446 100644 --- a/apiv2/graphql_api/helpers/annotation.py +++ b/apiv2/graphql_api/helpers/annotation.py @@ -37,7 +37,6 @@ class AnnotationGroupByOptions: https_metadata_path: Optional[str] = None annotation_publication: Optional[str] = None annotation_method: Optional[str] = None - method_links: Optional[str] = None ground_truth_status: Optional[bool] = None object_id: Optional[str] = None object_name: Optional[str] = None diff --git a/apiv2/graphql_api/helpers/annotation_method_link.py b/apiv2/graphql_api/helpers/annotation_method_link.py new file mode 100644 index 000000000..1b9b70d58 --- /dev/null +++ b/apiv2/graphql_api/helpers/annotation_method_link.py @@ -0,0 +1,65 @@ +""" +Define GraphQL types and helper functions for supporting GROUPBY queries. + +Auto-gereanted by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/groupby_helpers.py.j2 instead. +""" + +from typing import TYPE_CHECKING, Any, Optional + +import strawberry +from graphql_api.helpers.annotation import AnnotationGroupByOptions, build_annotation_groupby_output +from support.enums import annotation_method_link_type_enum + +if TYPE_CHECKING: + from api.types.annotation import Annotation +else: + Annotation = "Annotation" + + +""" +Define groupby options for AnnotationMethodLink type. +These are only used in aggregate queries. +""" + + +@strawberry.type +class AnnotationMethodLinkGroupByOptions: + annotation: Optional[AnnotationGroupByOptions] = None + link_type: Optional[annotation_method_link_type_enum] = None + name: Optional[str] = None + link: Optional[str] = None + id: Optional[int] = None + + +def build_annotation_method_link_groupby_output( + group_object: Optional[AnnotationMethodLinkGroupByOptions], + keys: list[str], + value: Any, +) -> AnnotationMethodLinkGroupByOptions: + """ + Given a list of (potentially nested) fields representing the key of a groupby query and the value, + build the proper groupby object. + """ + if not group_object: + group_object = AnnotationMethodLinkGroupByOptions() + + key = keys.pop(0) + match key: + case "annotation": + if getattr(group_object, key): + value = build_annotation_groupby_output( + getattr(group_object, key), + keys, + value, + ) + else: + value = build_annotation_groupby_output( + None, + keys, + value, + ) + case _: + pass + setattr(group_object, key, value) + return group_object diff --git a/apiv2/graphql_api/helpers/frame.py b/apiv2/graphql_api/helpers/frame.py index fbb14d451..9417b263d 100644 --- a/apiv2/graphql_api/helpers/frame.py +++ b/apiv2/graphql_api/helpers/frame.py @@ -35,8 +35,6 @@ class FrameGroupByOptions: acquisition_order: Optional[int] = None dose: Optional[float] = None is_gain_corrected: Optional[bool] = None - s3_gain_file: Optional[str] = None - https_gain_file: Optional[str] = None s3_prefix: Optional[str] = None https_prefix: Optional[str] = None id: Optional[int] = None diff --git a/apiv2/graphql_api/helpers/frame_acquisition_file.py b/apiv2/graphql_api/helpers/frame_acquisition_file.py new file mode 100644 index 000000000..542a6c6bb --- /dev/null +++ b/apiv2/graphql_api/helpers/frame_acquisition_file.py @@ -0,0 +1,63 @@ +""" +Define GraphQL types and helper functions for supporting GROUPBY queries. + +Auto-gereanted by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/groupby_helpers.py.j2 instead. +""" + +from typing import TYPE_CHECKING, Any, Optional + +import strawberry +from graphql_api.helpers.run import RunGroupByOptions, build_run_groupby_output + +if TYPE_CHECKING: + from api.types.run import Run +else: + Run = "Run" + + +""" +Define groupby options for FrameAcquisitionFile type. +These are only used in aggregate queries. +""" + + +@strawberry.type +class FrameAcquisitionFileGroupByOptions: + run: Optional[RunGroupByOptions] = None + s3_mdoc_path: Optional[str] = None + https_mdoc_path: Optional[str] = None + id: Optional[int] = None + + +def build_frame_acquisition_file_groupby_output( + group_object: Optional[FrameAcquisitionFileGroupByOptions], + keys: list[str], + value: Any, +) -> FrameAcquisitionFileGroupByOptions: + """ + Given a list of (potentially nested) fields representing the key of a groupby query and the value, + build the proper groupby object. + """ + if not group_object: + group_object = FrameAcquisitionFileGroupByOptions() + + key = keys.pop(0) + match key: + case "run": + if getattr(group_object, key): + value = build_run_groupby_output( + getattr(group_object, key), + keys, + value, + ) + else: + value = build_run_groupby_output( + None, + keys, + value, + ) + case _: + pass + setattr(group_object, key, value) + return group_object diff --git a/apiv2/graphql_api/helpers/gain_file.py b/apiv2/graphql_api/helpers/gain_file.py new file mode 100644 index 000000000..e6d4a05ea --- /dev/null +++ b/apiv2/graphql_api/helpers/gain_file.py @@ -0,0 +1,63 @@ +""" +Define GraphQL types and helper functions for supporting GROUPBY queries. + +Auto-gereanted by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/groupby_helpers.py.j2 instead. +""" + +from typing import TYPE_CHECKING, Any, Optional + +import strawberry +from graphql_api.helpers.run import RunGroupByOptions, build_run_groupby_output + +if TYPE_CHECKING: + from api.types.run import Run +else: + Run = "Run" + + +""" +Define groupby options for GainFile type. +These are only used in aggregate queries. +""" + + +@strawberry.type +class GainFileGroupByOptions: + run: Optional[RunGroupByOptions] = None + s3_file_path: Optional[str] = None + https_file_path: Optional[str] = None + id: Optional[int] = None + + +def build_gain_file_groupby_output( + group_object: Optional[GainFileGroupByOptions], + keys: list[str], + value: Any, +) -> GainFileGroupByOptions: + """ + Given a list of (potentially nested) fields representing the key of a groupby query and the value, + build the proper groupby object. + """ + if not group_object: + group_object = GainFileGroupByOptions() + + key = keys.pop(0) + match key: + case "run": + if getattr(group_object, key): + value = build_run_groupby_output( + getattr(group_object, key), + keys, + value, + ) + else: + value = build_run_groupby_output( + None, + keys, + value, + ) + case _: + pass + setattr(group_object, key, value) + return group_object diff --git a/apiv2/graphql_api/helpers/per_section_alignment_parameters.py b/apiv2/graphql_api/helpers/per_section_alignment_parameters.py index f93b52d1d..e54afe3c8 100644 --- a/apiv2/graphql_api/helpers/per_section_alignment_parameters.py +++ b/apiv2/graphql_api/helpers/per_section_alignment_parameters.py @@ -28,8 +28,8 @@ class PerSectionAlignmentParametersGroupByOptions: z_index: Optional[int] = None x_offset: Optional[float] = None y_offset: Optional[float] = None - in_plane_rotation: Optional[float] = None - beam_tilt: Optional[float] = None + volume_x_rotation: Optional[float] = None + in_plane_rotation: Optional[list[list[float]]] = None tilt_angle: Optional[float] = None id: Optional[int] = None diff --git a/apiv2/graphql_api/helpers/tiltseries.py b/apiv2/graphql_api/helpers/tiltseries.py index 05f170249..d1378c35b 100644 --- a/apiv2/graphql_api/helpers/tiltseries.py +++ b/apiv2/graphql_api/helpers/tiltseries.py @@ -36,12 +36,8 @@ class TiltseriesGroupByOptions: s3_mrc_file: Optional[str] = None https_omezarr_dir: Optional[str] = None https_mrc_file: Optional[str] = None - s3_collection_metadata: Optional[str] = None - https_collection_metadata: Optional[str] = None s3_angle_list: Optional[str] = None https_angle_list: Optional[str] = None - s3_gain_file: Optional[str] = None - https_gain_file: Optional[str] = None acceleration_voltage: Optional[int] = None spherical_aberration_constant: Optional[float] = None microscope_manufacturer: Optional[tiltseries_microscope_manufacturer_enum] = None @@ -66,7 +62,6 @@ class TiltseriesGroupByOptions: is_aligned: Optional[bool] = None pixel_spacing: Optional[float] = None aligned_tiltseries_binning: Optional[int] = None - frames_count: Optional[int] = None id: Optional[int] = None diff --git a/apiv2/graphql_api/helpers/tomogram.py b/apiv2/graphql_api/helpers/tomogram.py index 565687833..05a5a7d97 100644 --- a/apiv2/graphql_api/helpers/tomogram.py +++ b/apiv2/graphql_api/helpers/tomogram.py @@ -5,6 +5,7 @@ Make changes to the template codegen/templates/graphql_api/groupby_helpers.py.j2 instead. """ +import datetime from typing import TYPE_CHECKING, Any, Optional import strawberry @@ -58,7 +59,9 @@ class TomogramGroupByOptions: tomogram_version: Optional[float] = None processing_software: Optional[str] = None reconstruction_software: Optional[str] = None - is_canonical: Optional[bool] = None + is_portal_standard: Optional[bool] = None + is_author_submitted: Optional[bool] = None + is_visualization_default: Optional[bool] = None s3_omezarr_dir: Optional[str] = None https_omezarr_dir: Optional[str] = None s3_mrc_file: Optional[str] = None @@ -73,8 +76,12 @@ class TomogramGroupByOptions: key_photo_url: Optional[str] = None key_photo_thumbnail_url: Optional[str] = None neuroglancer_config: Optional[str] = None - is_standardized: Optional[bool] = None + publications: Optional[str] = None + related_database_entries: Optional[str] = None id: Optional[int] = None + deposition_date: Optional[datetime.datetime] = None + release_date: Optional[datetime.datetime] = None + last_modified_date: Optional[datetime.datetime] = None def build_tomogram_groupby_output( diff --git a/apiv2/graphql_api/mutations.py b/apiv2/graphql_api/mutations.py index 6dbb174ee..22d7150e7 100644 --- a/apiv2/graphql_api/mutations.py +++ b/apiv2/graphql_api/mutations.py @@ -22,6 +22,12 @@ delete_annotation_file, update_annotation_file, ) +from graphql_api.types.annotation_method_link import ( + AnnotationMethodLink, + create_annotation_method_link, + delete_annotation_method_link, + update_annotation_method_link, +) from graphql_api.types.annotation_shape import ( AnnotationShape, create_annotation_shape, @@ -55,18 +61,19 @@ update_deposition_type, ) from graphql_api.types.frame import Frame, create_frame, delete_frame, update_frame +from graphql_api.types.frame_acquisition_file import ( + FrameAcquisitionFile, + create_frame_acquisition_file, + delete_frame_acquisition_file, + update_frame_acquisition_file, +) +from graphql_api.types.gain_file import GainFile, create_gain_file, delete_gain_file, update_gain_file from graphql_api.types.per_section_alignment_parameters import ( PerSectionAlignmentParameters, create_per_section_alignment_parameters, delete_per_section_alignment_parameters, update_per_section_alignment_parameters, ) -from graphql_api.types.per_section_parameters import ( - PerSectionParameters, - create_per_section_parameters, - delete_per_section_parameters, - update_per_section_parameters, -) from graphql_api.types.run import Run, create_run, delete_run, update_run from graphql_api.types.tiltseries import Tiltseries, create_tiltseries, delete_tiltseries, update_tiltseries from graphql_api.types.tomogram import Tomogram, create_tomogram, delete_tomogram, update_tomogram @@ -87,6 +94,16 @@ @strawberry.type class Mutation: + # GainFile mutations + create_gain_file: GainFile = create_gain_file + update_gain_file: Sequence[GainFile] = update_gain_file + delete_gain_file: Sequence[GainFile] = delete_gain_file + + # FrameAcquisitionFile mutations + create_frame_acquisition_file: FrameAcquisitionFile = create_frame_acquisition_file + update_frame_acquisition_file: Sequence[FrameAcquisitionFile] = update_frame_acquisition_file + delete_frame_acquisition_file: Sequence[FrameAcquisitionFile] = delete_frame_acquisition_file + # Alignment mutations create_alignment: Alignment = create_alignment update_alignment: Sequence[Alignment] = update_alignment @@ -147,11 +164,6 @@ class Mutation: update_frame: Sequence[Frame] = update_frame delete_frame: Sequence[Frame] = delete_frame - # PerSectionParameters mutations - create_per_section_parameters: PerSectionParameters = create_per_section_parameters - update_per_section_parameters: Sequence[PerSectionParameters] = update_per_section_parameters - delete_per_section_parameters: Sequence[PerSectionParameters] = delete_per_section_parameters - # PerSectionAlignmentParameters mutations create_per_section_alignment_parameters: PerSectionAlignmentParameters = create_per_section_alignment_parameters update_per_section_alignment_parameters: Sequence[PerSectionAlignmentParameters] = ( @@ -185,3 +197,8 @@ class Mutation: create_tomogram: Tomogram = create_tomogram update_tomogram: Sequence[Tomogram] = update_tomogram delete_tomogram: Sequence[Tomogram] = delete_tomogram + + # AnnotationMethodLink mutations + create_annotation_method_link: AnnotationMethodLink = create_annotation_method_link + update_annotation_method_link: Sequence[AnnotationMethodLink] = update_annotation_method_link + delete_annotation_method_link: Sequence[AnnotationMethodLink] = delete_annotation_method_link diff --git a/apiv2/graphql_api/queries.py b/apiv2/graphql_api/queries.py index dadb022c7..6e0199d2c 100644 --- a/apiv2/graphql_api/queries.py +++ b/apiv2/graphql_api/queries.py @@ -27,6 +27,12 @@ resolve_annotation_files, resolve_annotation_files_aggregate, ) +from graphql_api.types.annotation_method_link import ( + AnnotationMethodLink, + AnnotationMethodLinkAggregate, + resolve_annotation_method_links, + resolve_annotation_method_links_aggregate, +) from graphql_api.types.annotation_shape import ( AnnotationShape, AnnotationShapeAggregate, @@ -65,18 +71,19 @@ resolve_deposition_types_aggregate, ) from graphql_api.types.frame import Frame, FrameAggregate, resolve_frames, resolve_frames_aggregate +from graphql_api.types.frame_acquisition_file import ( + FrameAcquisitionFile, + FrameAcquisitionFileAggregate, + resolve_frame_acquisition_files, + resolve_frame_acquisition_files_aggregate, +) +from graphql_api.types.gain_file import GainFile, GainFileAggregate, resolve_gain_files, resolve_gain_files_aggregate from graphql_api.types.per_section_alignment_parameters import ( PerSectionAlignmentParameters, PerSectionAlignmentParametersAggregate, resolve_per_section_alignment_parameters, resolve_per_section_alignment_parameters_aggregate, ) -from graphql_api.types.per_section_parameters import ( - PerSectionParameters, - PerSectionParametersAggregate, - resolve_per_section_parameters, - resolve_per_section_parameters_aggregate, -) from graphql_api.types.run import Run, RunAggregate, resolve_runs, resolve_runs_aggregate from graphql_api.types.tiltseries import ( Tiltseries, @@ -108,6 +115,8 @@ class Query: # # Query entities + gain_files: Sequence[GainFile] = resolve_gain_files + frame_acquisition_files: Sequence[FrameAcquisitionFile] = resolve_frame_acquisition_files alignments: Sequence[Alignment] = resolve_alignments annotation_authors: Sequence[AnnotationAuthor] = resolve_annotation_authors annotation_files: Sequence[AnnotationFile] = resolve_annotation_files @@ -120,15 +129,17 @@ class Query: depositions: Sequence[Deposition] = resolve_depositions deposition_types: Sequence[DepositionType] = resolve_deposition_types frames: Sequence[Frame] = resolve_frames - per_section_parameters: Sequence[PerSectionParameters] = resolve_per_section_parameters per_section_alignment_parameters: Sequence[PerSectionAlignmentParameters] = resolve_per_section_alignment_parameters runs: Sequence[Run] = resolve_runs tiltseries: Sequence[Tiltseries] = resolve_tiltseries tomogram_authors: Sequence[TomogramAuthor] = resolve_tomogram_authors tomogram_voxel_spacings: Sequence[TomogramVoxelSpacing] = resolve_tomogram_voxel_spacings tomograms: Sequence[Tomogram] = resolve_tomograms + annotation_method_links: Sequence[AnnotationMethodLink] = resolve_annotation_method_links # Query entity aggregates + gain_files_aggregate: GainFileAggregate = resolve_gain_files_aggregate + frame_acquisition_files_aggregate: FrameAcquisitionFileAggregate = resolve_frame_acquisition_files_aggregate alignments_aggregate: AlignmentAggregate = resolve_alignments_aggregate annotation_authors_aggregate: AnnotationAuthorAggregate = resolve_annotation_authors_aggregate annotation_files_aggregate: AnnotationFileAggregate = resolve_annotation_files_aggregate @@ -141,7 +152,6 @@ class Query: depositions_aggregate: DepositionAggregate = resolve_depositions_aggregate deposition_types_aggregate: DepositionTypeAggregate = resolve_deposition_types_aggregate frames_aggregate: FrameAggregate = resolve_frames_aggregate - per_section_parameters_aggregate: PerSectionParametersAggregate = resolve_per_section_parameters_aggregate per_section_alignment_parameters_aggregate: PerSectionAlignmentParametersAggregate = ( resolve_per_section_alignment_parameters_aggregate ) @@ -150,3 +160,4 @@ class Query: tomogram_authors_aggregate: TomogramAuthorAggregate = resolve_tomogram_authors_aggregate tomogram_voxel_spacings_aggregate: TomogramVoxelSpacingAggregate = resolve_tomogram_voxel_spacings_aggregate tomograms_aggregate: TomogramAggregate = resolve_tomograms_aggregate + annotation_method_links_aggregate: AnnotationMethodLinkAggregate = resolve_annotation_method_links_aggregate diff --git a/apiv2/graphql_api/schema.graphql b/apiv2/graphql_api/schema.graphql index 8450c2e56..027676e5b 100644 --- a/apiv2/graphql_api/schema.graphql +++ b/apiv2/graphql_api/schema.graphql @@ -66,6 +66,9 @@ type Alignment implements EntityInterface & Node { """Whether this a LOCAL or GLOBAL alignment""" alignmentType: alignment_type_enum + """The method used to create this alignment""" + alignmentMethod: alignment_method_type_enum + """X dimension of the reconstruction volume in angstrom""" volumeXDimension: Float @@ -90,11 +93,17 @@ type Alignment implements EntityInterface & Node { """Additional tilt offset in degrees""" tiltOffset: Float - """Path to the local alignment file""" - localAlignmentFile: String - """A placeholder for the affine transformation matrix.""" affineTransformationMatrix: String + + """S3 path to the metadata file for this alignment""" + s3AlignmentMetadata: String + + """HTTPS url to the metadata file for this alignment""" + httpsAlignmentMetadata: String + + """Whether this is the portal standard alignment""" + isPortalStandard: Boolean } type AlignmentAggregate { @@ -129,6 +138,7 @@ enum AlignmentCountColumns { tomograms run alignmentType + alignmentMethod volumeXDimension volumeYDimension volumeZDimension @@ -137,8 +147,10 @@ enum AlignmentCountColumns { volumeZOffset xRotationOffset tiltOffset - localAlignmentFile affineTransformationMatrix + s3AlignmentMetadata + httpsAlignmentMetadata + isPortalStandard id } @@ -150,6 +162,9 @@ input AlignmentCreateInput { """Whether this a LOCAL or GLOBAL alignment""" alignmentType: alignment_type_enum = null + """The method used to create this alignment""" + alignmentMethod: alignment_method_type_enum = null + """X dimension of the reconstruction volume in angstrom""" volumeXDimension: Float = null @@ -174,12 +189,18 @@ input AlignmentCreateInput { """Additional tilt offset in degrees""" tiltOffset: Float = null - """Path to the local alignment file""" - localAlignmentFile: String = null - """A placeholder for the affine transformation matrix.""" affineTransformationMatrix: String = null + """S3 path to the metadata file for this alignment""" + s3AlignmentMetadata: String = null + + """HTTPS url to the metadata file for this alignment""" + httpsAlignmentMetadata: String = null + + """Whether this is the portal standard alignment""" + isPortalStandard: Boolean = null + """Numeric identifier (May change!)""" id: Int! } @@ -198,6 +219,7 @@ type AlignmentGroupByOptions { tiltseries: TiltseriesGroupByOptions run: RunGroupByOptions alignmentType: alignment_type_enum + alignmentMethod: alignment_method_type_enum volumeXDimension: Float volumeYDimension: Float volumeZDimension: Float @@ -206,8 +228,10 @@ type AlignmentGroupByOptions { volumeZOffset: Float xRotationOffset: Float tiltOffset: Float - localAlignmentFile: String affineTransformationMatrix: String + s3AlignmentMetadata: String + httpsAlignmentMetadata: String + isPortalStandard: Boolean id: Int } @@ -220,8 +244,9 @@ type AlignmentMinMaxColumns { volumeZOffset: Float xRotationOffset: Float tiltOffset: Float - localAlignmentFile: String affineTransformationMatrix: String + s3AlignmentMetadata: String + httpsAlignmentMetadata: String id: Int } @@ -242,6 +267,7 @@ input AlignmentOrderByClause { tiltseries: TiltseriesOrderByClause run: RunOrderByClause alignmentType: orderBy + alignmentMethod: orderBy volumeXDimension: orderBy volumeYDimension: orderBy volumeZDimension: orderBy @@ -250,8 +276,10 @@ input AlignmentOrderByClause { volumeZOffset: orderBy xRotationOffset: orderBy tiltOffset: orderBy - localAlignmentFile: orderBy affineTransformationMatrix: orderBy + s3AlignmentMetadata: orderBy + httpsAlignmentMetadata: orderBy + isPortalStandard: orderBy id: orderBy } @@ -263,6 +291,9 @@ input AlignmentUpdateInput { """Whether this a LOCAL or GLOBAL alignment""" alignmentType: alignment_type_enum = null + """The method used to create this alignment""" + alignmentMethod: alignment_method_type_enum = null + """X dimension of the reconstruction volume in angstrom""" volumeXDimension: Float = null @@ -287,12 +318,18 @@ input AlignmentUpdateInput { """Additional tilt offset in degrees""" tiltOffset: Float = null - """Path to the local alignment file""" - localAlignmentFile: String = null - """A placeholder for the affine transformation matrix.""" affineTransformationMatrix: String = null + """S3 path to the metadata file for this alignment""" + s3AlignmentMetadata: String = null + + """HTTPS url to the metadata file for this alignment""" + httpsAlignmentMetadata: String = null + + """Whether this is the portal standard alignment""" + isPortalStandard: Boolean = null + """Numeric identifier (May change!)""" id: Int } @@ -301,10 +338,14 @@ input AlignmentWhereClause { annotationFiles: AnnotationFileWhereClause perSectionAlignments: PerSectionAlignmentParametersWhereClause deposition: DepositionWhereClause + depositionId: IntComparators tiltseries: TiltseriesWhereClause + tiltseriesId: IntComparators tomograms: TomogramWhereClause run: RunWhereClause + runId: IntComparators alignmentType: Alignment_type_enumEnumComparators + alignmentMethod: Alignment_method_type_enumEnumComparators volumeXDimension: FloatComparators volumeYDimension: FloatComparators volumeZDimension: FloatComparators @@ -313,8 +354,10 @@ input AlignmentWhereClause { volumeZOffset: FloatComparators xRotationOffset: FloatComparators tiltOffset: FloatComparators - localAlignmentFile: StrComparators affineTransformationMatrix: StrComparators + s3AlignmentMetadata: StrComparators + httpsAlignmentMetadata: StrComparators + isPortalStandard: BoolComparators id: IntComparators } @@ -322,6 +365,18 @@ input AlignmentWhereClauseMutations { id: IntComparators } +input Alignment_method_type_enumEnumComparators { + _eq: alignment_method_type_enum + _neq: alignment_method_type_enum + _in: [alignment_method_type_enum!] + _nin: [alignment_method_type_enum!] + _gt: alignment_method_type_enum + _gte: alignment_method_type_enum + _lt: alignment_method_type_enum + _lte: alignment_method_type_enum + _is_null: Boolean +} + input Alignment_type_enumEnumComparators { _eq: alignment_type_enum _neq: alignment_type_enum @@ -360,6 +415,23 @@ type Annotation implements EntityInterface & Node { last: Int = null ): AnnotationShapeConnection! annotationShapesAggregate(where: AnnotationShapeWhereClause = null): AnnotationShapeAggregate + methodLinks( + where: AnnotationMethodLinkWhereClause = null + orderBy: [AnnotationMethodLinkOrderByClause!] = [] + + """Returns the items in the list that come before the specified cursor.""" + before: String = null + + """Returns the items in the list that come after the specified cursor.""" + after: String = null + + """Returns the first n items from the list.""" + first: Int = null + + """Returns the items in the list that come after the specified cursor.""" + last: Int = null + ): AnnotationMethodLinkConnection! + methodLinksAggregate(where: AnnotationMethodLinkWhereClause = null): AnnotationMethodLinkAggregate authors( where: AnnotationAuthorWhereClause = null orderBy: [AnnotationAuthorOrderByClause!] = [] @@ -396,11 +468,6 @@ type Annotation implements EntityInterface & Node { """ annotationMethod: String! - """ - Provides links to information on the method used for generating annotation, comma separated - """ - methodLinks: String - """ Whether an annotation is considered ground truth, as determined by the annotator. """ @@ -697,6 +764,7 @@ input AnnotationAuthorUpdateInput { input AnnotationAuthorWhereClause { annotation: AnnotationWhereClause + annotationId: IntComparators id: IntComparators authorListOrder: IntComparators orcid: StrComparators @@ -725,13 +793,13 @@ type AnnotationConnection { enum AnnotationCountColumns { run annotationShapes + methodLinks authors deposition s3MetadataPath httpsMetadataPath annotationPublication annotationMethod - methodLinks groundTruthStatus objectId objectName @@ -770,11 +838,6 @@ input AnnotationCreateInput { """ annotationMethod: String! - """ - Provides links to information on the method used for generating annotation, comma separated - """ - methodLinks: String = null - """ Whether an annotation is considered ground truth, as determined by the annotator. """ @@ -1031,8 +1094,11 @@ input AnnotationFileUpdateInput { input AnnotationFileWhereClause { alignment: AlignmentWhereClause + alignmentId: IntComparators annotationShape: AnnotationShapeWhereClause + annotationShapeId: IntComparators tomogramVoxelSpacing: TomogramVoxelSpacingWhereClause + tomogramVoxelSpacingId: IntComparators format: StrComparators s3Path: StrComparators httpsPath: StrComparators @@ -1052,7 +1118,6 @@ type AnnotationGroupByOptions { httpsMetadataPath: String annotationPublication: String annotationMethod: String - methodLinks: String groundTruthStatus: Boolean objectId: String objectName: String @@ -1071,12 +1136,147 @@ type AnnotationGroupByOptions { id: Int } +""" +A set of links to models, source code, documentation, etc referenced by annotation method +""" +type AnnotationMethodLink implements EntityInterface & Node { + """The Globally Unique ID of this object""" + _id: GlobalID! + + """Numeric identifier (May change!)""" + id: Int! + annotation(where: AnnotationWhereClause = null, orderBy: [AnnotationOrderByClause!] = []): Annotation + annotationId: Int + + """Type of link (e.g. model, source code, documentation)""" + linkType: annotation_method_link_type_enum! + + """user readable name of the resource""" + name: String + + """URL to the resource""" + link: String! +} + +type AnnotationMethodLinkAggregate { + aggregate: [AnnotationMethodLinkAggregateFunctions!] +} + +type AnnotationMethodLinkAggregateFunctions { + sum: AnnotationMethodLinkNumericalColumns + avg: AnnotationMethodLinkNumericalColumns + stddev: AnnotationMethodLinkNumericalColumns + variance: AnnotationMethodLinkNumericalColumns + min: AnnotationMethodLinkMinMaxColumns + max: AnnotationMethodLinkMinMaxColumns + groupBy: AnnotationMethodLinkGroupByOptions + count(distinct: Boolean = false, columns: AnnotationMethodLinkCountColumns = null): Int +} + +"""A connection to a list of items.""" +type AnnotationMethodLinkConnection { + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [AnnotationMethodLinkEdge!]! +} + +enum AnnotationMethodLinkCountColumns { + annotation + linkType + name + link + id +} + +input AnnotationMethodLinkCreateInput { + """Reference to annotation this link applies to""" + annotationId: ID = null + + """Type of link (e.g. model, source code, documentation)""" + linkType: annotation_method_link_type_enum! + + """user readable name of the resource""" + name: String = null + + """URL to the resource""" + link: String! + + """Numeric identifier (May change!)""" + id: Int! +} + +"""An edge in a connection.""" +type AnnotationMethodLinkEdge { + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: AnnotationMethodLink! +} + +type AnnotationMethodLinkGroupByOptions { + annotation: AnnotationGroupByOptions + linkType: annotation_method_link_type_enum + name: String + link: String + id: Int +} + +type AnnotationMethodLinkMinMaxColumns { + name: String + link: String + id: Int +} + +type AnnotationMethodLinkNumericalColumns { + id: Int +} + +input AnnotationMethodLinkOrderByClause { + annotation: AnnotationOrderByClause + linkType: orderBy + name: orderBy + link: orderBy + id: orderBy +} + +input AnnotationMethodLinkUpdateInput { + """Reference to annotation this link applies to""" + annotationId: ID = null + + """Type of link (e.g. model, source code, documentation)""" + linkType: annotation_method_link_type_enum + + """user readable name of the resource""" + name: String = null + + """URL to the resource""" + link: String + + """Numeric identifier (May change!)""" + id: Int +} + +input AnnotationMethodLinkWhereClause { + annotation: AnnotationWhereClause + annotationId: IntComparators + linkType: Annotation_method_link_type_enumEnumComparators + name: StrComparators + link: StrComparators + id: IntComparators +} + +input AnnotationMethodLinkWhereClauseMutations { + id: IntComparators +} + type AnnotationMinMaxColumns { s3MetadataPath: String httpsMetadataPath: String annotationPublication: String annotationMethod: String - methodLinks: String objectId: String objectName: String objectDescription: String @@ -1106,7 +1306,6 @@ input AnnotationOrderByClause { httpsMetadataPath: orderBy annotationPublication: orderBy annotationMethod: orderBy - methodLinks: orderBy groundTruthStatus: orderBy objectId: orderBy objectName: orderBy @@ -1246,6 +1445,7 @@ input AnnotationShapeUpdateInput { input AnnotationShapeWhereClause { annotation: AnnotationWhereClause + annotationId: IntComparators annotationFiles: AnnotationFileWhereClause shapeType: Annotation_file_shape_type_enumEnumComparators id: IntComparators @@ -1275,11 +1475,6 @@ input AnnotationUpdateInput { """ annotationMethod: String - """ - Provides links to information on the method used for generating annotation, comma separated - """ - methodLinks: String = null - """ Whether an annotation is considered ground truth, as determined by the annotator. """ @@ -1347,14 +1542,16 @@ input AnnotationUpdateInput { input AnnotationWhereClause { run: RunWhereClause + runId: IntComparators annotationShapes: AnnotationShapeWhereClause + methodLinks: AnnotationMethodLinkWhereClause authors: AnnotationAuthorWhereClause deposition: DepositionWhereClause + depositionId: IntComparators s3MetadataPath: StrComparators httpsMetadataPath: StrComparators annotationPublication: StrComparators annotationMethod: StrComparators - methodLinks: StrComparators groundTruthStatus: BoolComparators objectId: StrComparators objectName: StrComparators @@ -1401,6 +1598,18 @@ input Annotation_file_source_enumEnumComparators { _is_null: Boolean } +input Annotation_method_link_type_enumEnumComparators { + _eq: annotation_method_link_type_enum + _neq: annotation_method_link_type_enum + _in: [annotation_method_link_type_enum!] + _nin: [annotation_method_link_type_enum!] + _gt: annotation_method_link_type_enum + _gte: annotation_method_link_type_enum + _lt: annotation_method_link_type_enum + _lte: annotation_method_link_type_enum + _is_null: Boolean +} + input Annotation_method_type_enumEnumComparators { _eq: annotation_method_type_enum _neq: annotation_method_type_enum @@ -1806,6 +2015,7 @@ input DatasetAuthorUpdateInput { input DatasetAuthorWhereClause { dataset: DatasetWhereClause + datasetId: IntComparators id: IntComparators authorListOrder: IntComparators orcid: StrComparators @@ -2087,6 +2297,7 @@ input DatasetFundingUpdateInput { input DatasetFundingWhereClause { dataset: DatasetWhereClause + datasetId: IntComparators fundingAgencyName: StrComparators grantId: StrComparators id: IntComparators @@ -2294,6 +2505,7 @@ input DatasetUpdateInput { input DatasetWhereClause { deposition: DepositionWhereClause + depositionId: IntComparators fundingSources: DatasetFundingWhereClause authors: DatasetAuthorWhereClause runs: RunWhereClause @@ -2736,6 +2948,7 @@ input DepositionAuthorUpdateInput { input DepositionAuthorWhereClause { deposition: DepositionWhereClause + depositionId: IntComparators id: IntComparators authorListOrder: IntComparators orcid: StrComparators @@ -2948,6 +3161,7 @@ input DepositionTypeUpdateInput { input DepositionTypeWhereClause { deposition: DepositionWhereClause + depositionId: IntComparators type: Deposition_types_enumEnumComparators id: IntComparators } @@ -3062,23 +3276,6 @@ type Frame implements EntityInterface & Node { id: Int! deposition(where: DepositionWhereClause = null, orderBy: [DepositionOrderByClause!] = []): Deposition depositionId: Int - perSectionParameters( - where: PerSectionParametersWhereClause = null - orderBy: [PerSectionParametersOrderByClause!] = [] - - """Returns the items in the list that come before the specified cursor.""" - before: String = null - - """Returns the items in the list that come after the specified cursor.""" - after: String = null - - """Returns the first n items from the list.""" - first: Int = null - - """Returns the items in the list that come after the specified cursor.""" - last: Int = null - ): PerSectionParametersConnection! - perSectionParametersAggregate(where: PerSectionParametersWhereClause = null): PerSectionParametersAggregate run(where: RunWhereClause = null, orderBy: [RunOrderByClause!] = []): Run runId: Int @@ -3094,12 +3291,6 @@ type Frame implements EntityInterface & Node { """Whether this frame has been gain corrected""" isGainCorrected: Boolean - """S3 path to the gain file for this frame""" - s3GainFile: String - - """HTTPS path to the gain file for this frame""" - httpsGainFile: String - """Path to a directory containing data for this entity as an S3 url""" s3Prefix: String! @@ -3107,6 +3298,127 @@ type Frame implements EntityInterface & Node { httpsPrefix: String! } +""" +References to files containing more information about frame acquisition +""" +type FrameAcquisitionFile implements EntityInterface & Node { + """The Globally Unique ID of this object""" + _id: GlobalID! + + """Numeric identifier (May change!)""" + id: Int! + run(where: RunWhereClause = null, orderBy: [RunOrderByClause!] = []): Run + runId: Int + + """Path to the frame acquisition mdoc file in s3""" + s3MdocPath: String! + + """Path to the frame acquisition mdoc file as an https url""" + httpsMdocPath: String! +} + +type FrameAcquisitionFileAggregate { + aggregate: [FrameAcquisitionFileAggregateFunctions!] +} + +type FrameAcquisitionFileAggregateFunctions { + sum: FrameAcquisitionFileNumericalColumns + avg: FrameAcquisitionFileNumericalColumns + stddev: FrameAcquisitionFileNumericalColumns + variance: FrameAcquisitionFileNumericalColumns + min: FrameAcquisitionFileMinMaxColumns + max: FrameAcquisitionFileMinMaxColumns + groupBy: FrameAcquisitionFileGroupByOptions + count(distinct: Boolean = false, columns: FrameAcquisitionFileCountColumns = null): Int +} + +"""A connection to a list of items.""" +type FrameAcquisitionFileConnection { + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [FrameAcquisitionFileEdge!]! +} + +enum FrameAcquisitionFileCountColumns { + run + s3MdocPath + httpsMdocPath + id +} + +input FrameAcquisitionFileCreateInput { + runId: ID = null + + """Path to the frame acquisition mdoc file in s3""" + s3MdocPath: String! + + """Path to the frame acquisition mdoc file as an https url""" + httpsMdocPath: String! + + """Numeric identifier (May change!)""" + id: Int! +} + +"""An edge in a connection.""" +type FrameAcquisitionFileEdge { + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: FrameAcquisitionFile! +} + +type FrameAcquisitionFileGroupByOptions { + run: RunGroupByOptions + s3MdocPath: String + httpsMdocPath: String + id: Int +} + +type FrameAcquisitionFileMinMaxColumns { + s3MdocPath: String + httpsMdocPath: String + id: Int +} + +type FrameAcquisitionFileNumericalColumns { + id: Int +} + +input FrameAcquisitionFileOrderByClause { + run: RunOrderByClause + s3MdocPath: orderBy + httpsMdocPath: orderBy + id: orderBy +} + +input FrameAcquisitionFileUpdateInput { + runId: ID = null + + """Path to the frame acquisition mdoc file in s3""" + s3MdocPath: String + + """Path to the frame acquisition mdoc file as an https url""" + httpsMdocPath: String + + """Numeric identifier (May change!)""" + id: Int +} + +input FrameAcquisitionFileWhereClause { + run: RunWhereClause + runId: IntComparators + s3MdocPath: StrComparators + httpsMdocPath: StrComparators + id: IntComparators +} + +input FrameAcquisitionFileWhereClauseMutations { + id: IntComparators +} + type FrameAggregate { aggregate: [FrameAggregateFunctions!] } @@ -3133,14 +3445,11 @@ type FrameConnection { enum FrameCountColumns { deposition - perSectionParameters run rawAngle acquisitionOrder dose isGainCorrected - s3GainFile - httpsGainFile s3Prefix httpsPrefix id @@ -3162,12 +3471,6 @@ input FrameCreateInput { """Whether this frame has been gain corrected""" isGainCorrected: Boolean = null - """S3 path to the gain file for this frame""" - s3GainFile: String = null - - """HTTPS path to the gain file for this frame""" - httpsGainFile: String = null - """Path to a directory containing data for this entity as an S3 url""" s3Prefix: String! @@ -3194,8 +3497,6 @@ type FrameGroupByOptions { acquisitionOrder: Int dose: Float isGainCorrected: Boolean - s3GainFile: String - httpsGainFile: String s3Prefix: String httpsPrefix: String id: Int @@ -3205,8 +3506,6 @@ type FrameMinMaxColumns { rawAngle: Float acquisitionOrder: Int dose: Float - s3GainFile: String - httpsGainFile: String s3Prefix: String httpsPrefix: String id: Int @@ -3226,8 +3525,6 @@ input FrameOrderByClause { acquisitionOrder: orderBy dose: orderBy isGainCorrected: orderBy - s3GainFile: orderBy - httpsGainFile: orderBy s3Prefix: orderBy httpsPrefix: orderBy id: orderBy @@ -3249,12 +3546,6 @@ input FrameUpdateInput { """Whether this frame has been gain corrected""" isGainCorrected: Boolean = null - """S3 path to the gain file for this frame""" - s3GainFile: String = null - - """HTTPS path to the gain file for this frame""" - httpsGainFile: String = null - """Path to a directory containing data for this entity as an S3 url""" s3Prefix: String @@ -3267,14 +3558,13 @@ input FrameUpdateInput { input FrameWhereClause { deposition: DepositionWhereClause - perSectionParameters: PerSectionParametersWhereClause + depositionId: IntComparators run: RunWhereClause + runId: IntComparators rawAngle: FloatComparators acquisitionOrder: IntComparators dose: FloatComparators isGainCorrected: BoolComparators - s3GainFile: StrComparators - httpsGainFile: StrComparators s3Prefix: StrComparators httpsPrefix: StrComparators id: IntComparators @@ -3284,6 +3574,125 @@ input FrameWhereClauseMutations { id: IntComparators } +"""Gain values for frames in this run""" +type GainFile implements EntityInterface & Node { + """The Globally Unique ID of this object""" + _id: GlobalID! + + """Numeric identifier (May change!)""" + id: Int! + run(where: RunWhereClause = null, orderBy: [RunOrderByClause!] = []): Run + runId: Int + + """Path to the file in s3""" + s3FilePath: String! + + """Path to the file as an https url""" + httpsFilePath: String! +} + +type GainFileAggregate { + aggregate: [GainFileAggregateFunctions!] +} + +type GainFileAggregateFunctions { + sum: GainFileNumericalColumns + avg: GainFileNumericalColumns + stddev: GainFileNumericalColumns + variance: GainFileNumericalColumns + min: GainFileMinMaxColumns + max: GainFileMinMaxColumns + groupBy: GainFileGroupByOptions + count(distinct: Boolean = false, columns: GainFileCountColumns = null): Int +} + +"""A connection to a list of items.""" +type GainFileConnection { + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [GainFileEdge!]! +} + +enum GainFileCountColumns { + run + s3FilePath + httpsFilePath + id +} + +input GainFileCreateInput { + runId: ID = null + + """Path to the file in s3""" + s3FilePath: String! + + """Path to the file as an https url""" + httpsFilePath: String! + + """Numeric identifier (May change!)""" + id: Int! +} + +"""An edge in a connection.""" +type GainFileEdge { + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: GainFile! +} + +type GainFileGroupByOptions { + run: RunGroupByOptions + s3FilePath: String + httpsFilePath: String + id: Int +} + +type GainFileMinMaxColumns { + s3FilePath: String + httpsFilePath: String + id: Int +} + +type GainFileNumericalColumns { + id: Int +} + +input GainFileOrderByClause { + run: RunOrderByClause + s3FilePath: orderBy + httpsFilePath: orderBy + id: orderBy +} + +input GainFileUpdateInput { + runId: ID = null + + """Path to the file in s3""" + s3FilePath: String + + """Path to the file as an https url""" + httpsFilePath: String + + """Numeric identifier (May change!)""" + id: Int +} + +input GainFileWhereClause { + run: RunWhereClause + runId: IntComparators + s3FilePath: StrComparators + httpsFilePath: StrComparators + id: IntComparators +} + +input GainFileWhereClauseMutations { + id: IntComparators +} + """ The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. """ @@ -3307,6 +3716,12 @@ input LimitOffsetClause { } type Mutation { + createGainFile(input: GainFileCreateInput!): GainFile! + updateGainFile(input: GainFileUpdateInput!, where: GainFileWhereClauseMutations!): [GainFile!]! + deleteGainFile(where: GainFileWhereClauseMutations!): [GainFile!]! + createFrameAcquisitionFile(input: FrameAcquisitionFileCreateInput!): FrameAcquisitionFile! + updateFrameAcquisitionFile(input: FrameAcquisitionFileUpdateInput!, where: FrameAcquisitionFileWhereClauseMutations!): [FrameAcquisitionFile!]! + deleteFrameAcquisitionFile(where: FrameAcquisitionFileWhereClauseMutations!): [FrameAcquisitionFile!]! createAlignment(input: AlignmentCreateInput!): Alignment! updateAlignment(input: AlignmentUpdateInput!, where: AlignmentWhereClauseMutations!): [Alignment!]! deleteAlignment(where: AlignmentWhereClauseMutations!): [Alignment!]! @@ -3343,9 +3758,6 @@ type Mutation { createFrame(input: FrameCreateInput!): Frame! updateFrame(input: FrameUpdateInput!, where: FrameWhereClauseMutations!): [Frame!]! deleteFrame(where: FrameWhereClauseMutations!): [Frame!]! - createPerSectionParameters(input: PerSectionParametersCreateInput!): PerSectionParameters! - updatePerSectionParameters(input: PerSectionParametersUpdateInput!, where: PerSectionParametersWhereClauseMutations!): [PerSectionParameters!]! - deletePerSectionParameters(where: PerSectionParametersWhereClauseMutations!): [PerSectionParameters!]! createPerSectionAlignmentParameters(input: PerSectionAlignmentParametersCreateInput!): PerSectionAlignmentParameters! updatePerSectionAlignmentParameters(input: PerSectionAlignmentParametersUpdateInput!, where: PerSectionAlignmentParametersWhereClauseMutations!): [PerSectionAlignmentParameters!]! deletePerSectionAlignmentParameters(where: PerSectionAlignmentParametersWhereClauseMutations!): [PerSectionAlignmentParameters!]! @@ -3364,6 +3776,9 @@ type Mutation { createTomogram(input: TomogramCreateInput!): Tomogram! updateTomogram(input: TomogramUpdateInput!, where: TomogramWhereClauseMutations!): [Tomogram!]! deleteTomogram(where: TomogramWhereClauseMutations!): [Tomogram!]! + createAnnotationMethodLink(input: AnnotationMethodLinkCreateInput!): AnnotationMethodLink! + updateAnnotationMethodLink(input: AnnotationMethodLinkUpdateInput!, where: AnnotationMethodLinkWhereClauseMutations!): [AnnotationMethodLink!]! + deleteAnnotationMethodLink(where: AnnotationMethodLinkWhereClauseMutations!): [AnnotationMethodLink!]! } """An object with a Globally Unique ID""" @@ -3406,11 +3821,11 @@ type PerSectionAlignmentParameters implements EntityInterface & Node { """In-plane Y-shift of the projection in angstrom""" yOffset: Float - """In-plane rotation of the projection in degrees""" - inPlaneRotation: Float + """X-axis rotation in degrees""" + volumeXRotation: Float - """Beam tilt during projection in degrees""" - beamTilt: Float + """In-plane rotation of the projection in degrees""" + inPlaneRotation: [[Float!]!] """Tilt angle of the projection in degrees""" tiltAngle: Float @@ -3445,8 +3860,8 @@ enum PerSectionAlignmentParametersCountColumns { zIndex xOffset yOffset + volumeXRotation inPlaneRotation - beamTilt tiltAngle id } @@ -3464,11 +3879,11 @@ input PerSectionAlignmentParametersCreateInput { """In-plane Y-shift of the projection in angstrom""" yOffset: Float = null - """In-plane rotation of the projection in degrees""" - inPlaneRotation: Float = null + """X-axis rotation in degrees""" + volumeXRotation: Float = null - """Beam tilt during projection in degrees""" - beamTilt: Float = null + """In-plane rotation of the projection in degrees""" + inPlaneRotation: [[Float!]!] = null """Tilt angle of the projection in degrees""" tiltAngle: Float = null @@ -3491,8 +3906,8 @@ type PerSectionAlignmentParametersGroupByOptions { zIndex: Int xOffset: Float yOffset: Float - inPlaneRotation: Float - beamTilt: Float + volumeXRotation: Float + inPlaneRotation: [[Float!]!] tiltAngle: Float id: Int } @@ -3501,8 +3916,7 @@ type PerSectionAlignmentParametersMinMaxColumns { zIndex: Int xOffset: Float yOffset: Float - inPlaneRotation: Float - beamTilt: Float + volumeXRotation: Float tiltAngle: Float id: Int } @@ -3511,8 +3925,7 @@ type PerSectionAlignmentParametersNumericalColumns { zIndex: Int xOffset: Float yOffset: Float - inPlaneRotation: Float - beamTilt: Float + volumeXRotation: Float tiltAngle: Float id: Int } @@ -3522,8 +3935,8 @@ input PerSectionAlignmentParametersOrderByClause { zIndex: orderBy xOffset: orderBy yOffset: orderBy + volumeXRotation: orderBy inPlaneRotation: orderBy - beamTilt: orderBy tiltAngle: orderBy id: orderBy } @@ -3541,11 +3954,11 @@ input PerSectionAlignmentParametersUpdateInput { """In-plane Y-shift of the projection in angstrom""" yOffset: Float = null - """In-plane rotation of the projection in degrees""" - inPlaneRotation: Float = null + """X-axis rotation in degrees""" + volumeXRotation: Float = null - """Beam tilt during projection in degrees""" - beamTilt: Float = null + """In-plane rotation of the projection in degrees""" + inPlaneRotation: [[Float!]!] = null """Tilt angle of the projection in degrees""" tiltAngle: Float = null @@ -3556,11 +3969,11 @@ input PerSectionAlignmentParametersUpdateInput { input PerSectionAlignmentParametersWhereClause { alignment: AlignmentWhereClause + alignmentId: IntComparators zIndex: IntComparators xOffset: FloatComparators yOffset: FloatComparators - inPlaneRotation: FloatComparators - beamTilt: FloatComparators + volumeXRotation: FloatComparators tiltAngle: FloatComparators id: IntComparators } @@ -3569,165 +3982,9 @@ input PerSectionAlignmentParametersWhereClauseMutations { id: IntComparators } -"""Record how frames get mapped to Tiltseries""" -type PerSectionParameters implements EntityInterface & Node { - """The Globally Unique ID of this object""" - _id: GlobalID! - - """Numeric identifier (May change!)""" - id: Int! - frame(where: FrameWhereClause = null, orderBy: [FrameOrderByClause!] = []): Frame - frameId: Int! - tiltseries(where: TiltseriesWhereClause = null, orderBy: [TiltseriesOrderByClause!] = []): Tiltseries - tiltseriesId: Int! - - """z-index of the frame in the tiltseries""" - zIndex: Int! - - """defocus amount""" - defocus: Float - - """Astigmatism amount for this frame""" - astigmatism: Float - - """Angle of ast""" - astigmaticAngle: Float -} - -type PerSectionParametersAggregate { - aggregate: [PerSectionParametersAggregateFunctions!] -} - -type PerSectionParametersAggregateFunctions { - sum: PerSectionParametersNumericalColumns - avg: PerSectionParametersNumericalColumns - stddev: PerSectionParametersNumericalColumns - variance: PerSectionParametersNumericalColumns - min: PerSectionParametersMinMaxColumns - max: PerSectionParametersMinMaxColumns - groupBy: PerSectionParametersGroupByOptions - count(distinct: Boolean = false, columns: PerSectionParametersCountColumns = null): Int -} - -"""A connection to a list of items.""" -type PerSectionParametersConnection { - """Pagination data for this connection""" - pageInfo: PageInfo! - - """Contains the nodes in this connection""" - edges: [PerSectionParametersEdge!]! -} - -enum PerSectionParametersCountColumns { - frame - tiltseries - zIndex - defocus - astigmatism - astigmaticAngle - id -} - -input PerSectionParametersCreateInput { - frameId: ID! - tiltseriesId: ID! - - """z-index of the frame in the tiltseries""" - zIndex: Int! - - """defocus amount""" - defocus: Float = null - - """Astigmatism amount for this frame""" - astigmatism: Float = null - - """Angle of ast""" - astigmaticAngle: Float = null - - """Numeric identifier (May change!)""" - id: Int! -} - -"""An edge in a connection.""" -type PerSectionParametersEdge { - """A cursor for use in pagination""" - cursor: String! - - """The item at the end of the edge""" - node: PerSectionParameters! -} - -type PerSectionParametersGroupByOptions { - frame: FrameGroupByOptions - tiltseries: TiltseriesGroupByOptions - zIndex: Int - defocus: Float - astigmatism: Float - astigmaticAngle: Float - id: Int -} - -type PerSectionParametersMinMaxColumns { - zIndex: Int - defocus: Float - astigmatism: Float - astigmaticAngle: Float - id: Int -} - -type PerSectionParametersNumericalColumns { - zIndex: Int - defocus: Float - astigmatism: Float - astigmaticAngle: Float - id: Int -} - -input PerSectionParametersOrderByClause { - frame: FrameOrderByClause - tiltseries: TiltseriesOrderByClause - zIndex: orderBy - defocus: orderBy - astigmatism: orderBy - astigmaticAngle: orderBy - id: orderBy -} - -input PerSectionParametersUpdateInput { - frameId: ID - tiltseriesId: ID - - """z-index of the frame in the tiltseries""" - zIndex: Int - - """defocus amount""" - defocus: Float = null - - """Astigmatism amount for this frame""" - astigmatism: Float = null - - """Angle of ast""" - astigmaticAngle: Float = null - - """Numeric identifier (May change!)""" - id: Int -} - -input PerSectionParametersWhereClause { - frame: FrameWhereClause - tiltseries: TiltseriesWhereClause - zIndex: IntComparators - defocus: FloatComparators - astigmatism: FloatComparators - astigmaticAngle: FloatComparators - id: IntComparators -} - -input PerSectionParametersWhereClauseMutations { - id: IntComparators -} - type Query { + gainFiles(where: GainFileWhereClause = null, orderBy: [GainFileOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [GainFile!]! + frameAcquisitionFiles(where: FrameAcquisitionFileWhereClause = null, orderBy: [FrameAcquisitionFileOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [FrameAcquisitionFile!]! alignments(where: AlignmentWhereClause = null, orderBy: [AlignmentOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Alignment!]! annotationAuthors(where: AnnotationAuthorWhereClause = null, orderBy: [AnnotationAuthorOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [AnnotationAuthor!]! annotationFiles(where: AnnotationFileWhereClause = null, orderBy: [AnnotationFileOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [AnnotationFile!]! @@ -3740,13 +3997,15 @@ type Query { depositions(where: DepositionWhereClause = null, orderBy: [DepositionOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Deposition!]! depositionTypes(where: DepositionTypeWhereClause = null, orderBy: [DepositionTypeOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [DepositionType!]! frames(where: FrameWhereClause = null, orderBy: [FrameOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Frame!]! - perSectionParameters(where: PerSectionParametersWhereClause = null, orderBy: [PerSectionParametersOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [PerSectionParameters!]! perSectionAlignmentParameters(where: PerSectionAlignmentParametersWhereClause = null, orderBy: [PerSectionAlignmentParametersOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [PerSectionAlignmentParameters!]! runs(where: RunWhereClause = null, orderBy: [RunOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Run!]! tiltseries(where: TiltseriesWhereClause = null, orderBy: [TiltseriesOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Tiltseries!]! tomogramAuthors(where: TomogramAuthorWhereClause = null, orderBy: [TomogramAuthorOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [TomogramAuthor!]! tomogramVoxelSpacings(where: TomogramVoxelSpacingWhereClause = null, orderBy: [TomogramVoxelSpacingOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [TomogramVoxelSpacing!]! tomograms(where: TomogramWhereClause = null, orderBy: [TomogramOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [Tomogram!]! + annotationMethodLinks(where: AnnotationMethodLinkWhereClause = null, orderBy: [AnnotationMethodLinkOrderByClause!] = [], limitOffset: LimitOffsetClause = null): [AnnotationMethodLink!]! + gainFilesAggregate(where: GainFileWhereClause = null): GainFileAggregate! + frameAcquisitionFilesAggregate(where: FrameAcquisitionFileWhereClause = null): FrameAcquisitionFileAggregate! alignmentsAggregate(where: AlignmentWhereClause = null): AlignmentAggregate! annotationAuthorsAggregate(where: AnnotationAuthorWhereClause = null): AnnotationAuthorAggregate! annotationFilesAggregate(where: AnnotationFileWhereClause = null): AnnotationFileAggregate! @@ -3759,13 +4018,13 @@ type Query { depositionsAggregate(where: DepositionWhereClause = null): DepositionAggregate! depositionTypesAggregate(where: DepositionTypeWhereClause = null): DepositionTypeAggregate! framesAggregate(where: FrameWhereClause = null): FrameAggregate! - perSectionParametersAggregate(where: PerSectionParametersWhereClause = null): PerSectionParametersAggregate! perSectionAlignmentParametersAggregate(where: PerSectionAlignmentParametersWhereClause = null): PerSectionAlignmentParametersAggregate! runsAggregate(where: RunWhereClause = null): RunAggregate! tiltseriesAggregate(where: TiltseriesWhereClause = null): TiltseriesAggregate! tomogramAuthorsAggregate(where: TomogramAuthorWhereClause = null): TomogramAuthorAggregate! tomogramVoxelSpacingsAggregate(where: TomogramVoxelSpacingWhereClause = null): TomogramVoxelSpacingAggregate! tomogramsAggregate(where: TomogramWhereClause = null): TomogramAggregate! + annotationMethodLinksAggregate(where: AnnotationMethodLinkWhereClause = null): AnnotationMethodLinkAggregate! } type Run implements EntityInterface & Node { @@ -3827,6 +4086,40 @@ type Run implements EntityInterface & Node { last: Int = null ): FrameConnection! framesAggregate(where: FrameWhereClause = null): FrameAggregate + gainFiles( + where: GainFileWhereClause = null + orderBy: [GainFileOrderByClause!] = [] + + """Returns the items in the list that come before the specified cursor.""" + before: String = null + + """Returns the items in the list that come after the specified cursor.""" + after: String = null + + """Returns the first n items from the list.""" + first: Int = null + + """Returns the items in the list that come after the specified cursor.""" + last: Int = null + ): GainFileConnection! + gainFilesAggregate(where: GainFileWhereClause = null): GainFileAggregate + frameAcquisitionFiles( + where: FrameAcquisitionFileWhereClause = null + orderBy: [FrameAcquisitionFileOrderByClause!] = [] + + """Returns the items in the list that come before the specified cursor.""" + before: String = null + + """Returns the items in the list that come after the specified cursor.""" + after: String = null + + """Returns the first n items from the list.""" + first: Int = null + + """Returns the items in the list that come after the specified cursor.""" + last: Int = null + ): FrameAcquisitionFileConnection! + frameAcquisitionFilesAggregate(where: FrameAcquisitionFileWhereClause = null): FrameAcquisitionFileAggregate tiltseries( where: TiltseriesWhereClause = null orderBy: [TiltseriesOrderByClause!] = [] @@ -3918,6 +4211,8 @@ enum RunCountColumns { annotations dataset frames + gainFiles + frameAcquisitionFiles tiltseries tomogramVoxelSpacings tomograms @@ -4001,7 +4296,10 @@ input RunWhereClause { alignments: AlignmentWhereClause annotations: AnnotationWhereClause dataset: DatasetWhereClause + datasetId: IntComparators frames: FrameWhereClause + gainFiles: GainFileWhereClause + frameAcquisitionFiles: FrameAcquisitionFileWhereClause tiltseries: TiltseriesWhereClause tomogramVoxelSpacings: TomogramVoxelSpacingWhereClause tomograms: TomogramWhereClause @@ -4070,23 +4368,6 @@ type Tiltseries implements EntityInterface & Node { last: Int = null ): AlignmentConnection! alignmentsAggregate(where: AlignmentWhereClause = null): AlignmentAggregate - perSectionParameters( - where: PerSectionParametersWhereClause = null - orderBy: [PerSectionParametersOrderByClause!] = [] - - """Returns the items in the list that come before the specified cursor.""" - before: String = null - - """Returns the items in the list that come after the specified cursor.""" - after: String = null - - """Returns the first n items from the list.""" - first: Int = null - - """Returns the items in the list that come after the specified cursor.""" - last: Int = null - ): PerSectionParametersConnection! - perSectionParametersAggregate(where: PerSectionParametersWhereClause = null): PerSectionParametersAggregate run(where: RunWhereClause = null, orderBy: [RunOrderByClause!] = []): Run runId: Int! deposition(where: DepositionWhereClause = null, orderBy: [DepositionOrderByClause!] = []): Deposition @@ -4104,24 +4385,12 @@ type Tiltseries implements EntityInterface & Node { """HTTPS path to this tiltseries in MRC format (no scaling)""" httpsMrcFile: String - """S3 path to the collection metadata file for this tiltseries""" - s3CollectionMetadata: String - - """HTTPS path to the collection metadata file for this tiltseries""" - httpsCollectionMetadata: String - """S3 path to the angle list file for this tiltseries""" s3AngleList: String """HTTPS path to the angle list file for this tiltseries""" httpsAngleList: String - """S3 path to the gain file for this tiltseries""" - s3GainFile: String - - """HTTPS path to the gain file for this tiltseries""" - httpsGainFile: String - """Electron Microscope Accelerator voltage in volts""" accelerationVoltage: Int! @@ -4201,9 +4470,6 @@ type Tiltseries implements EntityInterface & Node { """Binning factor of the aligned tilt series""" alignedTiltseriesBinning: Int - - """Number of frames associated with this tiltseries""" - framesCount: Int } type TiltseriesAggregate { @@ -4232,19 +4498,14 @@ type TiltseriesConnection { enum TiltseriesCountColumns { alignments - perSectionParameters run deposition s3OmezarrDir s3MrcFile httpsOmezarrDir httpsMrcFile - s3CollectionMetadata - httpsCollectionMetadata s3AngleList httpsAngleList - s3GainFile - httpsGainFile accelerationVoltage sphericalAberrationConstant microscopeManufacturer @@ -4269,7 +4530,6 @@ enum TiltseriesCountColumns { isAligned pixelSpacing alignedTiltseriesBinning - framesCount id } @@ -4289,24 +4549,12 @@ input TiltseriesCreateInput { """HTTPS path to this tiltseries in MRC format (no scaling)""" httpsMrcFile: String = null - """S3 path to the collection metadata file for this tiltseries""" - s3CollectionMetadata: String = null - - """HTTPS path to the collection metadata file for this tiltseries""" - httpsCollectionMetadata: String = null - """S3 path to the angle list file for this tiltseries""" s3AngleList: String = null """HTTPS path to the angle list file for this tiltseries""" httpsAngleList: String = null - """S3 path to the gain file for this tiltseries""" - s3GainFile: String = null - - """HTTPS path to the gain file for this tiltseries""" - httpsGainFile: String = null - """Electron Microscope Accelerator voltage in volts""" accelerationVoltage: Int! @@ -4387,9 +4635,6 @@ input TiltseriesCreateInput { """Binning factor of the aligned tilt series""" alignedTiltseriesBinning: Int = null - """Number of frames associated with this tiltseries""" - framesCount: Int = null - """Numeric identifier (May change!)""" id: Int! } @@ -4410,12 +4655,8 @@ type TiltseriesGroupByOptions { s3MrcFile: String httpsOmezarrDir: String httpsMrcFile: String - s3CollectionMetadata: String - httpsCollectionMetadata: String s3AngleList: String httpsAngleList: String - s3GainFile: String - httpsGainFile: String accelerationVoltage: Int sphericalAberrationConstant: Float microscopeManufacturer: tiltseries_microscope_manufacturer_enum @@ -4440,7 +4681,6 @@ type TiltseriesGroupByOptions { isAligned: Boolean pixelSpacing: Float alignedTiltseriesBinning: Int - framesCount: Int id: Int } @@ -4449,12 +4689,8 @@ type TiltseriesMinMaxColumns { s3MrcFile: String httpsOmezarrDir: String httpsMrcFile: String - s3CollectionMetadata: String - httpsCollectionMetadata: String s3AngleList: String httpsAngleList: String - s3GainFile: String - httpsGainFile: String accelerationVoltage: Int sphericalAberrationConstant: Float microscopeModel: String @@ -4477,7 +4713,6 @@ type TiltseriesMinMaxColumns { tiltSeriesQuality: Int pixelSpacing: Float alignedTiltseriesBinning: Int - framesCount: Int id: Int } @@ -4494,7 +4729,6 @@ type TiltseriesNumericalColumns { tiltSeriesQuality: Int pixelSpacing: Float alignedTiltseriesBinning: Int - framesCount: Int id: Int } @@ -4505,12 +4739,8 @@ input TiltseriesOrderByClause { s3MrcFile: orderBy httpsOmezarrDir: orderBy httpsMrcFile: orderBy - s3CollectionMetadata: orderBy - httpsCollectionMetadata: orderBy s3AngleList: orderBy httpsAngleList: orderBy - s3GainFile: orderBy - httpsGainFile: orderBy accelerationVoltage: orderBy sphericalAberrationConstant: orderBy microscopeManufacturer: orderBy @@ -4535,7 +4765,6 @@ input TiltseriesOrderByClause { isAligned: orderBy pixelSpacing: orderBy alignedTiltseriesBinning: orderBy - framesCount: orderBy id: orderBy } @@ -4555,24 +4784,12 @@ input TiltseriesUpdateInput { """HTTPS path to this tiltseries in MRC format (no scaling)""" httpsMrcFile: String = null - """S3 path to the collection metadata file for this tiltseries""" - s3CollectionMetadata: String = null - - """HTTPS path to the collection metadata file for this tiltseries""" - httpsCollectionMetadata: String = null - """S3 path to the angle list file for this tiltseries""" s3AngleList: String = null """HTTPS path to the angle list file for this tiltseries""" httpsAngleList: String = null - """S3 path to the gain file for this tiltseries""" - s3GainFile: String = null - - """HTTPS path to the gain file for this tiltseries""" - httpsGainFile: String = null - """Electron Microscope Accelerator voltage in volts""" accelerationVoltage: Int @@ -4653,28 +4870,22 @@ input TiltseriesUpdateInput { """Binning factor of the aligned tilt series""" alignedTiltseriesBinning: Int = null - """Number of frames associated with this tiltseries""" - framesCount: Int = null - """Numeric identifier (May change!)""" id: Int } input TiltseriesWhereClause { alignments: AlignmentWhereClause - perSectionParameters: PerSectionParametersWhereClause run: RunWhereClause + runId: IntComparators deposition: DepositionWhereClause + depositionId: IntComparators s3OmezarrDir: StrComparators s3MrcFile: StrComparators httpsOmezarrDir: StrComparators httpsMrcFile: StrComparators - s3CollectionMetadata: StrComparators - httpsCollectionMetadata: StrComparators s3AngleList: StrComparators httpsAngleList: StrComparators - s3GainFile: StrComparators - httpsGainFile: StrComparators accelerationVoltage: IntComparators sphericalAberrationConstant: FloatComparators microscopeManufacturer: Tiltseries_microscope_manufacturer_enumEnumComparators @@ -4699,7 +4910,6 @@ input TiltseriesWhereClause { isAligned: BoolComparators pixelSpacing: FloatComparators alignedTiltseriesBinning: IntComparators - framesCount: IntComparators id: IntComparators } @@ -4789,10 +4999,18 @@ type Tomogram implements EntityInterface & Node { """Name of software used for reconstruction""" reconstructionSoftware: String! + """whether this tomogram adheres to portal standards""" + isPortalStandard: Boolean + """ - Is this tomogram considered the canonical tomogram for the run experiment? True=Yes + Whether this tomogram was submitted by the author of the dataset it belongs to. """ - isCanonical: Boolean + isAuthorSubmitted: Boolean + + """ + Data curator’s subjective choice of default tomogram to display in visualization for a run + """ + isVisualizationDefault: Boolean """S3 path to this tomogram in multiscale OME-Zarr format""" s3OmezarrDir: String @@ -4836,8 +5054,24 @@ type Tomogram implements EntityInterface & Node { """the compact json of neuroglancer config""" neuroglancerConfig: String - """Whether this tomogram was generated per the portal's standards""" - isStandardized: Boolean! + """ + Comma-separated list of DOIs for publications associated with the tomogram. + """ + publications: String + + """ + If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers. + """ + relatedDatabaseEntries: String + + """The date a data item was received by the cryoET data portal.""" + depositionDate: DateTime! + + """The date a data item was received by the cryoET data portal.""" + releaseDate: DateTime! + + """The date a piece of data was last modified on the cryoET data portal.""" + lastModifiedDate: DateTime! } type TomogramAggregate { @@ -5062,6 +5296,7 @@ input TomogramAuthorUpdateInput { input TomogramAuthorWhereClause { tomogram: TomogramWhereClause + tomogramId: IntComparators id: IntComparators authorListOrder: IntComparators orcid: StrComparators @@ -5104,7 +5339,9 @@ enum TomogramCountColumns { tomogramVersion processingSoftware reconstructionSoftware - isCanonical + isPortalStandard + isAuthorSubmitted + isVisualizationDefault s3OmezarrDir httpsOmezarrDir s3MrcFile @@ -5119,8 +5356,12 @@ enum TomogramCountColumns { keyPhotoUrl keyPhotoThumbnailUrl neuroglancerConfig - isStandardized + publications + relatedDatabaseEntries id + depositionDate + releaseDate + lastModifiedDate } input TomogramCreateInput { @@ -5171,10 +5412,18 @@ input TomogramCreateInput { """Name of software used for reconstruction""" reconstructionSoftware: String! + """whether this tomogram adheres to portal standards""" + isPortalStandard: Boolean = null + + """ + Whether this tomogram was submitted by the author of the dataset it belongs to. + """ + isAuthorSubmitted: Boolean = null + """ - Is this tomogram considered the canonical tomogram for the run experiment? True=Yes + Data curator’s subjective choice of default tomogram to display in visualization for a run """ - isCanonical: Boolean = null + isVisualizationDefault: Boolean = null """S3 path to this tomogram in multiscale OME-Zarr format""" s3OmezarrDir: String = null @@ -5218,11 +5467,27 @@ input TomogramCreateInput { """the compact json of neuroglancer config""" neuroglancerConfig: String = null - """Whether this tomogram was generated per the portal's standards""" - isStandardized: Boolean! + """ + Comma-separated list of DOIs for publications associated with the tomogram. + """ + publications: String = null + + """ + If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers. + """ + relatedDatabaseEntries: String = null """Numeric identifier (May change!)""" id: Int! + + """The date a data item was received by the cryoET data portal.""" + depositionDate: DateTime! + + """The date a data item was received by the cryoET data portal.""" + releaseDate: DateTime! + + """The date a piece of data was last modified on the cryoET data portal.""" + lastModifiedDate: DateTime! } """An edge in a connection.""" @@ -5250,7 +5515,9 @@ type TomogramGroupByOptions { tomogramVersion: Float processingSoftware: String reconstructionSoftware: String - isCanonical: Boolean + isPortalStandard: Boolean + isAuthorSubmitted: Boolean + isVisualizationDefault: Boolean s3OmezarrDir: String httpsOmezarrDir: String s3MrcFile: String @@ -5265,8 +5532,12 @@ type TomogramGroupByOptions { keyPhotoUrl: String keyPhotoThumbnailUrl: String neuroglancerConfig: String - isStandardized: Boolean + publications: String + relatedDatabaseEntries: String id: Int + depositionDate: DateTime + releaseDate: DateTime + lastModifiedDate: DateTime } type TomogramMinMaxColumns { @@ -5291,7 +5562,12 @@ type TomogramMinMaxColumns { keyPhotoUrl: String keyPhotoThumbnailUrl: String neuroglancerConfig: String + publications: String + relatedDatabaseEntries: String id: Int + depositionDate: DateTime + releaseDate: DateTime + lastModifiedDate: DateTime } type TomogramNumericalColumns { @@ -5322,7 +5598,9 @@ input TomogramOrderByClause { tomogramVersion: orderBy processingSoftware: orderBy reconstructionSoftware: orderBy - isCanonical: orderBy + isPortalStandard: orderBy + isAuthorSubmitted: orderBy + isVisualizationDefault: orderBy s3OmezarrDir: orderBy httpsOmezarrDir: orderBy s3MrcFile: orderBy @@ -5337,8 +5615,12 @@ input TomogramOrderByClause { keyPhotoUrl: orderBy keyPhotoThumbnailUrl: orderBy neuroglancerConfig: orderBy - isStandardized: orderBy + publications: orderBy + relatedDatabaseEntries: orderBy id: orderBy + depositionDate: orderBy + releaseDate: orderBy + lastModifiedDate: orderBy } input TomogramUpdateInput { @@ -5389,10 +5671,18 @@ input TomogramUpdateInput { """Name of software used for reconstruction""" reconstructionSoftware: String + """whether this tomogram adheres to portal standards""" + isPortalStandard: Boolean = null + + """ + Whether this tomogram was submitted by the author of the dataset it belongs to. + """ + isAuthorSubmitted: Boolean = null + """ - Is this tomogram considered the canonical tomogram for the run experiment? True=Yes + Data curator’s subjective choice of default tomogram to display in visualization for a run """ - isCanonical: Boolean = null + isVisualizationDefault: Boolean = null """S3 path to this tomogram in multiscale OME-Zarr format""" s3OmezarrDir: String = null @@ -5436,11 +5726,27 @@ input TomogramUpdateInput { """the compact json of neuroglancer config""" neuroglancerConfig: String = null - """Whether this tomogram was generated per the portal's standards""" - isStandardized: Boolean + """ + Comma-separated list of DOIs for publications associated with the tomogram. + """ + publications: String = null + + """ + If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers. + """ + relatedDatabaseEntries: String = null """Numeric identifier (May change!)""" id: Int + + """The date a data item was received by the cryoET data portal.""" + depositionDate: DateTime + + """The date a data item was received by the cryoET data portal.""" + releaseDate: DateTime + + """The date a piece of data was last modified on the cryoET data portal.""" + lastModifiedDate: DateTime } """Voxel spacings for a run""" @@ -5617,6 +5923,7 @@ input TomogramVoxelSpacingUpdateInput { input TomogramVoxelSpacingWhereClause { annotationFiles: AnnotationFileWhereClause run: RunWhereClause + runId: IntComparators tomograms: TomogramWhereClause voxelSpacing: FloatComparators s3Prefix: StrComparators @@ -5630,10 +5937,14 @@ input TomogramVoxelSpacingWhereClauseMutations { input TomogramWhereClause { alignment: AlignmentWhereClause + alignmentId: IntComparators authors: TomogramAuthorWhereClause deposition: DepositionWhereClause + depositionId: IntComparators run: RunWhereClause + runId: IntComparators tomogramVoxelSpacing: TomogramVoxelSpacingWhereClause + tomogramVoxelSpacingId: IntComparators name: StrComparators sizeX: IntComparators sizeY: IntComparators @@ -5645,7 +5956,9 @@ input TomogramWhereClause { tomogramVersion: FloatComparators processingSoftware: StrComparators reconstructionSoftware: StrComparators - isCanonical: BoolComparators + isPortalStandard: BoolComparators + isAuthorSubmitted: BoolComparators + isVisualizationDefault: BoolComparators s3OmezarrDir: StrComparators httpsOmezarrDir: StrComparators s3MrcFile: StrComparators @@ -5660,8 +5973,12 @@ input TomogramWhereClause { keyPhotoUrl: StrComparators keyPhotoThumbnailUrl: StrComparators neuroglancerConfig: StrComparators - isStandardized: BoolComparators + publications: StrComparators + relatedDatabaseEntries: StrComparators id: IntComparators + depositionDate: DatetimeComparators + releaseDate: DatetimeComparators + lastModifiedDate: DatetimeComparators } input TomogramWhereClauseMutations { @@ -5692,6 +6009,12 @@ input Tomogram_reconstruction_method_enumEnumComparators { _is_null: Boolean } +enum alignment_method_type_enum { + projection_matching + patch_tracking + fiducial_based +} + enum alignment_type_enum { LOCAL GLOBAL @@ -5711,6 +6034,14 @@ enum annotation_file_source_enum { portal_standard } +enum annotation_method_link_type_enum { + documentation + models_weights + other + source_code + website +} + enum annotation_method_type_enum { manual automated diff --git a/apiv2/graphql_api/schema.json b/apiv2/graphql_api/schema.json index f67903647..fc4223d32 100644 --- a/apiv2/graphql_api/schema.json +++ b/apiv2/graphql_api/schema.json @@ -101,6 +101,120 @@ { "enumValues": null, "fields": [ + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "limitOffset", + "type": { + "kind": "INPUT_OBJECT", + "name": "LimitOffsetClause", + "ofType": null + } + } + ], + "name": "gainFiles", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "limitOffset", + "type": { + "kind": "INPUT_OBJECT", + "name": "LimitOffsetClause", + "ofType": null + } + } + ], + "name": "frameAcquisitionFiles", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFile", + "ofType": null + } + } + } + } + }, { "args": [ { @@ -792,7 +906,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "PerSectionAlignmentParametersWhereClause", "ofType": null } }, @@ -807,7 +921,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersOrderByClause", + "name": "PerSectionAlignmentParametersOrderByClause", "ofType": null } } @@ -823,7 +937,7 @@ } } ], - "name": "perSectionParameters", + "name": "perSectionAlignmentParameters", "type": { "kind": "NON_NULL", "name": null, @@ -835,7 +949,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParameters", + "name": "PerSectionAlignmentParameters", "ofType": null } } @@ -849,7 +963,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -864,7 +978,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersOrderByClause", + "name": "RunOrderByClause", "ofType": null } } @@ -880,7 +994,7 @@ } } ], - "name": "perSectionAlignmentParameters", + "name": "runs", "type": { "kind": "NON_NULL", "name": null, @@ -892,7 +1006,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionAlignmentParameters", + "name": "Run", "ofType": null } } @@ -906,7 +1020,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "RunWhereClause", + "name": "TiltseriesWhereClause", "ofType": null } }, @@ -921,7 +1035,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", + "name": "TiltseriesOrderByClause", "ofType": null } } @@ -937,7 +1051,7 @@ } } ], - "name": "runs", + "name": "tiltseries", "type": { "kind": "NON_NULL", "name": null, @@ -949,7 +1063,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Run", + "name": "Tiltseries", "ofType": null } } @@ -963,7 +1077,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "name": "TomogramAuthorWhereClause", "ofType": null } }, @@ -978,7 +1092,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", + "name": "TomogramAuthorOrderByClause", "ofType": null } } @@ -994,7 +1108,7 @@ } } ], - "name": "tiltseries", + "name": "tomogramAuthors", "type": { "kind": "NON_NULL", "name": null, @@ -1006,7 +1120,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Tiltseries", + "name": "TomogramAuthor", "ofType": null } } @@ -1020,7 +1134,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramAuthorWhereClause", + "name": "TomogramVoxelSpacingWhereClause", "ofType": null } }, @@ -1035,7 +1149,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramAuthorOrderByClause", + "name": "TomogramVoxelSpacingOrderByClause", "ofType": null } } @@ -1051,7 +1165,7 @@ } } ], - "name": "tomogramAuthors", + "name": "tomogramVoxelSpacings", "type": { "kind": "NON_NULL", "name": null, @@ -1063,7 +1177,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAuthor", + "name": "TomogramVoxelSpacing", "ofType": null } } @@ -1077,7 +1191,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingWhereClause", + "name": "TomogramWhereClause", "ofType": null } }, @@ -1092,7 +1206,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", + "name": "TomogramOrderByClause", "ofType": null } } @@ -1108,7 +1222,7 @@ } } ], - "name": "tomogramVoxelSpacings", + "name": "tomograms", "type": { "kind": "NON_NULL", "name": null, @@ -1120,7 +1234,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramVoxelSpacing", + "name": "Tomogram", "ofType": null } } @@ -1134,7 +1248,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", + "name": "AnnotationMethodLinkWhereClause", "ofType": null } }, @@ -1149,7 +1263,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", + "name": "AnnotationMethodLinkOrderByClause", "ofType": null } } @@ -1165,7 +1279,7 @@ } } ], - "name": "tomograms", + "name": "annotationMethodLinks", "type": { "kind": "NON_NULL", "name": null, @@ -1177,13 +1291,59 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Tomogram", + "name": "AnnotationMethodLink", "ofType": null } } } } }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClause", + "ofType": null + } + } + ], + "name": "gainFilesAggregate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFileAggregate", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "ofType": null + } + } + ], + "name": "frameAcquisitionFilesAggregate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFileAggregate", + "ofType": null + } + } + }, { "args": [ { @@ -1467,18 +1627,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "PerSectionAlignmentParametersWhereClause", "ofType": null } } ], - "name": "perSectionParametersAggregate", + "name": "perSectionAlignmentParametersAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParametersAggregate", + "name": "PerSectionAlignmentParametersAggregate", "ofType": null } } @@ -1490,18 +1650,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersWhereClause", + "name": "RunWhereClause", "ofType": null } } ], - "name": "perSectionAlignmentParametersAggregate", + "name": "runsAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersAggregate", + "name": "RunAggregate", "ofType": null } } @@ -1513,18 +1673,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "RunWhereClause", + "name": "TiltseriesWhereClause", "ofType": null } } ], - "name": "runsAggregate", + "name": "tiltseriesAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "RunAggregate", + "name": "TiltseriesAggregate", "ofType": null } } @@ -1536,18 +1696,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "name": "TomogramAuthorWhereClause", "ofType": null } } ], - "name": "tiltseriesAggregate", + "name": "tomogramAuthorsAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TiltseriesAggregate", + "name": "TomogramAuthorAggregate", "ofType": null } } @@ -1559,18 +1719,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramAuthorWhereClause", + "name": "TomogramVoxelSpacingWhereClause", "ofType": null } } ], - "name": "tomogramAuthorsAggregate", + "name": "tomogramVoxelSpacingsAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAuthorAggregate", + "name": "TomogramVoxelSpacingAggregate", "ofType": null } } @@ -1582,18 +1742,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingWhereClause", + "name": "TomogramWhereClause", "ofType": null } } ], - "name": "tomogramVoxelSpacingsAggregate", + "name": "tomogramsAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramVoxelSpacingAggregate", + "name": "TomogramAggregate", "ofType": null } } @@ -1605,18 +1765,18 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", + "name": "AnnotationMethodLinkWhereClause", "ofType": null } } ], - "name": "tomogramsAggregate", + "name": "annotationMethodLinksAggregate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAggregate", + "name": "AnnotationMethodLinkAggregate", "ofType": null } } @@ -1664,7 +1824,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -1679,549 +1839,111 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AnnotationFileOrderByClause", + "name": "RunOrderByClause", "ofType": null } } } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } } ], - "name": "annotationFiles", + "name": "run", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationFileConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "Run", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", - "ofType": null - } - } - ], - "name": "annotationFilesAggregate", + "args": [], + "name": "runId", "type": { - "kind": "OBJECT", - "name": "AnnotationFileAggregate", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "perSectionAlignments", + "args": [], + "name": "s3FilePath", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PerSectionAlignmentParametersConnection", + "kind": "SCALAR", + "name": "String", "ofType": null } } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersWhereClause", - "ofType": null - } - } - ], - "name": "perSectionAlignmentsAggregate", + "args": [], + "name": "httpsFilePath", "type": { - "kind": "OBJECT", - "name": "PerSectionAlignmentParametersAggregate", - "ofType": null - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null } - ], - "name": "deposition", - "type": { - "kind": "OBJECT", - "name": "Deposition", - "ofType": null } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "GainFile", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "depositionId", + "name": "_id", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "INTERFACE", + "name": "EntityInterface", + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "tiltseries", - "type": { - "kind": "OBJECT", - "name": "Tiltseries", - "ofType": null - } + "kind": "OBJECT", + "name": "Run", + "ofType": null }, - { - "args": [], - "name": "tiltseriesId", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "tomograms", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramConnection", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", - "ofType": null - } - } - ], - "name": "tomogramsAggregate", - "type": { - "kind": "OBJECT", - "name": "TomogramAggregate", - "ofType": null - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "run", - "type": { - "kind": "OBJECT", - "name": "Run", - "ofType": null - } - }, - { - "args": [], - "name": "runId", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "alignmentType", - "type": { - "kind": "ENUM", - "name": "alignment_type_enum", - "ofType": null - } - }, - { - "args": [], - "name": "volumeXDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeYDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeZDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeXOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeYOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeZOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "xRotationOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "tiltOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "localAlignmentFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affineTransformationMatrix", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "Alignment", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "_id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "INTERFACE", - "name": "EntityInterface", - "possibleTypes": [ { "kind": "OBJECT", "name": "Alignment", @@ -2244,12 +1966,12 @@ }, { "kind": "OBJECT", - "name": "Run", + "name": "AnnotationMethodLink", "ofType": null }, { "kind": "OBJECT", - "name": "Dataset", + "name": "AnnotationAuthor", "ofType": null }, { @@ -2264,57 +1986,57 @@ }, { "kind": "OBJECT", - "name": "Frame", + "name": "Dataset", "ofType": null }, { "kind": "OBJECT", - "name": "PerSectionParameters", + "name": "DatasetFunding", "ofType": null }, { "kind": "OBJECT", - "name": "Tiltseries", + "name": "DatasetAuthor", "ofType": null }, { "kind": "OBJECT", - "name": "Tomogram", + "name": "Frame", "ofType": null }, { "kind": "OBJECT", - "name": "TomogramAuthor", + "name": "Tiltseries", "ofType": null }, { "kind": "OBJECT", - "name": "TomogramVoxelSpacing", + "name": "Tomogram", "ofType": null }, { "kind": "OBJECT", - "name": "DepositionType", + "name": "TomogramAuthor", "ofType": null }, { "kind": "OBJECT", - "name": "DatasetFunding", + "name": "TomogramVoxelSpacing", "ofType": null }, { "kind": "OBJECT", - "name": "DatasetAuthor", + "name": "DepositionType", "ofType": null }, { "kind": "OBJECT", - "name": "AnnotationAuthor", + "name": "PerSectionAlignmentParameters", "ofType": null }, { "kind": "OBJECT", - "name": "PerSectionAlignmentParameters", + "name": "FrameAcquisitionFile", "ofType": null } ] @@ -2341,6 +2063,16 @@ "kind": "INTERFACE", "name": "Node", "possibleTypes": [ + { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "Run", + "ofType": null + }, { "kind": "OBJECT", "name": "Alignment", @@ -2363,12 +2095,12 @@ }, { "kind": "OBJECT", - "name": "Run", + "name": "AnnotationMethodLink", "ofType": null }, { "kind": "OBJECT", - "name": "Dataset", + "name": "AnnotationAuthor", "ofType": null }, { @@ -2383,57 +2115,57 @@ }, { "kind": "OBJECT", - "name": "Frame", + "name": "Dataset", "ofType": null }, { "kind": "OBJECT", - "name": "PerSectionParameters", + "name": "DatasetFunding", "ofType": null }, { "kind": "OBJECT", - "name": "Tiltseries", + "name": "DatasetAuthor", "ofType": null }, { "kind": "OBJECT", - "name": "Tomogram", + "name": "Frame", "ofType": null }, { "kind": "OBJECT", - "name": "TomogramAuthor", + "name": "Tiltseries", "ofType": null }, { "kind": "OBJECT", - "name": "TomogramVoxelSpacing", + "name": "Tomogram", "ofType": null }, { "kind": "OBJECT", - "name": "DepositionType", + "name": "TomogramAuthor", "ofType": null }, { "kind": "OBJECT", - "name": "DatasetFunding", + "name": "TomogramVoxelSpacing", "ofType": null }, { "kind": "OBJECT", - "name": "DatasetAuthor", + "name": "DepositionType", "ofType": null }, { "kind": "OBJECT", - "name": "AnnotationAuthor", + "name": "PerSectionAlignmentParameters", "ofType": null }, { "kind": "OBJECT", - "name": "PerSectionAlignmentParameters", + "name": "FrameAcquisitionFile", "ofType": null } ] @@ -2456,158 +2188,6 @@ "name": "Int", "possibleTypes": null }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - } - }, - { - "args": [], - "name": "edges", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationFileEdge", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationFileConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "hasNextPage", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - { - "args": [], - "name": "hasPreviousPage", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - { - "args": [], - "name": "startCursor", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "endCursor", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "PageInfo", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "Boolean", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "String", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "cursor", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "node", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationFile", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationFileEdge", - "possibleTypes": null - }, { "enumValues": null, "fields": [ @@ -2664,18 +2244,1738 @@ } } } - } - ], - "name": "alignment", - "type": { - "kind": "OBJECT", - "name": "Alignment", - "ofType": null - } - }, - { - "args": [], - "name": "alignmentId", + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "alignments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AlignmentConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AlignmentWhereClause", + "ofType": null + } + } + ], + "name": "alignmentsAggregate", + "type": { + "kind": "OBJECT", + "name": "AlignmentAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "annotations", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationWhereClause", + "ofType": null + } + } + ], + "name": "annotationsAggregate", + "type": { + "kind": "OBJECT", + "name": "AnnotationAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "dataset", + "type": { + "kind": "OBJECT", + "name": "Dataset", + "ofType": null + } + }, + { + "args": [], + "name": "datasetId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "frames", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameWhereClause", + "ofType": null + } + } + ], + "name": "framesAggregate", + "type": { + "kind": "OBJECT", + "name": "FrameAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "gainFiles", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFileConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClause", + "ofType": null + } + } + ], + "name": "gainFilesAggregate", + "type": { + "kind": "OBJECT", + "name": "GainFileAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "frameAcquisitionFiles", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFileConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "ofType": null + } + } + ], + "name": "frameAcquisitionFilesAggregate", + "type": { + "kind": "OBJECT", + "name": "FrameAcquisitionFileAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TiltseriesWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TiltseriesOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "tiltseries", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TiltseriesConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TiltseriesWhereClause", + "ofType": null + } + } + ], + "name": "tiltseriesAggregate", + "type": { + "kind": "OBJECT", + "name": "TiltseriesAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "tomogramVoxelSpacings", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingWhereClause", + "ofType": null + } + } + ], + "name": "tomogramVoxelSpacingsAggregate", + "type": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "tomograms", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + } + ], + "name": "tomogramsAggregate", + "type": { + "kind": "OBJECT", + "name": "TomogramAggregate", + "ofType": null + } + }, + { + "args": [], + "name": "name", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "s3Prefix", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "httpsPrefix", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Run", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "pageInfo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + } + }, + { + "args": [], + "name": "edges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AlignmentEdge", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AlignmentConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "hasNextPage", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "name": "hasPreviousPage", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "name": "startCursor", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "endCursor", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "PageInfo", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Boolean", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "String", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "cursor", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "node", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Alignment", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AlignmentEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "_id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "annotationFiles", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationFileConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileWhereClause", + "ofType": null + } + } + ], + "name": "annotationFilesAggregate", + "type": { + "kind": "OBJECT", + "name": "AnnotationFileAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "PerSectionAlignmentParametersWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PerSectionAlignmentParametersOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "perSectionAlignments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PerSectionAlignmentParametersConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "PerSectionAlignmentParametersWhereClause", + "ofType": null + } + } + ], + "name": "perSectionAlignmentsAggregate", + "type": { + "kind": "OBJECT", + "name": "PerSectionAlignmentParametersAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "deposition", + "type": { + "kind": "OBJECT", + "name": "Deposition", + "ofType": null + } + }, + { + "args": [], + "name": "depositionId", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TiltseriesWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TiltseriesOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "tiltseries", + "type": { + "kind": "OBJECT", + "name": "Tiltseries", + "ofType": null + } + }, + { + "args": [], + "name": "tiltseriesId", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "tomograms", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramConnection", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + } + ], + "name": "tomogramsAggregate", + "type": { + "kind": "OBJECT", + "name": "TomogramAggregate", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RunWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "run", + "type": { + "kind": "OBJECT", + "name": "Run", + "ofType": null + } + }, + { + "args": [], + "name": "runId", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "alignmentType", + "type": { + "kind": "ENUM", + "name": "alignment_type_enum", + "ofType": null + } + }, + { + "args": [], + "name": "alignmentMethod", + "type": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "xRotationOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "affineTransformationMatrix", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "s3AlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "httpsAlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "isPortalStandard", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Alignment", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "pageInfo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + } + }, + { + "args": [], + "name": "edges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationFileEdge", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationFileConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "cursor", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "node", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationFile", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationFileEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "_id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AlignmentWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AlignmentOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "alignment", + "type": { + "kind": "OBJECT", + "name": "Alignment", + "ofType": null + } + }, + { + "args": [], + "name": "alignmentId", "type": { "kind": "SCALAR", "name": "Int", @@ -2878,6 +4178,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "tiltseries", @@ -2887,6 +4196,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "tiltseriesId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "tomograms", @@ -2905,6 +4223,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "runId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "alignmentType", @@ -2914,6 +4241,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "alignmentMethod", + "type": { + "kind": "INPUT_OBJECT", + "name": "Alignment_method_type_enumEnumComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "volumeXDimension", @@ -2988,7 +4324,7 @@ }, { "defaultValue": null, - "name": "localAlignmentFile", + "name": "affineTransformationMatrix", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -2997,13 +4333,31 @@ }, { "defaultValue": null, - "name": "affineTransformationMatrix", + "name": "s3AlignmentMetadata", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "httpsAlignmentMetadata", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", "ofType": null } }, + { + "defaultValue": null, + "name": "isPortalStandard", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoolComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "id", @@ -3032,6 +4386,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "alignmentId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "annotationShape", @@ -3041,6 +4404,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "annotationShapeId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "tomogramVoxelSpacing", @@ -3050,6 +4422,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "tomogramVoxelSpacingId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "format", @@ -3110,6 +4491,113 @@ "name": "AnnotationFileWhereClause", "possibleTypes": null }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "_eq", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_neq", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_nin", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_gt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_lt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_lte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_is_null", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "possibleTypes": null + }, { "enumValues": null, "fields": null, @@ -3123,6 +4611,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "annotationId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "annotationFiles", @@ -3169,6 +4666,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "runId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "annotationShapes", @@ -3178,6 +4684,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "methodLinks", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkWhereClause", + "ofType": null + } + }, { "defaultValue": null, "name": "authors", @@ -3198,16 +4713,16 @@ }, { "defaultValue": null, - "name": "s3MetadataPath", + "name": "depositionId", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "IntComparators", "ofType": null } }, { "defaultValue": null, - "name": "httpsMetadataPath", + "name": "s3MetadataPath", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -3216,7 +4731,7 @@ }, { "defaultValue": null, - "name": "annotationPublication", + "name": "httpsMetadataPath", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -3225,7 +4740,7 @@ }, { "defaultValue": null, - "name": "annotationMethod", + "name": "annotationPublication", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -3234,7 +4749,7 @@ }, { "defaultValue": null, - "name": "methodLinks", + "name": "annotationMethod", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -3422,6 +4937,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "datasetId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "frames", @@ -3431,6 +4955,24 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "gainFiles", + "type": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "frameAcquisitionFiles", + "type": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "ofType": null + } + }, { "defaultValue": null, "name": "tiltseries", @@ -3513,6 +5055,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "fundingSources", @@ -3965,6 +5516,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "id", @@ -4061,113 +5621,6 @@ "name": "DepositionAuthorWhereClause", "possibleTypes": null }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "_eq", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_neq", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_in", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - } - }, - { - "defaultValue": null, - "name": "_nin", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - } - }, - { - "defaultValue": null, - "name": "_gt", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_gte", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_lt", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_lte", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_is_null", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "IntComparators", - "possibleTypes": null - }, { "enumValues": null, "fields": null, @@ -4433,10 +5886,10 @@ }, { "defaultValue": null, - "name": "perSectionParameters", + "name": "depositionId", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "IntComparators", "ofType": null } }, @@ -4451,16 +5904,7 @@ }, { "defaultValue": null, - "name": "rawAngle", - "type": { - "kind": "INPUT_OBJECT", - "name": "FloatComparators", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "acquisitionOrder", + "name": "runId", "type": { "kind": "INPUT_OBJECT", "name": "IntComparators", @@ -4469,7 +5913,7 @@ }, { "defaultValue": null, - "name": "dose", + "name": "rawAngle", "type": { "kind": "INPUT_OBJECT", "name": "FloatComparators", @@ -4478,28 +5922,28 @@ }, { "defaultValue": null, - "name": "isGainCorrected", + "name": "acquisitionOrder", "type": { "kind": "INPUT_OBJECT", - "name": "BoolComparators", + "name": "IntComparators", "ofType": null } }, { "defaultValue": null, - "name": "s3GainFile", + "name": "dose", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "FloatComparators", "ofType": null } }, { "defaultValue": null, - "name": "httpsGainFile", + "name": "isGainCorrected", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "BoolComparators", "ofType": null } }, @@ -4542,71 +5986,114 @@ "inputFields": [ { "defaultValue": null, - "name": "frame", + "name": "_eq", "type": { - "kind": "INPUT_OBJECT", - "name": "FrameWhereClause", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "tiltseries", + "name": "_neq", "type": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "zIndex", + "name": "_in", "type": { - "kind": "INPUT_OBJECT", - "name": "IntComparators", + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_nin", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_gt", + "type": { + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "defocus", + "name": "_gte", "type": { - "kind": "INPUT_OBJECT", - "name": "FloatComparators", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "astigmatism", + "name": "_lt", "type": { - "kind": "INPUT_OBJECT", - "name": "FloatComparators", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "astigmaticAngle", + "name": "_lte", "type": { - "kind": "INPUT_OBJECT", - "name": "FloatComparators", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "defaultValue": null, - "name": "id", + "name": "_is_null", "type": { - "kind": "INPUT_OBJECT", - "name": "IntComparators", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } } ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "FloatComparators", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Float", "possibleTypes": null }, { @@ -4624,19 +6111,19 @@ }, { "defaultValue": null, - "name": "perSectionParameters", + "name": "run", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "RunWhereClause", "ofType": null } }, { "defaultValue": null, - "name": "run", + "name": "runId", "type": { "kind": "INPUT_OBJECT", - "name": "RunWhereClause", + "name": "IntComparators", "ofType": null } }, @@ -4649,6 +6136,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "s3OmezarrDir", @@ -4685,24 +6181,6 @@ "ofType": null } }, - { - "defaultValue": null, - "name": "s3CollectionMetadata", - "type": { - "kind": "INPUT_OBJECT", - "name": "StrComparators", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsCollectionMetadata", - "type": { - "kind": "INPUT_OBJECT", - "name": "StrComparators", - "ofType": null - } - }, { "defaultValue": null, "name": "s3AngleList", @@ -4721,24 +6199,6 @@ "ofType": null } }, - { - "defaultValue": null, - "name": "s3GainFile", - "type": { - "kind": "INPUT_OBJECT", - "name": "StrComparators", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsGainFile", - "type": { - "kind": "INPUT_OBJECT", - "name": "StrComparators", - "ofType": null - } - }, { "defaultValue": null, "name": "accelerationVoltage", @@ -4955,15 +6415,6 @@ "ofType": null } }, - { - "defaultValue": null, - "name": "framesCount", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntComparators", - "ofType": null - } - }, { "defaultValue": null, "name": "id", @@ -4979,122 +6430,6 @@ "name": "TiltseriesWhereClause", "possibleTypes": null }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "_eq", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_neq", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_in", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } - } - }, - { - "defaultValue": null, - "name": "_nin", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } - } - }, - { - "defaultValue": null, - "name": "_gt", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_gte", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_lt", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_lte", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "_is_null", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "FloatComparators", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "Float", - "possibleTypes": null - }, { "enumValues": null, "fields": null, @@ -5237,6 +6572,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "alignmentId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "authors", @@ -5255,6 +6599,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "run", @@ -5264,6 +6617,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "runId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "tomogramVoxelSpacing", @@ -5273,6 +6635,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "tomogramVoxelSpacingId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "name", @@ -5374,7 +6745,25 @@ }, { "defaultValue": null, - "name": "isCanonical", + "name": "isPortalStandard", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoolComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "isAuthorSubmitted", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoolComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "isVisualizationDefault", "type": { "kind": "INPUT_OBJECT", "name": "BoolComparators", @@ -5509,10 +6898,19 @@ }, { "defaultValue": null, - "name": "isStandardized", + "name": "publications", "type": { "kind": "INPUT_OBJECT", - "name": "BoolComparators", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "relatedDatabaseEntries", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", "ofType": null } }, @@ -5524,6 +6922,33 @@ "name": "IntComparators", "ofType": null } + }, + { + "defaultValue": null, + "name": "depositionDate", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatetimeComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "releaseDate", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatetimeComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "lastModifiedDate", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatetimeComparators", + "ofType": null + } } ], "interfaces": null, @@ -5544,6 +6969,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "tomogramId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "id", @@ -5662,6 +7096,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "runId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "tomograms", @@ -6094,6 +7537,122 @@ "name": "tomogram_processing_enum", "possibleTypes": null }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "_eq", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_neq", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_nin", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "name": "_gt", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_gte", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_lt", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_lte", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "_is_null", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DatetimeComparators", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "DateTime", + "possibleTypes": null + }, { "enumValues": null, "fields": null, @@ -6107,6 +7666,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "depositionId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "type", @@ -6257,6 +7825,179 @@ "name": "deposition_types_enum", "possibleTypes": null }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "dataset", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetWhereClause", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "datasetId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "fundingAgencyName", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "grantId", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DatasetFundingWhereClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "dataset", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetWhereClause", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "datasetId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "authorListOrder", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "orcid", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "name", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "email", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "affiliationName", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "affiliationAddress", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "affiliationIdentifier", + "type": { + "kind": "INPUT_OBJECT", + "name": "StrComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "correspondingAuthorStatus", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoolComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "primaryAuthorStatus", + "type": { + "kind": "INPUT_OBJECT", + "name": "BoolComparators", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DatasetAuthorWhereClause", + "possibleTypes": null + }, { "enumValues": null, "fields": null, @@ -6265,8 +8006,8 @@ "defaultValue": null, "name": "_eq", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6274,8 +8015,8 @@ "defaultValue": null, "name": "_neq", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6289,8 +8030,8 @@ "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } } @@ -6306,8 +8047,8 @@ "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } } @@ -6317,8 +8058,8 @@ "defaultValue": null, "name": "_gt", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6326,8 +8067,8 @@ "defaultValue": null, "name": "_gte", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6335,8 +8076,8 @@ "defaultValue": null, "name": "_lt", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6344,8 +8085,8 @@ "defaultValue": null, "name": "_lte", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "ofType": null } }, @@ -6361,16 +8102,41 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "DatetimeComparators", + "name": "Sample_type_enumEnumComparators", "possibleTypes": null }, { - "enumValues": null, + "enumValues": [ + { + "name": "cell" + }, + { + "name": "tissue" + }, + { + "name": "organism" + }, + { + "name": "organelle" + }, + { + "name": "virus" + }, + { + "name": "in_vitro" + }, + { + "name": "in_silico" + }, + { + "name": "other" + } + ], "fields": null, "inputFields": null, "interfaces": null, - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "sample_type_enum", "possibleTypes": null }, { @@ -6379,16 +8145,25 @@ "inputFields": [ { "defaultValue": null, - "name": "dataset", + "name": "run", "type": { "kind": "INPUT_OBJECT", - "name": "DatasetWhereClause", + "name": "RunWhereClause", "ofType": null } }, { "defaultValue": null, - "name": "fundingAgencyName", + "name": "runId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "s3FilePath", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -6397,7 +8172,7 @@ }, { "defaultValue": null, - "name": "grantId", + "name": "httpsFilePath", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -6416,7 +8191,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "DatasetFundingWhereClause", + "name": "GainFileWhereClause", "possibleTypes": null }, { @@ -6425,16 +8200,16 @@ "inputFields": [ { "defaultValue": null, - "name": "dataset", + "name": "run", "type": { "kind": "INPUT_OBJECT", - "name": "DatasetWhereClause", + "name": "RunWhereClause", "ofType": null } }, { "defaultValue": null, - "name": "id", + "name": "runId", "type": { "kind": "INPUT_OBJECT", "name": "IntComparators", @@ -6443,16 +8218,16 @@ }, { "defaultValue": null, - "name": "authorListOrder", + "name": "s3MdocPath", "type": { "kind": "INPUT_OBJECT", - "name": "IntComparators", + "name": "StrComparators", "ofType": null } }, { "defaultValue": null, - "name": "orcid", + "name": "httpsMdocPath", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -6461,43 +8236,53 @@ }, { "defaultValue": null, - "name": "name", + "name": "id", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "IntComparators", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": null, - "name": "email", + "name": "annotation", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "AnnotationWhereClause", "ofType": null } }, { "defaultValue": null, - "name": "affiliationName", + "name": "annotationId", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "IntComparators", "ofType": null } }, { "defaultValue": null, - "name": "affiliationAddress", + "name": "linkType", "type": { "kind": "INPUT_OBJECT", - "name": "StrComparators", + "name": "Annotation_method_link_type_enumEnumComparators", "ofType": null } }, { "defaultValue": null, - "name": "affiliationIdentifier", + "name": "name", "type": { "kind": "INPUT_OBJECT", "name": "StrComparators", @@ -6506,26 +8291,26 @@ }, { "defaultValue": null, - "name": "correspondingAuthorStatus", + "name": "link", "type": { "kind": "INPUT_OBJECT", - "name": "BoolComparators", + "name": "StrComparators", "ofType": null } }, { "defaultValue": null, - "name": "primaryAuthorStatus", + "name": "id", "type": { "kind": "INPUT_OBJECT", - "name": "BoolComparators", + "name": "IntComparators", "ofType": null } } ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "DatasetAuthorWhereClause", + "name": "AnnotationMethodLinkWhereClause", "possibleTypes": null }, { @@ -6537,7 +8322,7 @@ "name": "_eq", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6546,7 +8331,7 @@ "name": "_neq", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6561,7 +8346,7 @@ "name": null, "ofType": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } } @@ -6578,7 +8363,7 @@ "name": null, "ofType": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } } @@ -6589,7 +8374,7 @@ "name": "_gt", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6598,7 +8383,7 @@ "name": "_gte", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6607,7 +8392,7 @@ "name": "_lt", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6616,7 +8401,7 @@ "name": "_lte", "type": { "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "ofType": null } }, @@ -6632,41 +8417,32 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "Sample_type_enumEnumComparators", + "name": "Annotation_method_link_type_enumEnumComparators", "possibleTypes": null }, { "enumValues": [ { - "name": "cell" - }, - { - "name": "tissue" - }, - { - "name": "organism" + "name": "documentation" }, { - "name": "organelle" - }, - { - "name": "virus" + "name": "models_weights" }, { - "name": "in_vitro" + "name": "other" }, { - "name": "in_silico" + "name": "source_code" }, { - "name": "other" + "name": "website" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "sample_type_enum", + "name": "annotation_method_link_type_enum", "possibleTypes": null }, { @@ -6682,6 +8458,15 @@ "ofType": null } }, + { + "defaultValue": null, + "name": "annotationId", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + }, { "defaultValue": null, "name": "id", @@ -7180,7 +8965,7 @@ }, { "defaultValue": null, - "name": "zIndex", + "name": "alignmentId", "type": { "kind": "INPUT_OBJECT", "name": "IntComparators", @@ -7189,16 +8974,16 @@ }, { "defaultValue": null, - "name": "xOffset", + "name": "zIndex", "type": { "kind": "INPUT_OBJECT", - "name": "FloatComparators", + "name": "IntComparators", "ofType": null } }, { "defaultValue": null, - "name": "yOffset", + "name": "xOffset", "type": { "kind": "INPUT_OBJECT", "name": "FloatComparators", @@ -7207,7 +8992,7 @@ }, { "defaultValue": null, - "name": "inPlaneRotation", + "name": "yOffset", "type": { "kind": "INPUT_OBJECT", "name": "FloatComparators", @@ -7216,7 +9001,7 @@ }, { "defaultValue": null, - "name": "beamTilt", + "name": "volumeXRotation", "type": { "kind": "INPUT_OBJECT", "name": "FloatComparators", @@ -7376,286 +9161,130 @@ "inputFields": [ { "defaultValue": null, - "name": "deposition", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tiltseries", - "type": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "run", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "alignmentType", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeXDimension", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeYDimension", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeZDimension", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeXOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeYOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "volumeZOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "xRotationOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tiltOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "localAlignmentFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "affineTransformationMatrix", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "title", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "description", + "name": "_eq", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "depositionPublications", + "name": "_neq", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "relatedDatabaseEntries", + "name": "_in", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + } } }, { "defaultValue": null, - "name": "depositionDate", + "name": "_nin", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + } } }, { "defaultValue": null, - "name": "releaseDate", + "name": "_gt", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "lastModifiedDate", + "name": "_gte", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "keyPhotoUrl", + "name": "_lt", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "keyPhotoThumbnailUrl", + "name": "_lte", "type": { "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "ofType": null } }, { "defaultValue": null, - "name": "id", + "name": "_is_null", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } } ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", + "name": "Alignment_method_type_enumEnumComparators", "possibleTypes": null }, { "enumValues": [ { - "name": "asc" - }, - { - "name": "asc_nulls_first" + "name": "projection_matching" }, { - "name": "asc_nulls_last" + "name": "patch_tracking" }, { - "name": "desc" - }, - { - "name": "desc_nulls_first" - }, - { - "name": "desc_nulls_last" + "name": "fiducial_based" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "orderBy", + "name": "alignment_method_type_enum", "possibleTypes": null }, { "enumValues": null, "fields": null, "inputFields": [ - { - "defaultValue": null, - "name": "run", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - }, { "defaultValue": null, "name": "deposition", @@ -7667,142 +9296,25 @@ }, { "defaultValue": null, - "name": "s3OmezarrDir", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3MrcFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsOmezarrDir", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsMrcFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3CollectionMetadata", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsCollectionMetadata", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3AngleList", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsAngleList", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3GainFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsGainFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "accelerationVoltage", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "sphericalAberrationConstant", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "microscopeManufacturer", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "microscopeModel", + "name": "tiltseries", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "TiltseriesOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "microscopeEnergyFilter", + "name": "run", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "microscopePhasePlate", + "name": "alignmentType", "type": { "kind": "ENUM", "name": "orderBy", @@ -7811,7 +9323,7 @@ }, { "defaultValue": null, - "name": "microscopeImageCorrector", + "name": "alignmentMethod", "type": { "kind": "ENUM", "name": "orderBy", @@ -7820,7 +9332,7 @@ }, { "defaultValue": null, - "name": "microscopeAdditionalInfo", + "name": "volumeXDimension", "type": { "kind": "ENUM", "name": "orderBy", @@ -7829,7 +9341,7 @@ }, { "defaultValue": null, - "name": "cameraManufacturer", + "name": "volumeYDimension", "type": { "kind": "ENUM", "name": "orderBy", @@ -7838,7 +9350,7 @@ }, { "defaultValue": null, - "name": "cameraModel", + "name": "volumeZDimension", "type": { "kind": "ENUM", "name": "orderBy", @@ -7847,7 +9359,7 @@ }, { "defaultValue": null, - "name": "tiltMin", + "name": "volumeXOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -7856,7 +9368,7 @@ }, { "defaultValue": null, - "name": "tiltMax", + "name": "volumeYOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -7865,7 +9377,7 @@ }, { "defaultValue": null, - "name": "tiltRange", + "name": "volumeZOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -7874,7 +9386,7 @@ }, { "defaultValue": null, - "name": "tiltStep", + "name": "xRotationOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -7883,7 +9395,7 @@ }, { "defaultValue": null, - "name": "tiltingScheme", + "name": "tiltOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -7892,7 +9404,7 @@ }, { "defaultValue": null, - "name": "tiltAxis", + "name": "affineTransformationMatrix", "type": { "kind": "ENUM", "name": "orderBy", @@ -7901,7 +9413,7 @@ }, { "defaultValue": null, - "name": "totalFlux", + "name": "s3AlignmentMetadata", "type": { "kind": "ENUM", "name": "orderBy", @@ -7910,7 +9422,7 @@ }, { "defaultValue": null, - "name": "dataAcquisitionSoftware", + "name": "httpsAlignmentMetadata", "type": { "kind": "ENUM", "name": "orderBy", @@ -7919,7 +9431,7 @@ }, { "defaultValue": null, - "name": "relatedEmpiarEntry", + "name": "isPortalStandard", "type": { "kind": "ENUM", "name": "orderBy", @@ -7928,16 +9440,26 @@ }, { "defaultValue": null, - "name": "binningFromFrames", + "name": "id", "type": { "kind": "ENUM", "name": "orderBy", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AlignmentOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": null, - "name": "tiltSeriesQuality", + "name": "title", "type": { "kind": "ENUM", "name": "orderBy", @@ -7946,7 +9468,7 @@ }, { "defaultValue": null, - "name": "isAligned", + "name": "description", "type": { "kind": "ENUM", "name": "orderBy", @@ -7955,7 +9477,7 @@ }, { "defaultValue": null, - "name": "pixelSpacing", + "name": "depositionPublications", "type": { "kind": "ENUM", "name": "orderBy", @@ -7964,7 +9486,7 @@ }, { "defaultValue": null, - "name": "alignedTiltseriesBinning", + "name": "relatedDatabaseEntries", "type": { "kind": "ENUM", "name": "orderBy", @@ -7973,7 +9495,7 @@ }, { "defaultValue": null, - "name": "framesCount", + "name": "depositionDate", "type": { "kind": "ENUM", "name": "orderBy", @@ -7982,35 +9504,16 @@ }, { "defaultValue": null, - "name": "id", + "name": "releaseDate", "type": { "kind": "ENUM", "name": "orderBy", "ofType": null } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "dataset", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", - "ofType": null - } }, { "defaultValue": null, - "name": "name", + "name": "lastModifiedDate", "type": { "kind": "ENUM", "name": "orderBy", @@ -8019,7 +9522,7 @@ }, { "defaultValue": null, - "name": "s3Prefix", + "name": "keyPhotoUrl", "type": { "kind": "ENUM", "name": "orderBy", @@ -8028,7 +9531,7 @@ }, { "defaultValue": null, - "name": "httpsPrefix", + "name": "keyPhotoThumbnailUrl", "type": { "kind": "ENUM", "name": "orderBy", @@ -8047,7 +9550,35 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", + "name": "DepositionOrderByClause", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "asc" + }, + { + "name": "asc_nulls_first" + }, + { + "name": "asc_nulls_last" + }, + { + "name": "desc" + }, + { + "name": "desc_nulls_first" + }, + { + "name": "desc_nulls_last" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "orderBy", "possibleTypes": null }, { @@ -8056,25 +9587,25 @@ "inputFields": [ { "defaultValue": null, - "name": "deposition", + "name": "run", "type": { "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", + "name": "RunOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "title", + "name": "deposition", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "description", + "name": "s3OmezarrDir", "type": { "kind": "ENUM", "name": "orderBy", @@ -8083,7 +9614,7 @@ }, { "defaultValue": null, - "name": "organismName", + "name": "s3MrcFile", "type": { "kind": "ENUM", "name": "orderBy", @@ -8092,7 +9623,7 @@ }, { "defaultValue": null, - "name": "organismTaxid", + "name": "httpsOmezarrDir", "type": { "kind": "ENUM", "name": "orderBy", @@ -8101,7 +9632,7 @@ }, { "defaultValue": null, - "name": "tissueName", + "name": "httpsMrcFile", "type": { "kind": "ENUM", "name": "orderBy", @@ -8110,7 +9641,7 @@ }, { "defaultValue": null, - "name": "tissueId", + "name": "s3AngleList", "type": { "kind": "ENUM", "name": "orderBy", @@ -8119,7 +9650,7 @@ }, { "defaultValue": null, - "name": "cellName", + "name": "httpsAngleList", "type": { "kind": "ENUM", "name": "orderBy", @@ -8128,7 +9659,7 @@ }, { "defaultValue": null, - "name": "cellTypeId", + "name": "accelerationVoltage", "type": { "kind": "ENUM", "name": "orderBy", @@ -8137,7 +9668,7 @@ }, { "defaultValue": null, - "name": "cellStrainName", + "name": "sphericalAberrationConstant", "type": { "kind": "ENUM", "name": "orderBy", @@ -8146,7 +9677,7 @@ }, { "defaultValue": null, - "name": "cellStrainId", + "name": "microscopeManufacturer", "type": { "kind": "ENUM", "name": "orderBy", @@ -8155,7 +9686,7 @@ }, { "defaultValue": null, - "name": "sampleType", + "name": "microscopeModel", "type": { "kind": "ENUM", "name": "orderBy", @@ -8164,7 +9695,7 @@ }, { "defaultValue": null, - "name": "samplePreparation", + "name": "microscopeEnergyFilter", "type": { "kind": "ENUM", "name": "orderBy", @@ -8173,7 +9704,7 @@ }, { "defaultValue": null, - "name": "gridPreparation", + "name": "microscopePhasePlate", "type": { "kind": "ENUM", "name": "orderBy", @@ -8182,7 +9713,7 @@ }, { "defaultValue": null, - "name": "otherSetup", + "name": "microscopeImageCorrector", "type": { "kind": "ENUM", "name": "orderBy", @@ -8191,7 +9722,7 @@ }, { "defaultValue": null, - "name": "keyPhotoUrl", + "name": "microscopeAdditionalInfo", "type": { "kind": "ENUM", "name": "orderBy", @@ -8200,7 +9731,7 @@ }, { "defaultValue": null, - "name": "keyPhotoThumbnailUrl", + "name": "cameraManufacturer", "type": { "kind": "ENUM", "name": "orderBy", @@ -8209,7 +9740,7 @@ }, { "defaultValue": null, - "name": "cellComponentName", + "name": "cameraModel", "type": { "kind": "ENUM", "name": "orderBy", @@ -8218,7 +9749,7 @@ }, { "defaultValue": null, - "name": "cellComponentId", + "name": "tiltMin", "type": { "kind": "ENUM", "name": "orderBy", @@ -8227,7 +9758,7 @@ }, { "defaultValue": null, - "name": "depositionDate", + "name": "tiltMax", "type": { "kind": "ENUM", "name": "orderBy", @@ -8236,7 +9767,7 @@ }, { "defaultValue": null, - "name": "releaseDate", + "name": "tiltRange", "type": { "kind": "ENUM", "name": "orderBy", @@ -8245,7 +9776,7 @@ }, { "defaultValue": null, - "name": "lastModifiedDate", + "name": "tiltStep", "type": { "kind": "ENUM", "name": "orderBy", @@ -8254,7 +9785,7 @@ }, { "defaultValue": null, - "name": "datasetPublications", + "name": "tiltingScheme", "type": { "kind": "ENUM", "name": "orderBy", @@ -8263,7 +9794,7 @@ }, { "defaultValue": null, - "name": "relatedDatabaseEntries", + "name": "tiltAxis", "type": { "kind": "ENUM", "name": "orderBy", @@ -8272,7 +9803,7 @@ }, { "defaultValue": null, - "name": "s3Prefix", + "name": "totalFlux", "type": { "kind": "ENUM", "name": "orderBy", @@ -8281,7 +9812,7 @@ }, { "defaultValue": null, - "name": "httpsPrefix", + "name": "dataAcquisitionSoftware", "type": { "kind": "ENUM", "name": "orderBy", @@ -8290,756 +9821,379 @@ }, { "defaultValue": null, - "name": "id", + "name": "relatedEmpiarEntry", "type": { "kind": "ENUM", "name": "orderBy", "ofType": null } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "_id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } - } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "binningFromFrames", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "annotation", + "defaultValue": null, + "name": "tiltSeriesQuality", "type": { - "kind": "OBJECT", - "name": "Annotation", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "annotationId", + "defaultValue": null, + "name": "isAligned", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "annotationFiles", + "defaultValue": null, + "name": "pixelSpacing", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationFileConnection", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", - "ofType": null - } - } - ], - "name": "annotationFilesAggregate", + "defaultValue": null, + "name": "alignedTiltseriesBinning", "type": { - "kind": "OBJECT", - "name": "AnnotationFileAggregate", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "shapeType", + "defaultValue": null, + "name": "id", "type": { "kind": "ENUM", - "name": "annotation_file_shape_type_enum", + "name": "orderBy", "ofType": null } } ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "AnnotationShape", + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TiltseriesOrderByClause", "possibleTypes": null }, { "enumValues": null, - "fields": [ - { - "args": [], - "name": "_id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } - } - }, - { - "args": [], - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "run", - "type": { - "kind": "OBJECT", - "name": "Run", - "ofType": null - } - }, + "fields": null, + "inputFields": [ { - "args": [], - "name": "runId", + "defaultValue": null, + "name": "dataset", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationShapeWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AnnotationShapeOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "annotationShapes", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationShapeConnection", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationShapeWhereClause", - "ofType": null - } - } - ], - "name": "annotationShapesAggregate", + "defaultValue": null, + "name": "name", "type": { - "kind": "OBJECT", - "name": "AnnotationShapeAggregate", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationAuthorWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AnnotationAuthorOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "authors", + "defaultValue": null, + "name": "s3Prefix", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationAuthorConnection", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationAuthorWhereClause", - "ofType": null - } - } - ], - "name": "authorsAggregate", + "defaultValue": null, + "name": "httpsPrefix", "type": { - "kind": "OBJECT", - "name": "AnnotationAuthorAggregate", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } - } - ], + "defaultValue": null, + "name": "id", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, "name": "deposition", "type": { - "kind": "OBJECT", - "name": "Deposition", + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", "ofType": null } }, { - "args": [], - "name": "depositionId", + "defaultValue": null, + "name": "title", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "s3MetadataPath", + "defaultValue": null, + "name": "description", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], - "name": "httpsMetadataPath", + "defaultValue": null, + "name": "organismName", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], - "name": "annotationPublication", + "defaultValue": null, + "name": "organismTaxid", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "annotationMethod", + "defaultValue": null, + "name": "tissueName", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], - "name": "methodLinks", + "defaultValue": null, + "name": "tissueId", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "groundTruthStatus", + "defaultValue": null, + "name": "cellName", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "objectId", + "defaultValue": null, + "name": "cellTypeId", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], - "name": "objectName", + "defaultValue": null, + "name": "cellStrainName", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], - "name": "objectDescription", + "defaultValue": null, + "name": "cellStrainId", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "objectState", + "defaultValue": null, + "name": "sampleType", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "objectCount", + "defaultValue": null, + "name": "samplePreparation", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "confidencePrecision", + "defaultValue": null, + "name": "gridPreparation", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "confidenceRecall", + "defaultValue": null, + "name": "otherSetup", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "groundTruthUsed", + "defaultValue": null, + "name": "keyPhotoUrl", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "annotationSoftware", + "defaultValue": null, + "name": "keyPhotoThumbnailUrl", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "isCuratorRecommended", + "defaultValue": null, + "name": "cellComponentName", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "methodType", + "defaultValue": null, + "name": "cellComponentId", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "annotation_method_type_enum", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "depositionDate", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "releaseDate", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "lastModifiedDate", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [ + }, { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "defaultValue": null, + "name": "datasetPublications", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null + "defaultValue": null, + "name": "relatedDatabaseEntries", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "s3Prefix", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "httpsPrefix", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } } ], - "kind": "OBJECT", - "name": "Annotation", + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", "possibleTypes": null }, { @@ -9078,7 +10232,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", + "name": "AnnotationWhereClause", "ofType": null } }, @@ -9093,76 +10247,26 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", + "name": "AnnotationOrderByClause", "ofType": null } } } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } } ], - "name": "alignments", + "name": "annotation", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AlignmentConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "Annotation", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", - "ofType": null - } - } - ], - "name": "alignmentsAggregate", + "args": [], + "name": "annotationId", "type": { - "kind": "OBJECT", - "name": "AlignmentAggregate", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, @@ -9173,7 +10277,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AnnotationWhereClause", + "name": "AnnotationFileWhereClause", "ofType": null } }, @@ -9188,7 +10292,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", + "name": "AnnotationFileOrderByClause", "ofType": null } } @@ -9231,13 +10335,13 @@ } } ], - "name": "annotations", + "name": "annotationFiles", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationConnection", + "name": "AnnotationFileConnection", "ofType": null } } @@ -9249,17 +10353,73 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AnnotationWhereClause", + "name": "AnnotationFileWhereClause", "ofType": null } } ], - "name": "annotationsAggregate", + "name": "annotationFilesAggregate", "type": { "kind": "OBJECT", - "name": "AnnotationAggregate", + "name": "AnnotationFileAggregate", + "ofType": null + } + }, + { + "args": [], + "name": "shapeType", + "type": { + "kind": "ENUM", + "name": "annotation_file_shape_type_enum", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "AnnotationShape", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "_id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } }, { "args": [ @@ -9268,7 +10428,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "DatasetWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -9283,31 +10443,27 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", + "name": "RunOrderByClause", "ofType": null } } } } ], - "name": "dataset", + "name": "run", "type": { "kind": "OBJECT", - "name": "Dataset", + "name": "Run", "ofType": null } }, { "args": [], - "name": "datasetId", + "name": "runId", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { @@ -9317,7 +10473,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "FrameWhereClause", + "name": "AnnotationShapeWhereClause", "ofType": null } }, @@ -9332,7 +10488,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "FrameOrderByClause", + "name": "AnnotationShapeOrderByClause", "ofType": null } } @@ -9375,13 +10531,13 @@ } } ], - "name": "frames", + "name": "annotationShapes", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "FrameConnection", + "name": "AnnotationShapeConnection", "ofType": null } } @@ -9393,15 +10549,15 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "FrameWhereClause", + "name": "AnnotationShapeWhereClause", "ofType": null } } ], - "name": "framesAggregate", + "name": "annotationShapesAggregate", "type": { "kind": "OBJECT", - "name": "FrameAggregate", + "name": "AnnotationShapeAggregate", "ofType": null } }, @@ -9412,7 +10568,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "name": "AnnotationMethodLinkWhereClause", "ofType": null } }, @@ -9427,7 +10583,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", + "name": "AnnotationMethodLinkOrderByClause", "ofType": null } } @@ -9470,13 +10626,13 @@ } } ], - "name": "tiltseries", + "name": "methodLinks", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TiltseriesConnection", + "name": "AnnotationMethodLinkConnection", "ofType": null } } @@ -9488,15 +10644,15 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "name": "AnnotationMethodLinkWhereClause", "ofType": null } } ], - "name": "tiltseriesAggregate", + "name": "methodLinksAggregate", "type": { "kind": "OBJECT", - "name": "TiltseriesAggregate", + "name": "AnnotationMethodLinkAggregate", "ofType": null } }, @@ -9507,7 +10663,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingWhereClause", + "name": "AnnotationAuthorWhereClause", "ofType": null } }, @@ -9522,7 +10678,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", + "name": "AnnotationAuthorOrderByClause", "ofType": null } } @@ -9565,13 +10721,13 @@ } } ], - "name": "tomogramVoxelSpacings", + "name": "authors", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramVoxelSpacingConnection", + "name": "AnnotationAuthorConnection", "ofType": null } } @@ -9583,15 +10739,15 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingWhereClause", + "name": "AnnotationAuthorWhereClause", "ofType": null } } ], - "name": "tomogramVoxelSpacingsAggregate", + "name": "authorsAggregate", "type": { "kind": "OBJECT", - "name": "TomogramVoxelSpacingAggregate", + "name": "AnnotationAuthorAggregate", "ofType": null } }, @@ -9602,7 +10758,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", + "name": "DepositionWhereClause", "ofType": null } }, @@ -9617,82 +10773,32 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", + "name": "DepositionOrderByClause", "ofType": null } } } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } } ], - "name": "tomograms", + "name": "deposition", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "Deposition", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", - "ofType": null - } - } - ], - "name": "tomogramsAggregate", + "args": [], + "name": "depositionId", "type": { - "kind": "OBJECT", - "name": "TomogramAggregate", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "name", + "name": "s3MetadataPath", "type": { "kind": "NON_NULL", "name": null, @@ -9705,7 +10811,7 @@ }, { "args": [], - "name": "s3Prefix", + "name": "httpsMetadataPath", "type": { "kind": "NON_NULL", "name": null, @@ -9718,85 +10824,38 @@ }, { "args": [], - "name": "httpsPrefix", + "name": "annotationPublication", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null }, - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "Run", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "pageInfo", + "name": "annotationMethod", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PageInfo", + "kind": "SCALAR", + "name": "String", "ofType": null } } }, { "args": [], - "name": "edges", + "name": "groundTruthStatus", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AlignmentEdge", - "ofType": null - } - } - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "cursor", + "name": "objectId", "type": { "kind": "NON_NULL", "name": null, @@ -9809,158 +10868,47 @@ }, { "args": [], - "name": "node", + "name": "objectName", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "Alignment", + "kind": "SCALAR", + "name": "String", "ofType": null } } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentEdge", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "aggregate", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AlignmentAggregateFunctions", - "ofType": null - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentAggregate", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "sum", - "type": { - "kind": "OBJECT", - "name": "AlignmentNumericalColumns", - "ofType": null - } - }, - { - "args": [], - "name": "avg", - "type": { - "kind": "OBJECT", - "name": "AlignmentNumericalColumns", - "ofType": null - } - }, - { - "args": [], - "name": "stddev", - "type": { - "kind": "OBJECT", - "name": "AlignmentNumericalColumns", - "ofType": null - } - }, - { - "args": [], - "name": "variance", - "type": { - "kind": "OBJECT", - "name": "AlignmentNumericalColumns", - "ofType": null - } }, { "args": [], - "name": "min", + "name": "objectDescription", "type": { - "kind": "OBJECT", - "name": "AlignmentMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "max", + "name": "objectState", "type": { - "kind": "OBJECT", - "name": "AlignmentMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "groupBy", - "type": { - "kind": "OBJECT", - "name": "AlignmentGroupByOptions", - "ofType": null - } - }, - { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "AlignmentCountColumns", - "ofType": null - } - } - ], - "name": "count", + "name": "objectCount", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "volumeXDimension", + "name": "confidencePrecision", "type": { "kind": "SCALAR", "name": "Float", @@ -9969,7 +10917,7 @@ }, { "args": [], - "name": "volumeYDimension", + "name": "confidenceRecall", "type": { "kind": "SCALAR", "name": "Float", @@ -9978,426 +10926,451 @@ }, { "args": [], - "name": "volumeZDimension", + "name": "groundTruthUsed", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "volumeXOffset", + "name": "annotationSoftware", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "volumeYOffset", + "name": "isCuratorRecommended", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "volumeZOffset", + "name": "methodType", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "annotation_method_type_enum", + "ofType": null + } } }, { "args": [], - "name": "xRotationOffset", + "name": "depositionDate", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } }, { "args": [], - "name": "tiltOffset", + "name": "releaseDate", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } }, { "args": [], - "name": "id", + "name": "lastModifiedDate", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } } ], "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "volumeXDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "volumeYDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, + "interfaces": [ { - "args": [], - "name": "volumeZDimension", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, { - "args": [], - "name": "volumeXOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Annotation", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "volumeYOffset", + "name": "pageInfo", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } } }, { "args": [], - "name": "volumeZOffset", + "name": "edges", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationShapeEdge", + "ofType": null + } + } + } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "xRotationOffset", + "name": "cursor", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "tiltOffset", + "name": "node", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationShape", + "ofType": null + } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { - "args": [], - "name": "localAlignmentFile", + "defaultValue": null, + "name": "annotation", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", "ofType": null } }, { - "args": [], - "name": "affineTransformationMatrix", + "defaultValue": null, + "name": "shapeType", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "id", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } } ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentMinMaxColumns", + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AnnotationShapeOrderByClause", "possibleTypes": null }, { "enumValues": null, - "fields": [ + "fields": null, + "inputFields": [ { - "args": [], - "name": "deposition", + "defaultValue": null, + "name": "run", "type": { - "kind": "OBJECT", - "name": "DepositionGroupByOptions", + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", "ofType": null } }, { - "args": [], - "name": "tiltseries", + "defaultValue": null, + "name": "deposition", "type": { - "kind": "OBJECT", - "name": "TiltseriesGroupByOptions", + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", "ofType": null } }, { - "args": [], - "name": "run", + "defaultValue": null, + "name": "s3MetadataPath", "type": { - "kind": "OBJECT", - "name": "RunGroupByOptions", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "alignmentType", + "defaultValue": null, + "name": "httpsMetadataPath", "type": { "kind": "ENUM", - "name": "alignment_type_enum", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeXDimension", + "defaultValue": null, + "name": "annotationPublication", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeYDimension", + "defaultValue": null, + "name": "annotationMethod", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeZDimension", + "defaultValue": null, + "name": "groundTruthStatus", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeXOffset", + "defaultValue": null, + "name": "objectId", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeYOffset", + "defaultValue": null, + "name": "objectName", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "volumeZOffset", + "defaultValue": null, + "name": "objectDescription", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "xRotationOffset", + "defaultValue": null, + "name": "objectState", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "tiltOffset", + "defaultValue": null, + "name": "objectCount", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "localAlignmentFile", + "defaultValue": null, + "name": "confidencePrecision", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "affineTransformationMatrix", + "defaultValue": null, + "name": "confidenceRecall", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AlignmentGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "title", + "defaultValue": null, + "name": "groundTruthUsed", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "description", + "defaultValue": null, + "name": "annotationSoftware", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "depositionPublications", + "defaultValue": null, + "name": "isCuratorRecommended", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "relatedDatabaseEntries", + "defaultValue": null, + "name": "methodType", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "depositionDate", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "releaseDate", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], + "defaultValue": null, "name": "lastModifiedDate", "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - { - "args": [], - "name": "keyPhotoUrl", - "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "keyPhotoThumbnailUrl", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "id", + "name": "aggregate", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationShapeAggregateFunctions", + "ofType": null + } + } } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DepositionGroupByOptions", + "name": "AnnotationShapeAggregate", "possibleTypes": null }, { @@ -10405,169 +11378,201 @@ "fields": [ { "args": [], - "name": "run", + "name": "sum", "type": { "kind": "OBJECT", - "name": "RunGroupByOptions", + "name": "AnnotationShapeNumericalColumns", "ofType": null } }, { "args": [], - "name": "deposition", + "name": "avg", "type": { "kind": "OBJECT", - "name": "DepositionGroupByOptions", - "ofType": null - } - }, - { - "args": [], - "name": "s3OmezarrDir", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "s3MrcFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "httpsOmezarrDir", - "type": { - "kind": "SCALAR", - "name": "String", + "name": "AnnotationShapeNumericalColumns", "ofType": null } }, { "args": [], - "name": "httpsMrcFile", + "name": "stddev", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeNumericalColumns", "ofType": null } }, { "args": [], - "name": "s3CollectionMetadata", + "name": "variance", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeNumericalColumns", "ofType": null } }, { "args": [], - "name": "httpsCollectionMetadata", + "name": "min", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeMinMaxColumns", "ofType": null } }, { "args": [], - "name": "s3AngleList", + "name": "max", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeMinMaxColumns", "ofType": null } }, { "args": [], - "name": "httpsAngleList", + "name": "groupBy", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeGroupByOptions", "ofType": null } }, { - "args": [], - "name": "s3GainFile", + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "AnnotationShapeCountColumns", + "ofType": null + } + } + ], + "name": "count", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "httpsGainFile", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "accelerationVoltage", + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "sphericalAberrationConstant", + "name": "annotation", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "AnnotationGroupByOptions", "ofType": null } }, { "args": [], - "name": "microscopeManufacturer", + "name": "shapeType", "type": { "kind": "ENUM", - "name": "tiltseries_microscope_manufacturer_enum", + "name": "annotation_file_shape_type_enum", "ofType": null } }, { "args": [], - "name": "microscopeModel", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationShapeGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "microscopeEnergyFilter", + "name": "run", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "microscopePhasePlate", + "name": "deposition", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DepositionGroupByOptions", "ofType": null } }, { "args": [], - "name": "microscopeImageCorrector", + "name": "s3MetadataPath", "type": { "kind": "SCALAR", "name": "String", @@ -10576,7 +11581,7 @@ }, { "args": [], - "name": "microscopeAdditionalInfo", + "name": "httpsMetadataPath", "type": { "kind": "SCALAR", "name": "String", @@ -10585,7 +11590,7 @@ }, { "args": [], - "name": "cameraManufacturer", + "name": "annotationPublication", "type": { "kind": "SCALAR", "name": "String", @@ -10594,7 +11599,7 @@ }, { "args": [], - "name": "cameraModel", + "name": "annotationMethod", "type": { "kind": "SCALAR", "name": "String", @@ -10603,43 +11608,43 @@ }, { "args": [], - "name": "tiltMin", + "name": "groundTruthStatus", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "tiltMax", + "name": "objectId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltRange", + "name": "objectName", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltStep", + "name": "objectDescription", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltingScheme", + "name": "objectState", "type": { "kind": "SCALAR", "name": "String", @@ -10648,16 +11653,16 @@ }, { "args": [], - "name": "tiltAxis", + "name": "objectCount", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } }, { "args": [], - "name": "totalFlux", + "name": "confidencePrecision", "type": { "kind": "SCALAR", "name": "Float", @@ -10666,16 +11671,16 @@ }, { "args": [], - "name": "dataAcquisitionSoftware", + "name": "confidenceRecall", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "relatedEmpiarEntry", + "name": "groundTruthUsed", "type": { "kind": "SCALAR", "name": "String", @@ -10684,55 +11689,55 @@ }, { "args": [], - "name": "binningFromFrames", + "name": "annotationSoftware", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltSeriesQuality", + "name": "isCuratorRecommended", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "isAligned", + "name": "methodType", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "annotation_method_type_enum", "ofType": null } }, { "args": [], - "name": "pixelSpacing", + "name": "depositionDate", "type": { "kind": "SCALAR", - "name": "Float", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "alignedTiltseriesBinning", + "name": "releaseDate", "type": { "kind": "SCALAR", - "name": "Int", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "framesCount", + "name": "lastModifiedDate", "type": { "kind": "SCALAR", - "name": "Int", + "name": "DateTime", "ofType": null } }, @@ -10749,7 +11754,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesGroupByOptions", + "name": "AnnotationGroupByOptions", "possibleTypes": null }, { @@ -11061,57 +12066,115 @@ "possibleTypes": null }, { - "enumValues": [ - { - "name": "annotationFiles" - }, - { - "name": "perSectionAlignments" - }, - { - "name": "deposition" - }, - { - "name": "tiltseries" - }, + "enumValues": null, + "fields": [ { - "name": "tomograms" + "args": [], + "name": "title", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "run" + "args": [], + "name": "description", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "alignmentType" + "args": [], + "name": "depositionPublications", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "volumeXDimension" + "args": [], + "name": "relatedDatabaseEntries", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "volumeYDimension" + "args": [], + "name": "depositionDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } }, { - "name": "volumeZDimension" + "args": [], + "name": "releaseDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } }, { - "name": "volumeXOffset" + "args": [], + "name": "lastModifiedDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } }, { - "name": "volumeYOffset" + "args": [], + "name": "keyPhotoUrl", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "volumeZOffset" + "args": [], + "name": "keyPhotoThumbnailUrl", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "xRotationOffset" - }, + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DepositionGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ { - "name": "tiltOffset" + "name": "annotation" }, { - "name": "localAlignmentFile" + "name": "annotationFiles" }, { - "name": "affineTransformationMatrix" + "name": "shapeType" }, { "name": "id" @@ -11121,7 +12184,7 @@ "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "AlignmentCountColumns", + "name": "AnnotationShapeCountColumns", "possibleTypes": null }, { @@ -11154,7 +12217,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationEdge", + "name": "AnnotationMethodLinkEdge", "ofType": null } } @@ -11165,7 +12228,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationConnection", + "name": "AnnotationMethodLinkConnection", "possibleTypes": null }, { @@ -11192,7 +12255,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Annotation", + "name": "AnnotationMethodLink", "ofType": null } } @@ -11201,187 +12264,152 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationEdge", + "name": "AnnotationMethodLinkEdge", "possibleTypes": null }, { "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "run", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "deposition", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3MetadataPath", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsMetadataPath", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "annotationPublication", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "annotationMethod", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "methodLinks", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "groundTruthStatus", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "objectId", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, + "fields": [ { - "defaultValue": null, - "name": "objectName", + "args": [], + "name": "_id", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } } }, { - "defaultValue": null, - "name": "objectDescription", + "args": [], + "name": "id", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "defaultValue": null, - "name": "objectState", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "annotation", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "OBJECT", + "name": "Annotation", "ofType": null } }, { - "defaultValue": null, - "name": "objectCount", + "args": [], + "name": "annotationId", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { - "defaultValue": null, - "name": "confidencePrecision", + "args": [], + "name": "linkType", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "annotation_method_link_type_enum", + "ofType": null + } } }, { - "defaultValue": null, - "name": "confidenceRecall", + "args": [], + "name": "name", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "groundTruthUsed", + "args": [], + "name": "link", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } - }, + } + ], + "inputFields": null, + "interfaces": [ { - "defaultValue": null, - "name": "annotationSoftware", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, { - "defaultValue": null, - "name": "isCuratorRecommended", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "AnnotationMethodLink", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": null, - "name": "methodType", + "name": "annotation", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "depositionDate", + "name": "linkType", "type": { "kind": "ENUM", "name": "orderBy", @@ -11390,7 +12418,7 @@ }, { "defaultValue": null, - "name": "releaseDate", + "name": "name", "type": { "kind": "ENUM", "name": "orderBy", @@ -11399,7 +12427,7 @@ }, { "defaultValue": null, - "name": "lastModifiedDate", + "name": "link", "type": { "kind": "ENUM", "name": "orderBy", @@ -11418,7 +12446,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", + "name": "AnnotationMethodLinkOrderByClause", "possibleTypes": null }, { @@ -11435,7 +12463,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationAggregateFunctions", + "name": "AnnotationMethodLinkAggregateFunctions", "ofType": null } } @@ -11445,7 +12473,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAggregate", + "name": "AnnotationMethodLinkAggregate", "possibleTypes": null }, { @@ -11456,7 +12484,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "AnnotationNumericalColumns", + "name": "AnnotationMethodLinkNumericalColumns", "ofType": null } }, @@ -11465,7 +12493,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "AnnotationNumericalColumns", + "name": "AnnotationMethodLinkNumericalColumns", "ofType": null } }, @@ -11474,7 +12502,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "AnnotationNumericalColumns", + "name": "AnnotationMethodLinkNumericalColumns", "ofType": null } }, @@ -11483,7 +12511,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "AnnotationNumericalColumns", + "name": "AnnotationMethodLinkNumericalColumns", "ofType": null } }, @@ -11492,7 +12520,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "AnnotationMinMaxColumns", + "name": "AnnotationMethodLinkMinMaxColumns", "ofType": null } }, @@ -11501,7 +12529,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "AnnotationMinMaxColumns", + "name": "AnnotationMethodLinkMinMaxColumns", "ofType": null } }, @@ -11510,7 +12538,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "AnnotationGroupByOptions", + "name": "AnnotationMethodLinkGroupByOptions", "ofType": null } }, @@ -11530,7 +12558,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "AnnotationCountColumns", + "name": "AnnotationMethodLinkCountColumns", "ofType": null } } @@ -11546,39 +12574,12 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAggregateFunctions", + "name": "AnnotationMethodLinkAggregateFunctions", "possibleTypes": null }, { "enumValues": null, "fields": [ - { - "args": [], - "name": "objectCount", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "confidencePrecision", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "confidenceRecall", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, { "args": [], "name": "id", @@ -11592,69 +12593,15 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationNumericalColumns", + "name": "AnnotationMethodLinkNumericalColumns", "possibleTypes": null }, { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "s3MetadataPath", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "httpsMetadataPath", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "annotationPublication", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "annotationMethod", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "methodLinks", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "objectId", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, + "enumValues": null, + "fields": [ { "args": [], - "name": "objectName", + "name": "name", "type": { "kind": "SCALAR", "name": "String", @@ -11663,7 +12610,7 @@ }, { "args": [], - "name": "objectDescription", + "name": "link", "type": { "kind": "SCALAR", "name": "String", @@ -11672,43 +12619,53 @@ }, { "args": [], - "name": "objectState", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationMethodLinkMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "objectCount", + "name": "annotation", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "AnnotationGroupByOptions", "ofType": null } }, { "args": [], - "name": "confidencePrecision", + "name": "linkType", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "annotation_method_link_type_enum", "ofType": null } }, { "args": [], - "name": "confidenceRecall", + "name": "name", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "groundTruthUsed", + "name": "link", "type": { "kind": "SCALAR", "name": "String", @@ -11717,54 +12674,123 @@ }, { "args": [], - "name": "annotationSoftware", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationMethodLinkGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "annotation" + }, + { + "name": "linkType" + }, + { + "name": "name" + }, + { + "name": "link" }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "AnnotationMethodLinkCountColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "depositionDate", + "name": "pageInfo", "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } } }, { "args": [], - "name": "releaseDate", + "name": "edges", "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationAuthorEdge", + "ofType": null + } + } + } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "lastModifiedDate", + "name": "cursor", "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "id", + "name": "node", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationAuthor", + "ofType": null + } } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationMinMaxColumns", + "name": "AnnotationAuthorEdge", "possibleTypes": null }, { @@ -11772,52 +12798,91 @@ "fields": [ { "args": [], - "name": "run", + "name": "_id", "type": { - "kind": "OBJECT", - "name": "RunGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } } }, { "args": [], - "name": "deposition", + "name": "id", "type": { - "kind": "OBJECT", - "name": "DepositionGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "args": [], - "name": "s3MetadataPath", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "annotation", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Annotation", "ofType": null } }, { "args": [], - "name": "httpsMetadataPath", + "name": "annotationId", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "annotationPublication", + "name": "authorListOrder", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "annotationMethod", + "name": "orcid", "type": { "kind": "SCALAR", "name": "String", @@ -11826,25 +12891,29 @@ }, { "args": [], - "name": "methodLinks", + "name": "name", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "groundTruthStatus", + "name": "email", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", "ofType": null } }, { "args": [], - "name": "objectId", + "name": "affiliationName", "type": { "kind": "SCALAR", "name": "String", @@ -11853,7 +12922,7 @@ }, { "args": [], - "name": "objectName", + "name": "affiliationAddress", "type": { "kind": "SCALAR", "name": "String", @@ -11862,7 +12931,7 @@ }, { "args": [], - "name": "objectDescription", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", "name": "String", @@ -11871,202 +12940,147 @@ }, { "args": [], - "name": "objectState", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "objectCount", + "name": "primaryAuthorStatus", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, { - "args": [], - "name": "confidencePrecision", + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "AnnotationAuthor", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "annotation", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "INPUT_OBJECT", + "name": "AnnotationOrderByClause", "ofType": null } }, { - "args": [], - "name": "confidenceRecall", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "groundTruthUsed", + "defaultValue": null, + "name": "authorListOrder", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "annotationSoftware", + "defaultValue": null, + "name": "orcid", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "isCuratorRecommended", + "defaultValue": null, + "name": "name", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "methodType", + "defaultValue": null, + "name": "email", "type": { "kind": "ENUM", - "name": "annotation_method_type_enum", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "depositionDate", + "defaultValue": null, + "name": "affiliationName", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "releaseDate", + "defaultValue": null, + "name": "affiliationAddress", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "lastModifiedDate", + "defaultValue": null, + "name": "affiliationIdentifier", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "correspondingAuthorStatus", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "run" - }, - { - "name": "annotationShapes" - }, - { - "name": "authors" - }, - { - "name": "deposition" - }, - { - "name": "s3MetadataPath" - }, - { - "name": "httpsMetadataPath" - }, - { - "name": "annotationPublication" - }, - { - "name": "annotationMethod" - }, - { - "name": "methodLinks" - }, - { - "name": "groundTruthStatus" - }, - { - "name": "objectId" - }, - { - "name": "objectName" - }, - { - "name": "objectDescription" - }, - { - "name": "objectState" - }, - { - "name": "objectCount" - }, - { - "name": "confidencePrecision" - }, - { - "name": "confidenceRecall" - }, - { - "name": "groundTruthUsed" - }, - { - "name": "annotationSoftware" - }, - { - "name": "isCuratorRecommended" }, { - "name": "methodType" - }, - { - "name": "depositionDate" - }, - { - "name": "releaseDate" - }, - { - "name": "lastModifiedDate" - }, - { - "name": "id" + "defaultValue": null, + "name": "primaryAuthorStatus", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } } ], - "fields": null, - "inputFields": null, "interfaces": null, - "kind": "ENUM", - "name": "AnnotationCountColumns", + "kind": "INPUT_OBJECT", + "name": "AnnotationAuthorOrderByClause", "possibleTypes": null }, { @@ -12074,402 +13088,172 @@ "fields": [ { "args": [], - "name": "_id", + "name": "aggregate", "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationAuthorAggregateFunctions", + "ofType": null + } } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "id", + "name": "sum", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "deposition", + "kind": "OBJECT", + "name": "AnnotationAuthorNumericalColumns", + "ofType": null + } + }, + { + "args": [], + "name": "avg", "type": { "kind": "OBJECT", - "name": "Deposition", + "name": "AnnotationAuthorNumericalColumns", "ofType": null } }, { "args": [], - "name": "depositionId", + "name": "stddev", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "OBJECT", + "name": "AnnotationAuthorNumericalColumns", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetFundingWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DatasetFundingOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "fundingSources", + "args": [], + "name": "variance", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetFundingConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "AnnotationAuthorNumericalColumns", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetFundingWhereClause", - "ofType": null - } - } - ], - "name": "fundingSourcesAggregate", + "args": [], + "name": "min", "type": { "kind": "OBJECT", - "name": "DatasetFundingAggregate", + "name": "AnnotationAuthorMinMaxColumns", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetAuthorWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DatasetAuthorOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "authors", + "args": [], + "name": "max", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetAuthorConnection", - "ofType": null - } + "kind": "OBJECT", + "name": "AnnotationAuthorMinMaxColumns", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetAuthorWhereClause", - "ofType": null - } - } - ], - "name": "authorsAggregate", + "args": [], + "name": "groupBy", "type": { "kind": "OBJECT", - "name": "DatasetAuthorAggregate", + "name": "AnnotationAuthorGroupByOptions", "ofType": null } }, { "args": [ { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", + "defaultValue": "false", + "name": "distinct", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } }, { "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "runs", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RunConnection", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", + "name": "columns", "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", + "kind": "ENUM", + "name": "AnnotationAuthorCountColumns", "ofType": null } } ], - "name": "runsAggregate", + "name": "count", "type": { - "kind": "OBJECT", - "name": "RunAggregate", + "kind": "SCALAR", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "title", + "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "description", + "name": "authorListOrder", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "organismName", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "organismTaxid", + "name": "authorListOrder", "type": { "kind": "SCALAR", "name": "Int", @@ -12478,7 +13262,7 @@ }, { "args": [], - "name": "tissueName", + "name": "orcid", "type": { "kind": "SCALAR", "name": "String", @@ -12487,7 +13271,7 @@ }, { "args": [], - "name": "tissueId", + "name": "name", "type": { "kind": "SCALAR", "name": "String", @@ -12496,7 +13280,7 @@ }, { "args": [], - "name": "cellName", + "name": "email", "type": { "kind": "SCALAR", "name": "String", @@ -12505,7 +13289,7 @@ }, { "args": [], - "name": "cellTypeId", + "name": "affiliationName", "type": { "kind": "SCALAR", "name": "String", @@ -12514,7 +13298,7 @@ }, { "args": [], - "name": "cellStrainName", + "name": "affiliationAddress", "type": { "kind": "SCALAR", "name": "String", @@ -12523,43 +13307,53 @@ }, { "args": [], - "name": "cellStrainId", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", "name": "String", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "sampleType", + "name": "annotation", "type": { - "kind": "ENUM", - "name": "sample_type_enum", + "kind": "OBJECT", + "name": "AnnotationGroupByOptions", "ofType": null } }, { "args": [], - "name": "samplePreparation", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "gridPreparation", + "name": "authorListOrder", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "otherSetup", + "name": "orcid", "type": { "kind": "SCALAR", "name": "String", @@ -12568,7 +13362,7 @@ }, { "args": [], - "name": "keyPhotoUrl", + "name": "name", "type": { "kind": "SCALAR", "name": "String", @@ -12577,7 +13371,7 @@ }, { "args": [], - "name": "keyPhotoThumbnailUrl", + "name": "email", "type": { "kind": "SCALAR", "name": "String", @@ -12586,7 +13380,7 @@ }, { "args": [], - "name": "cellComponentName", + "name": "affiliationName", "type": { "kind": "SCALAR", "name": "String", @@ -12595,7 +13389,7 @@ }, { "args": [], - "name": "cellComponentId", + "name": "affiliationAddress", "type": { "kind": "SCALAR", "name": "String", @@ -12604,46 +13398,7 @@ }, { "args": [], - "name": "depositionDate", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - } - }, - { - "args": [], - "name": "releaseDate", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - } - }, - { - "args": [], - "name": "lastModifiedDate", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - } - }, - { - "args": [], - "name": "datasetPublications", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", "name": "String", @@ -12652,55 +13407,70 @@ }, { "args": [], - "name": "relatedDatabaseEntries", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "s3Prefix", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "httpsPrefix", + "name": "primaryAuthorStatus", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } } ], "inputFields": null, - "interfaces": [ + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAuthorGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "name": "annotation" }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null + "name": "id" + }, + { + "name": "authorListOrder" + }, + { + "name": "orcid" + }, + { + "name": "name" + }, + { + "name": "email" + }, + { + "name": "affiliationName" + }, + { + "name": "affiliationAddress" + }, + { + "name": "affiliationIdentifier" + }, + { + "name": "correspondingAuthorStatus" + }, + { + "name": "primaryAuthorStatus" } ], - "kind": "OBJECT", - "name": "Dataset", + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "AnnotationAuthorCountColumns", "possibleTypes": null }, { @@ -14375,86 +15145,6 @@ "name": "DepositionAuthorCountColumns", "possibleTypes": null }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - } - }, - { - "args": [], - "name": "edges", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetEdge", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "cursor", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "node", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dataset", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetEdge", - "possibleTypes": null - }, { "enumValues": null, "fields": [ @@ -14469,7 +15159,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "DatasetAggregateFunctions", + "name": "AlignmentAggregateFunctions", "ofType": null } } @@ -14479,7 +15169,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAggregate", + "name": "AlignmentAggregate", "possibleTypes": null }, { @@ -14490,7 +15180,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "DatasetNumericalColumns", + "name": "AlignmentNumericalColumns", "ofType": null } }, @@ -14499,7 +15189,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "DatasetNumericalColumns", + "name": "AlignmentNumericalColumns", "ofType": null } }, @@ -14508,7 +15198,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "DatasetNumericalColumns", + "name": "AlignmentNumericalColumns", "ofType": null } }, @@ -14517,7 +15207,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "DatasetNumericalColumns", + "name": "AlignmentNumericalColumns", "ofType": null } }, @@ -14526,7 +15216,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "DatasetMinMaxColumns", + "name": "AlignmentMinMaxColumns", "ofType": null } }, @@ -14535,7 +15225,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "DatasetMinMaxColumns", + "name": "AlignmentMinMaxColumns", "ofType": null } }, @@ -14544,7 +15234,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "DatasetGroupByOptions", + "name": "AlignmentGroupByOptions", "ofType": null } }, @@ -14564,7 +15254,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "DatasetCountColumns", + "name": "AlignmentCountColumns", "ofType": null } } @@ -14580,7 +15270,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAggregateFunctions", + "name": "AlignmentAggregateFunctions", "possibleTypes": null }, { @@ -14588,71 +15278,333 @@ "fields": [ { "args": [], - "name": "organismTaxid", + "name": "volumeXDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "xRotationOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AlignmentNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "volumeXDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "xRotationOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "affineTransformationMatrix", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "s3AlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "httpsAlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AlignmentMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "deposition", + "type": { + "kind": "OBJECT", + "name": "DepositionGroupByOptions", + "ofType": null + } + }, + { + "args": [], + "name": "tiltseries", + "type": { + "kind": "OBJECT", + "name": "TiltseriesGroupByOptions", + "ofType": null + } + }, + { + "args": [], + "name": "run", + "type": { + "kind": "OBJECT", + "name": "RunGroupByOptions", + "ofType": null + } + }, + { + "args": [], + "name": "alignmentType", + "type": { + "kind": "ENUM", + "name": "alignment_type_enum", + "ofType": null + } + }, + { + "args": [], + "name": "alignmentMethod", + "type": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeYDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeZDimension", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } }, { "args": [], - "name": "id", + "name": "volumeXOffset", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "title", + "name": "volumeYOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "description", + "name": "volumeZOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "organismName", + "name": "xRotationOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "organismTaxid", + "name": "tiltOffset", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } }, { "args": [], - "name": "tissueName", + "name": "affineTransformationMatrix", "type": { "kind": "SCALAR", "name": "String", @@ -14661,7 +15613,7 @@ }, { "args": [], - "name": "tissueId", + "name": "s3AlignmentMetadata", "type": { "kind": "SCALAR", "name": "String", @@ -14670,7 +15622,7 @@ }, { "args": [], - "name": "cellName", + "name": "httpsAlignmentMetadata", "type": { "kind": "SCALAR", "name": "String", @@ -14679,43 +15631,53 @@ }, { "args": [], - "name": "cellTypeId", + "name": "isPortalStandard", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "cellStrainName", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AlignmentGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "cellStrainId", + "name": "run", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "samplePreparation", + "name": "deposition", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DepositionGroupByOptions", "ofType": null } }, { "args": [], - "name": "gridPreparation", + "name": "s3OmezarrDir", "type": { "kind": "SCALAR", "name": "String", @@ -14724,7 +15686,7 @@ }, { "args": [], - "name": "otherSetup", + "name": "s3MrcFile", "type": { "kind": "SCALAR", "name": "String", @@ -14733,7 +15695,7 @@ }, { "args": [], - "name": "keyPhotoUrl", + "name": "httpsOmezarrDir", "type": { "kind": "SCALAR", "name": "String", @@ -14742,7 +15704,7 @@ }, { "args": [], - "name": "keyPhotoThumbnailUrl", + "name": "httpsMrcFile", "type": { "kind": "SCALAR", "name": "String", @@ -14751,7 +15713,7 @@ }, { "args": [], - "name": "cellComponentName", + "name": "s3AngleList", "type": { "kind": "SCALAR", "name": "String", @@ -14760,7 +15722,7 @@ }, { "args": [], - "name": "cellComponentId", + "name": "httpsAngleList", "type": { "kind": "SCALAR", "name": "String", @@ -14769,34 +15731,34 @@ }, { "args": [], - "name": "depositionDate", + "name": "accelerationVoltage", "type": { "kind": "SCALAR", - "name": "DateTime", + "name": "Int", "ofType": null } }, { "args": [], - "name": "releaseDate", + "name": "sphericalAberrationConstant", "type": { "kind": "SCALAR", - "name": "DateTime", + "name": "Float", "ofType": null } }, { "args": [], - "name": "lastModifiedDate", + "name": "microscopeManufacturer", "type": { - "kind": "SCALAR", - "name": "DateTime", + "kind": "ENUM", + "name": "tiltseries_microscope_manufacturer_enum", "ofType": null } }, { "args": [], - "name": "datasetPublications", + "name": "microscopeModel", "type": { "kind": "SCALAR", "name": "String", @@ -14805,7 +15767,7 @@ }, { "args": [], - "name": "relatedDatabaseEntries", + "name": "microscopeEnergyFilter", "type": { "kind": "SCALAR", "name": "String", @@ -14814,7 +15776,7 @@ }, { "args": [], - "name": "s3Prefix", + "name": "microscopePhasePlate", "type": { "kind": "SCALAR", "name": "String", @@ -14823,7 +15785,7 @@ }, { "args": [], - "name": "httpsPrefix", + "name": "microscopeImageCorrector", "type": { "kind": "SCALAR", "name": "String", @@ -14832,518 +15794,244 @@ }, { "args": [], - "name": "id", + "name": "microscopeAdditionalInfo", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetMinMaxColumns", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "deposition" - }, - { - "name": "fundingSources" - }, - { - "name": "authors" }, - { - "name": "runs" - }, - { - "name": "title" - }, - { - "name": "description" - }, - { - "name": "organismName" - }, - { - "name": "organismTaxid" - }, - { - "name": "tissueName" - }, - { - "name": "tissueId" - }, - { - "name": "cellName" - }, - { - "name": "cellTypeId" - }, - { - "name": "cellStrainName" - }, - { - "name": "cellStrainId" - }, - { - "name": "sampleType" - }, - { - "name": "samplePreparation" - }, - { - "name": "gridPreparation" - }, - { - "name": "otherSetup" - }, - { - "name": "keyPhotoUrl" - }, - { - "name": "keyPhotoThumbnailUrl" - }, - { - "name": "cellComponentName" - }, - { - "name": "cellComponentId" - }, - { - "name": "depositionDate" - }, - { - "name": "releaseDate" - }, - { - "name": "lastModifiedDate" - }, - { - "name": "datasetPublications" - }, - { - "name": "relatedDatabaseEntries" - }, - { - "name": "s3Prefix" - }, - { - "name": "httpsPrefix" - }, - { - "name": "id" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "DatasetCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "pageInfo", + "name": "cameraManufacturer", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "edges", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FrameEdge", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "FrameConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "cursor", + "name": "cameraModel", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "node", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Frame", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "FrameEdge", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "_id", + "name": "tiltMin", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "deposition", + "name": "tiltMax", "type": { - "kind": "OBJECT", - "name": "Deposition", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "args": [], - "name": "depositionId", + "name": "tiltRange", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "perSectionParameters", + "args": [], + "name": "tiltStep", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PerSectionParametersConnection", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", - "ofType": null - } - } - ], - "name": "perSectionParametersAggregate", + "args": [], + "name": "tiltingScheme", "type": { - "kind": "OBJECT", - "name": "PerSectionParametersAggregate", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "run", + "args": [], + "name": "tiltAxis", "type": { - "kind": "OBJECT", - "name": "Run", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { "args": [], - "name": "runId", + "name": "totalFlux", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } }, { "args": [], - "name": "rawAngle", + "name": "dataAcquisitionSoftware", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "acquisitionOrder", + "name": "relatedEmpiarEntry", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "dose", + "name": "binningFromFrames", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "isGainCorrected", + "name": "tiltSeriesQuality", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } }, { "args": [], - "name": "s3GainFile", + "name": "isAligned", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "httpsGainFile", + "name": "pixelSpacing", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "s3Prefix", + "name": "alignedTiltseriesBinning", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "httpsPrefix", + "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } } ], "inputFields": null, - "interfaces": [ + "interfaces": [], + "kind": "OBJECT", + "name": "TiltseriesGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "name": "annotationFiles" }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null + "name": "perSectionAlignments" + }, + { + "name": "deposition" + }, + { + "name": "tiltseries" + }, + { + "name": "tomograms" + }, + { + "name": "run" + }, + { + "name": "alignmentType" + }, + { + "name": "alignmentMethod" + }, + { + "name": "volumeXDimension" + }, + { + "name": "volumeYDimension" + }, + { + "name": "volumeZDimension" + }, + { + "name": "volumeXOffset" + }, + { + "name": "volumeYOffset" + }, + { + "name": "volumeZOffset" + }, + { + "name": "xRotationOffset" + }, + { + "name": "tiltOffset" + }, + { + "name": "affineTransformationMatrix" + }, + { + "name": "s3AlignmentMetadata" + }, + { + "name": "httpsAlignmentMetadata" + }, + { + "name": "isPortalStandard" + }, + { + "name": "id" } ], - "kind": "OBJECT", - "name": "Frame", + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "AlignmentCountColumns", "possibleTypes": null }, { @@ -15376,7 +16064,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParametersEdge", + "name": "AnnotationEdge", "ofType": null } } @@ -15387,7 +16075,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersConnection", + "name": "AnnotationConnection", "possibleTypes": null }, { @@ -15414,7 +16102,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParameters", + "name": "Annotation", "ofType": null } } @@ -15423,7 +16111,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersEdge", + "name": "AnnotationEdge", "possibleTypes": null }, { @@ -15431,144 +16119,153 @@ "fields": [ { "args": [], - "name": "_id", + "name": "aggregate", "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationAggregateFunctions", + "ofType": null + } } } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "sum", + "type": { + "kind": "OBJECT", + "name": "AnnotationNumericalColumns", + "ofType": null + } }, { "args": [], - "name": "id", + "name": "avg", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "OBJECT", + "name": "AnnotationNumericalColumns", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "FrameWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "FrameOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "frame", + "args": [], + "name": "stddev", "type": { "kind": "OBJECT", - "name": "Frame", + "name": "AnnotationNumericalColumns", "ofType": null } }, { "args": [], - "name": "frameId", + "name": "variance", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "OBJECT", + "name": "AnnotationNumericalColumns", + "ofType": null + } + }, + { + "args": [], + "name": "min", + "type": { + "kind": "OBJECT", + "name": "AnnotationMinMaxColumns", + "ofType": null + } + }, + { + "args": [], + "name": "max", + "type": { + "kind": "OBJECT", + "name": "AnnotationMinMaxColumns", + "ofType": null + } + }, + { + "args": [], + "name": "groupBy", + "type": { + "kind": "OBJECT", + "name": "AnnotationGroupByOptions", + "ofType": null } }, { "args": [ { - "defaultValue": "null", - "name": "where", + "defaultValue": "false", + "name": "distinct", "type": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesWhereClause", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, { - "defaultValue": "[]", - "name": "orderBy", + "defaultValue": "null", + "name": "columns", "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", - "ofType": null - } - } + "kind": "ENUM", + "name": "AnnotationCountColumns", + "ofType": null } } ], - "name": "tiltseries", + "name": "count", "type": { - "kind": "OBJECT", - "name": "Tiltseries", + "kind": "SCALAR", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "tiltseriesId", + "name": "objectCount", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "zIndex", + "name": "confidencePrecision", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "defocus", + "name": "confidenceRecall", "type": { "kind": "SCALAR", "name": "Float", @@ -15577,7 +16274,107 @@ }, { "args": [], - "name": "astigmatism", + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "s3MetadataPath", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "httpsMetadataPath", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "annotationPublication", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "annotationMethod", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "objectId", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "objectName", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "objectDescription", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "objectState", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "objectCount", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "confidencePrecision", "type": { "kind": "SCALAR", "name": "Float", @@ -15586,138 +16383,237 @@ }, { "args": [], - "name": "astigmaticAngle", + "name": "confidenceRecall", "type": { "kind": "SCALAR", "name": "Float", "ofType": null } + }, + { + "args": [], + "name": "groundTruthUsed", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "annotationSoftware", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "depositionDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "args": [], + "name": "releaseDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "args": [], + "name": "lastModifiedDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } ], "inputFields": null, - "interfaces": [ + "interfaces": [], + "kind": "OBJECT", + "name": "AnnotationMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": [ { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "name": "run" + }, + { + "name": "annotationShapes" + }, + { + "name": "methodLinks" + }, + { + "name": "authors" + }, + { + "name": "deposition" + }, + { + "name": "s3MetadataPath" + }, + { + "name": "httpsMetadataPath" + }, + { + "name": "annotationPublication" + }, + { + "name": "annotationMethod" + }, + { + "name": "groundTruthStatus" + }, + { + "name": "objectId" + }, + { + "name": "objectName" + }, + { + "name": "objectDescription" + }, + { + "name": "objectState" + }, + { + "name": "objectCount" + }, + { + "name": "confidencePrecision" }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "PerSectionParameters", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ + "name": "confidenceRecall" + }, { - "defaultValue": null, - "name": "deposition", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } + "name": "groundTruthUsed" }, { - "defaultValue": null, - "name": "run", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } + "name": "annotationSoftware" }, { - "defaultValue": null, - "name": "rawAngle", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "name": "isCuratorRecommended" }, { - "defaultValue": null, - "name": "acquisitionOrder", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "name": "methodType" }, { - "defaultValue": null, - "name": "dose", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "name": "depositionDate" }, { - "defaultValue": null, - "name": "isGainCorrected", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "name": "releaseDate" }, { - "defaultValue": null, - "name": "s3GainFile", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } + "name": "lastModifiedDate" }, { - "defaultValue": null, - "name": "httpsGainFile", + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "AnnotationCountColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "pageInfo", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } } }, { - "defaultValue": null, - "name": "s3Prefix", + "args": [], + "name": "edges", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DatasetEdge", + "ofType": null + } + } + } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { - "defaultValue": null, - "name": "httpsPrefix", + "args": [], + "name": "cursor", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "id", + "args": [], + "name": "node", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Dataset", + "ofType": null + } } } ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "FrameOrderByClause", + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetEdge", "possibleTypes": null }, { @@ -15756,7 +16652,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", + "name": "DepositionWhereClause", "ofType": null } }, @@ -15771,7 +16667,56 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", + "name": "DepositionOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "deposition", + "type": { + "kind": "OBJECT", + "name": "Deposition", + "ofType": null + } + }, + { + "args": [], + "name": "depositionId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetFundingWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DatasetFundingOrderByClause", "ofType": null } } @@ -15814,13 +16759,13 @@ } } ], - "name": "alignments", + "name": "fundingSources", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "AlignmentConnection", + "name": "DatasetFundingConnection", "ofType": null } } @@ -15832,15 +16777,15 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", + "name": "DatasetFundingWhereClause", "ofType": null } } ], - "name": "alignmentsAggregate", + "name": "fundingSourcesAggregate", "type": { "kind": "OBJECT", - "name": "AlignmentAggregate", + "name": "DatasetFundingAggregate", "ofType": null } }, @@ -15851,7 +16796,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "DatasetAuthorWhereClause", "ofType": null } }, @@ -15866,7 +16811,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersOrderByClause", + "name": "DatasetAuthorOrderByClause", "ofType": null } } @@ -15909,13 +16854,13 @@ } } ], - "name": "perSectionParameters", + "name": "authors", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParametersConnection", + "name": "DatasetAuthorConnection", "ofType": null } } @@ -15927,15 +16872,15 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClause", + "name": "DatasetAuthorWhereClause", "ofType": null } } ], - "name": "perSectionParametersAggregate", + "name": "authorsAggregate", "type": { "kind": "OBJECT", - "name": "PerSectionParametersAggregate", + "name": "DatasetAuthorAggregate", "ofType": null } }, @@ -15966,24 +16911,51 @@ } } } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } ], - "name": "run", - "type": { - "kind": "OBJECT", - "name": "Run", - "ofType": null - } - }, - { - "args": [], - "name": "runId", + "name": "runs", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "RunConnection", "ofType": null } } @@ -15995,38 +16967,56 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", + "name": "RunWhereClause", "ofType": null } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } } ], - "name": "deposition", + "name": "runsAggregate", "type": { "kind": "OBJECT", - "name": "Deposition", + "name": "RunAggregate", "ofType": null } }, { "args": [], - "name": "depositionId", + "name": "title", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "description", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "organismName", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "organismTaxid", "type": { "kind": "SCALAR", "name": "Int", @@ -16035,7 +17025,7 @@ }, { "args": [], - "name": "s3OmezarrDir", + "name": "tissueName", "type": { "kind": "SCALAR", "name": "String", @@ -16044,7 +17034,7 @@ }, { "args": [], - "name": "s3MrcFile", + "name": "tissueId", "type": { "kind": "SCALAR", "name": "String", @@ -16053,7 +17043,7 @@ }, { "args": [], - "name": "httpsOmezarrDir", + "name": "cellName", "type": { "kind": "SCALAR", "name": "String", @@ -16062,7 +17052,7 @@ }, { "args": [], - "name": "httpsMrcFile", + "name": "cellTypeId", "type": { "kind": "SCALAR", "name": "String", @@ -16071,7 +17061,7 @@ }, { "args": [], - "name": "s3CollectionMetadata", + "name": "cellStrainName", "type": { "kind": "SCALAR", "name": "String", @@ -16080,7 +17070,7 @@ }, { "args": [], - "name": "httpsCollectionMetadata", + "name": "cellStrainId", "type": { "kind": "SCALAR", "name": "String", @@ -16089,7 +17079,16 @@ }, { "args": [], - "name": "s3AngleList", + "name": "sampleType", + "type": { + "kind": "ENUM", + "name": "sample_type_enum", + "ofType": null + } + }, + { + "args": [], + "name": "samplePreparation", "type": { "kind": "SCALAR", "name": "String", @@ -16098,7 +17097,7 @@ }, { "args": [], - "name": "httpsAngleList", + "name": "gridPreparation", "type": { "kind": "SCALAR", "name": "String", @@ -16107,7 +17106,7 @@ }, { "args": [], - "name": "s3GainFile", + "name": "otherSetup", "type": { "kind": "SCALAR", "name": "String", @@ -16116,7 +17115,7 @@ }, { "args": [], - "name": "httpsGainFile", + "name": "keyPhotoUrl", "type": { "kind": "SCALAR", "name": "String", @@ -16125,81 +17124,73 @@ }, { "args": [], - "name": "accelerationVoltage", + "name": "keyPhotoThumbnailUrl", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "sphericalAberrationConstant", + "name": "cellComponentName", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "microscopeManufacturer", + "name": "cellComponentId", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "tiltseries_microscope_manufacturer_enum", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "microscopeModel", + "name": "depositionDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } } }, { "args": [], - "name": "microscopeEnergyFilter", + "name": "releaseDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } } }, { "args": [], - "name": "microscopePhasePlate", + "name": "lastModifiedDate", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } }, { "args": [], - "name": "microscopeImageCorrector", + "name": "datasetPublications", "type": { "kind": "SCALAR", "name": "String", @@ -16208,7 +17199,7 @@ }, { "args": [], - "name": "microscopeAdditionalInfo", + "name": "relatedDatabaseEntries", "type": { "kind": "SCALAR", "name": "String", @@ -16217,7 +17208,7 @@ }, { "args": [], - "name": "cameraManufacturer", + "name": "s3Prefix", "type": { "kind": "NON_NULL", "name": null, @@ -16230,7 +17221,7 @@ }, { "args": [], - "name": "cameraModel", + "name": "httpsPrefix", "type": { "kind": "NON_NULL", "name": null, @@ -16240,62 +17231,75 @@ "ofType": null } } - }, + } + ], + "inputFields": null, + "interfaces": [ { - "args": [], - "name": "tiltMin", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, { - "args": [], - "name": "tiltMax", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } - }, + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Dataset", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "tiltRange", + "name": "pageInfo", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "PageInfo", "ofType": null } } }, { "args": [], - "name": "tiltStep", + "name": "edges", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DatasetFundingEdge", + "ofType": null + } + } } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetFundingConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "tiltingScheme", + "name": "cursor", "type": { "kind": "NON_NULL", "name": null, @@ -16308,115 +17312,113 @@ }, { "args": [], - "name": "tiltAxis", + "name": "node", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "DatasetFunding", "ofType": null } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetFundingEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "totalFlux", + "name": "_id", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Float", + "name": "GlobalID", "ofType": null } } }, { "args": [], - "name": "dataAcquisitionSoftware", + "name": "id", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } } }, { - "args": [], - "name": "relatedEmpiarEntry", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "dataset", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Dataset", "ofType": null } }, { "args": [], - "name": "binningFromFrames", + "name": "datasetId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } }, { "args": [], - "name": "tiltSeriesQuality", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [], - "name": "isAligned", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - { - "args": [], - "name": "pixelSpacing", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } - }, - { - "args": [], - "name": "alignedTiltseriesBinning", + "name": "fundingAgencyName", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "framesCount", + "name": "grantId", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } } @@ -16435,7 +17437,7 @@ } ], "kind": "OBJECT", - "name": "Tiltseries", + "name": "DatasetFunding", "possibleTypes": null }, { @@ -16444,43 +17446,16 @@ "inputFields": [ { "defaultValue": null, - "name": "frame", - "type": { - "kind": "INPUT_OBJECT", - "name": "FrameOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tiltseries", + "name": "dataset", "type": { "kind": "INPUT_OBJECT", - "name": "TiltseriesOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "zIndex", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "defocus", - "type": { - "kind": "ENUM", - "name": "orderBy", + "name": "DatasetOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "astigmatism", + "name": "fundingAgencyName", "type": { "kind": "ENUM", "name": "orderBy", @@ -16489,7 +17464,7 @@ }, { "defaultValue": null, - "name": "astigmaticAngle", + "name": "grantId", "type": { "kind": "ENUM", "name": "orderBy", @@ -16508,7 +17483,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "PerSectionParametersOrderByClause", + "name": "DatasetFundingOrderByClause", "possibleTypes": null }, { @@ -16525,7 +17500,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionParametersAggregateFunctions", + "name": "DatasetFundingAggregateFunctions", "ofType": null } } @@ -16535,7 +17510,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersAggregate", + "name": "DatasetFundingAggregate", "possibleTypes": null }, { @@ -16546,7 +17521,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "PerSectionParametersNumericalColumns", + "name": "DatasetFundingNumericalColumns", "ofType": null } }, @@ -16555,7 +17530,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "PerSectionParametersNumericalColumns", + "name": "DatasetFundingNumericalColumns", "ofType": null } }, @@ -16564,7 +17539,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "PerSectionParametersNumericalColumns", + "name": "DatasetFundingNumericalColumns", "ofType": null } }, @@ -16573,7 +17548,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "PerSectionParametersNumericalColumns", + "name": "DatasetFundingNumericalColumns", "ofType": null } }, @@ -16582,7 +17557,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "PerSectionParametersMinMaxColumns", + "name": "DatasetFundingMinMaxColumns", "ofType": null } }, @@ -16591,7 +17566,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "PerSectionParametersMinMaxColumns", + "name": "DatasetFundingMinMaxColumns", "ofType": null } }, @@ -16600,7 +17575,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "PerSectionParametersGroupByOptions", + "name": "DatasetFundingGroupByOptions", "ofType": null } }, @@ -16620,7 +17595,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "PerSectionParametersCountColumns", + "name": "DatasetFundingCountColumns", "ofType": null } } @@ -16636,7 +17611,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersAggregateFunctions", + "name": "DatasetFundingAggregateFunctions", "possibleTypes": null }, { @@ -16644,37 +17619,38 @@ "fields": [ { "args": [], - "name": "zIndex", + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - { - "args": [], - "name": "defocus", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetFundingNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "astigmatism", + "name": "fundingAgencyName", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "astigmaticAngle", + "name": "grantId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, @@ -16691,7 +17667,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersNumericalColumns", + "name": "DatasetFundingMinMaxColumns", "possibleTypes": null }, { @@ -16699,54 +17675,111 @@ "fields": [ { "args": [], - "name": "zIndex", + "name": "dataset", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "DatasetGroupByOptions", "ofType": null } }, { "args": [], - "name": "defocus", + "name": "fundingAgencyName", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "astigmatism", + "name": "grantId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "astigmaticAngle", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetFundingGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "dataset" + }, + { + "name": "fundingAgencyName" + }, + { + "name": "grantId" + }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "DatasetFundingCountColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "pageInfo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + } }, { "args": [], - "name": "id", + "name": "edges", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DatasetAuthorEdge", + "ofType": null + } + } + } } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionParametersMinMaxColumns", + "name": "DatasetAuthorConnection", "possibleTypes": null }, { @@ -16754,25 +17787,105 @@ "fields": [ { "args": [], - "name": "frame", + "name": "cursor", "type": { - "kind": "OBJECT", - "name": "FrameGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "tiltseries", + "name": "node", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DatasetAuthor", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetAuthorEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "_id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatasetWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "dataset", "type": { "kind": "OBJECT", - "name": "TiltseriesGroupByOptions", + "name": "Dataset", "ofType": null } }, { "args": [], - "name": "zIndex", + "name": "datasetId", "type": { "kind": "SCALAR", "name": "Int", @@ -16781,185 +17894,218 @@ }, { "args": [], - "name": "defocus", + "name": "authorListOrder", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "astigmatism", + "name": "orcid", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "astigmaticAngle", + "name": "name", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "id", + "name": "email", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "PerSectionParametersGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "deposition", + "name": "affiliationName", "type": { - "kind": "OBJECT", - "name": "DepositionGroupByOptions", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "run", + "name": "affiliationAddress", "type": { - "kind": "OBJECT", - "name": "RunGroupByOptions", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "rawAngle", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "acquisitionOrder", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "dose", + "name": "primaryAuthorStatus", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Boolean", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null }, { - "args": [], - "name": "isGainCorrected", + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "DatasetAuthor", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "dataset", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "INPUT_OBJECT", + "name": "DatasetOrderByClause", "ofType": null } }, { - "args": [], - "name": "s3GainFile", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "httpsGainFile", + "defaultValue": null, + "name": "authorListOrder", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "s3Prefix", + "defaultValue": null, + "name": "orcid", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "name", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "email", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "affiliationName", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "affiliationAddress", + "type": { + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "httpsPrefix", + "defaultValue": null, + "name": "affiliationIdentifier", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "correspondingAuthorStatus", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "FrameGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "frame" - }, - { - "name": "tiltseries" - }, - { - "name": "zIndex" - }, - { - "name": "defocus" - }, - { - "name": "astigmatism" - }, - { - "name": "astigmaticAngle" }, { - "name": "id" + "defaultValue": null, + "name": "primaryAuthorStatus", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } } ], - "fields": null, - "inputFields": null, "interfaces": null, - "kind": "ENUM", - "name": "PerSectionParametersCountColumns", + "kind": "INPUT_OBJECT", + "name": "DatasetAuthorOrderByClause", "possibleTypes": null }, { @@ -16976,7 +18122,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "FrameAggregateFunctions", + "name": "DatasetAuthorAggregateFunctions", "ofType": null } } @@ -16986,7 +18132,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "FrameAggregate", + "name": "DatasetAuthorAggregate", "possibleTypes": null }, { @@ -16997,7 +18143,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "FrameNumericalColumns", + "name": "DatasetAuthorNumericalColumns", "ofType": null } }, @@ -17006,7 +18152,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "FrameNumericalColumns", + "name": "DatasetAuthorNumericalColumns", "ofType": null } }, @@ -17015,7 +18161,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "FrameNumericalColumns", + "name": "DatasetAuthorNumericalColumns", "ofType": null } }, @@ -17024,7 +18170,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "FrameNumericalColumns", + "name": "DatasetAuthorNumericalColumns", "ofType": null } }, @@ -17033,7 +18179,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "FrameMinMaxColumns", + "name": "DatasetAuthorMinMaxColumns", "ofType": null } }, @@ -17042,7 +18188,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "FrameMinMaxColumns", + "name": "DatasetAuthorMinMaxColumns", "ofType": null } }, @@ -17051,7 +18197,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "FrameGroupByOptions", + "name": "DatasetAuthorGroupByOptions", "ofType": null } }, @@ -17071,7 +18217,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "FrameCountColumns", + "name": "DatasetAuthorCountColumns", "ofType": null } } @@ -17087,7 +18233,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "FrameAggregateFunctions", + "name": "DatasetAuthorAggregateFunctions", "possibleTypes": null }, { @@ -17095,45 +18241,109 @@ "fields": [ { "args": [], - "name": "rawAngle", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } }, { "args": [], - "name": "acquisitionOrder", + "name": "authorListOrder", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetAuthorNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "dose", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } }, { "args": [], - "name": "id", + "name": "authorListOrder", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + { + "args": [], + "name": "orcid", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "email", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "affiliationName", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "affiliationAddress", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "affiliationIdentifier", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "FrameNumericalColumns", + "name": "DatasetAuthorMinMaxColumns", "possibleTypes": null }, { @@ -17141,16 +18351,25 @@ "fields": [ { "args": [], - "name": "rawAngle", + "name": "dataset", + "type": { + "kind": "OBJECT", + "name": "DatasetGroupByOptions", + "ofType": null + } + }, + { + "args": [], + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } }, { "args": [], - "name": "acquisitionOrder", + "name": "authorListOrder", "type": { "kind": "SCALAR", "name": "Int", @@ -17159,16 +18378,25 @@ }, { "args": [], - "name": "dose", + "name": "orcid", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "s3GainFile", + "name": "email", "type": { "kind": "SCALAR", "name": "String", @@ -17177,7 +18405,7 @@ }, { "args": [], - "name": "httpsGainFile", + "name": "affiliationName", "type": { "kind": "SCALAR", "name": "String", @@ -17186,7 +18414,7 @@ }, { "args": [], - "name": "s3Prefix", + "name": "affiliationAddress", "type": { "kind": "SCALAR", "name": "String", @@ -17195,7 +18423,7 @@ }, { "args": [], - "name": "httpsPrefix", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", "name": "String", @@ -17204,10 +18432,19 @@ }, { "args": [], - "name": "id", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", + "ofType": null + } + }, + { + "args": [], + "name": "primaryAuthorStatus", + "type": { + "kind": "SCALAR", + "name": "Boolean", "ofType": null } } @@ -17215,53 +18452,50 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "FrameMinMaxColumns", + "name": "DatasetAuthorGroupByOptions", "possibleTypes": null }, { "enumValues": [ { - "name": "deposition" - }, - { - "name": "perSectionParameters" + "name": "dataset" }, { - "name": "run" + "name": "id" }, { - "name": "rawAngle" + "name": "authorListOrder" }, { - "name": "acquisitionOrder" + "name": "orcid" }, { - "name": "dose" + "name": "name" }, { - "name": "isGainCorrected" + "name": "email" }, { - "name": "s3GainFile" + "name": "affiliationName" }, { - "name": "httpsGainFile" + "name": "affiliationAddress" }, { - "name": "s3Prefix" + "name": "affiliationIdentifier" }, { - "name": "httpsPrefix" + "name": "correspondingAuthorStatus" }, { - "name": "id" + "name": "primaryAuthorStatus" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "FrameCountColumns", + "name": "DatasetAuthorCountColumns", "possibleTypes": null }, { @@ -17294,7 +18528,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TiltseriesEdge", + "name": "RunEdge", "ofType": null } } @@ -17305,7 +18539,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesConnection", + "name": "RunConnection", "possibleTypes": null }, { @@ -17332,7 +18566,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Tiltseries", + "name": "Run", "ofType": null } } @@ -17341,7 +18575,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesEdge", + "name": "RunEdge", "possibleTypes": null }, { @@ -17358,7 +18592,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TiltseriesAggregateFunctions", + "name": "RunAggregateFunctions", "ofType": null } } @@ -17368,7 +18602,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesAggregate", + "name": "RunAggregate", "possibleTypes": null }, { @@ -17379,7 +18613,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "TiltseriesNumericalColumns", + "name": "RunNumericalColumns", "ofType": null } }, @@ -17388,7 +18622,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "TiltseriesNumericalColumns", + "name": "RunNumericalColumns", "ofType": null } }, @@ -17397,7 +18631,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "TiltseriesNumericalColumns", + "name": "RunNumericalColumns", "ofType": null } }, @@ -17406,7 +18640,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "TiltseriesNumericalColumns", + "name": "RunNumericalColumns", "ofType": null } }, @@ -17415,7 +18649,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "TiltseriesMinMaxColumns", + "name": "RunMinMaxColumns", "ofType": null } }, @@ -17424,7 +18658,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "TiltseriesMinMaxColumns", + "name": "RunMinMaxColumns", "ofType": null } }, @@ -17433,7 +18667,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "TiltseriesGroupByOptions", + "name": "RunGroupByOptions", "ofType": null } }, @@ -17453,7 +18687,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "TiltseriesCountColumns", + "name": "RunCountColumns", "ofType": null } } @@ -17469,7 +18703,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesAggregateFunctions", + "name": "RunAggregateFunctions", "possibleTypes": null }, { @@ -17477,135 +18711,140 @@ "fields": [ { "args": [], - "name": "accelerationVoltage", + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "RunNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "sphericalAberrationConstant", + "name": "name", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltMin", + "name": "s3Prefix", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltMax", + "name": "httpsPrefix", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltRange", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "RunMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "alignments" }, { - "args": [], - "name": "tiltStep", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "name": "annotations" }, { - "args": [], - "name": "tiltAxis", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "name": "dataset" }, { - "args": [], - "name": "totalFlux", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "name": "frames" }, { - "args": [], - "name": "binningFromFrames", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "name": "gainFiles" }, { - "args": [], - "name": "tiltSeriesQuality", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "name": "frameAcquisitionFiles" }, { - "args": [], - "name": "pixelSpacing", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "name": "tiltseries" }, { - "args": [], - "name": "alignedTiltseriesBinning", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "name": "tomogramVoxelSpacings" }, { - "args": [], - "name": "framesCount", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "name": "tomograms" + }, + { + "name": "name" + }, + { + "name": "s3Prefix" + }, + { + "name": "httpsPrefix" }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "RunCountColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "id", + "name": "aggregate", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DatasetAggregateFunctions", + "ofType": null + } + } } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesNumericalColumns", + "name": "DatasetAggregate", "possibleTypes": null }, { @@ -17613,88 +18852,136 @@ "fields": [ { "args": [], - "name": "s3OmezarrDir", + "name": "sum", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetNumericalColumns", "ofType": null } }, { "args": [], - "name": "s3MrcFile", + "name": "avg", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetNumericalColumns", "ofType": null } }, { "args": [], - "name": "httpsOmezarrDir", + "name": "stddev", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetNumericalColumns", "ofType": null } }, { "args": [], - "name": "httpsMrcFile", + "name": "variance", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetNumericalColumns", "ofType": null } }, { "args": [], - "name": "s3CollectionMetadata", + "name": "min", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetMinMaxColumns", "ofType": null } }, { "args": [], - "name": "httpsCollectionMetadata", + "name": "max", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetMinMaxColumns", "ofType": null } }, { "args": [], - "name": "s3AngleList", + "name": "groupBy", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DatasetGroupByOptions", "ofType": null } }, + { + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "DatasetCountColumns", + "ofType": null + } + } + ], + "name": "count", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "httpsAngleList", + "name": "organismTaxid", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "s3GainFile", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DatasetNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "httpsGainFile", + "name": "title", "type": { "kind": "SCALAR", "name": "String", @@ -17703,34 +18990,34 @@ }, { "args": [], - "name": "accelerationVoltage", + "name": "description", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "sphericalAberrationConstant", + "name": "organismName", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "microscopeModel", + "name": "organismTaxid", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "microscopeEnergyFilter", + "name": "tissueName", "type": { "kind": "SCALAR", "name": "String", @@ -17739,7 +19026,7 @@ }, { "args": [], - "name": "microscopePhasePlate", + "name": "tissueId", "type": { "kind": "SCALAR", "name": "String", @@ -17748,7 +19035,7 @@ }, { "args": [], - "name": "microscopeImageCorrector", + "name": "cellName", "type": { "kind": "SCALAR", "name": "String", @@ -17757,7 +19044,7 @@ }, { "args": [], - "name": "microscopeAdditionalInfo", + "name": "cellTypeId", "type": { "kind": "SCALAR", "name": "String", @@ -17766,7 +19053,7 @@ }, { "args": [], - "name": "cameraManufacturer", + "name": "cellStrainName", "type": { "kind": "SCALAR", "name": "String", @@ -17775,7 +19062,7 @@ }, { "args": [], - "name": "cameraModel", + "name": "cellStrainId", "type": { "kind": "SCALAR", "name": "String", @@ -17784,43 +19071,43 @@ }, { "args": [], - "name": "tiltMin", + "name": "samplePreparation", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltMax", + "name": "gridPreparation", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltRange", + "name": "otherSetup", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltStep", + "name": "keyPhotoUrl", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltingScheme", + "name": "keyPhotoThumbnailUrl", "type": { "kind": "SCALAR", "name": "String", @@ -17829,82 +19116,82 @@ }, { "args": [], - "name": "tiltAxis", + "name": "cellComponentName", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "totalFlux", + "name": "cellComponentId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "dataAcquisitionSoftware", + "name": "depositionDate", "type": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "relatedEmpiarEntry", + "name": "releaseDate", "type": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "binningFromFrames", + "name": "lastModifiedDate", "type": { "kind": "SCALAR", - "name": "Float", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "tiltSeriesQuality", + "name": "datasetPublications", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "pixelSpacing", + "name": "relatedDatabaseEntries", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "alignedTiltseriesBinning", + "name": "s3Prefix", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "framesCount", + "name": "httpsPrefix", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, @@ -17921,127 +19208,97 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TiltseriesMinMaxColumns", + "name": "DatasetMinMaxColumns", "possibleTypes": null }, { "enumValues": [ - { - "name": "alignments" - }, - { - "name": "perSectionParameters" - }, - { - "name": "run" - }, { "name": "deposition" }, { - "name": "s3OmezarrDir" - }, - { - "name": "s3MrcFile" - }, - { - "name": "httpsOmezarrDir" - }, - { - "name": "httpsMrcFile" - }, - { - "name": "s3CollectionMetadata" - }, - { - "name": "httpsCollectionMetadata" - }, - { - "name": "s3AngleList" - }, - { - "name": "httpsAngleList" + "name": "fundingSources" }, { - "name": "s3GainFile" + "name": "authors" }, { - "name": "httpsGainFile" + "name": "runs" }, { - "name": "accelerationVoltage" + "name": "title" }, { - "name": "sphericalAberrationConstant" + "name": "description" }, { - "name": "microscopeManufacturer" + "name": "organismName" }, { - "name": "microscopeModel" + "name": "organismTaxid" }, { - "name": "microscopeEnergyFilter" + "name": "tissueName" }, { - "name": "microscopePhasePlate" + "name": "tissueId" }, { - "name": "microscopeImageCorrector" + "name": "cellName" }, { - "name": "microscopeAdditionalInfo" + "name": "cellTypeId" }, { - "name": "cameraManufacturer" + "name": "cellStrainName" }, { - "name": "cameraModel" + "name": "cellStrainId" }, { - "name": "tiltMin" + "name": "sampleType" }, { - "name": "tiltMax" + "name": "samplePreparation" }, { - "name": "tiltRange" + "name": "gridPreparation" }, { - "name": "tiltStep" + "name": "otherSetup" }, { - "name": "tiltingScheme" + "name": "keyPhotoUrl" }, { - "name": "tiltAxis" + "name": "keyPhotoThumbnailUrl" }, { - "name": "totalFlux" + "name": "cellComponentName" }, { - "name": "dataAcquisitionSoftware" + "name": "cellComponentId" }, { - "name": "relatedEmpiarEntry" + "name": "depositionDate" }, { - "name": "binningFromFrames" + "name": "releaseDate" }, { - "name": "tiltSeriesQuality" + "name": "lastModifiedDate" }, { - "name": "isAligned" + "name": "datasetPublications" }, { - "name": "pixelSpacing" + "name": "relatedDatabaseEntries" }, { - "name": "alignedTiltseriesBinning" + "name": "s3Prefix" }, { - "name": "framesCount" + "name": "httpsPrefix" }, { "name": "id" @@ -18051,7 +19308,7 @@ "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "TiltseriesCountColumns", + "name": "DatasetCountColumns", "possibleTypes": null }, { @@ -18084,7 +19341,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramEdge", + "name": "FrameEdge", "ofType": null } } @@ -18095,7 +19352,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramConnection", + "name": "FrameConnection", "possibleTypes": null }, { @@ -18122,7 +19379,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "Tomogram", + "name": "Frame", "ofType": null } } @@ -18131,7 +19388,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramEdge", + "name": "FrameEdge", "possibleTypes": null }, { @@ -18170,7 +19427,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", + "name": "DepositionWhereClause", "ofType": null } }, @@ -18185,23 +19442,23 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", + "name": "DepositionOrderByClause", "ofType": null } } } } ], - "name": "alignment", + "name": "deposition", "type": { "kind": "OBJECT", - "name": "Alignment", + "name": "Deposition", "ofType": null } }, { "args": [], - "name": "alignmentId", + "name": "depositionId", "type": { "kind": "SCALAR", "name": "Int", @@ -18215,7 +19472,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramAuthorWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -18230,321 +19487,342 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramAuthorOrderByClause", + "name": "RunOrderByClause", "ofType": null } } } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } } ], - "name": "authors", + "name": "run", + "type": { + "kind": "OBJECT", + "name": "Run", + "ofType": null + } + }, + { + "args": [], + "name": "runId", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "rawAngle", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "TomogramAuthorConnection", + "kind": "SCALAR", + "name": "Float", "ofType": null } } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramAuthorWhereClause", - "ofType": null - } - } - ], - "name": "authorsAggregate", + "args": [], + "name": "acquisitionOrder", "type": { - "kind": "OBJECT", - "name": "TomogramAuthorAggregate", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } + "args": [], + "name": "dose", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null } - ], - "name": "deposition", + } + }, + { + "args": [], + "name": "isGainCorrected", "type": { - "kind": "OBJECT", - "name": "Deposition", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "depositionId", + "name": "s3Prefix", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } + "args": [], + "name": "httpsPrefix", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null } - ], + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Frame", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "deposition", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + }, + { + "defaultValue": null, "name": "run", "type": { - "kind": "OBJECT", - "name": "Run", + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", "ofType": null } }, { - "args": [], - "name": "runId", + "defaultValue": null, + "name": "rawAngle", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "tomogramVoxelSpacing", + "defaultValue": null, + "name": "acquisitionOrder", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacing", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "tomogramVoxelSpacingId", + "defaultValue": null, + "name": "dose", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "name", + "defaultValue": null, + "name": "isGainCorrected", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "s3Prefix", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "httpsPrefix", + "type": { + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "FrameOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "sizeX", + "name": "aggregate", "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAggregateFunctions", + "ofType": null + } } } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "sum", + "type": { + "kind": "OBJECT", + "name": "FrameNumericalColumns", + "ofType": null + } }, { "args": [], - "name": "sizeY", + "name": "avg", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameNumericalColumns", + "ofType": null } }, { "args": [], - "name": "sizeZ", + "name": "stddev", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameNumericalColumns", + "ofType": null } }, { "args": [], - "name": "voxelSpacing", + "name": "variance", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameNumericalColumns", + "ofType": null } }, { "args": [], - "name": "fiducialAlignmentStatus", + "name": "min", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "fiducial_alignment_status_enum", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameMinMaxColumns", + "ofType": null } }, { "args": [], - "name": "reconstructionMethod", + "name": "max", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "tomogram_reconstruction_method_enum", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameMinMaxColumns", + "ofType": null } }, { "args": [], - "name": "processing", + "name": "groupBy", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "tomogram_processing_enum", - "ofType": null - } + "kind": "OBJECT", + "name": "FrameGroupByOptions", + "ofType": null } }, + { + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "FrameCountColumns", + "ofType": null + } + } + ], + "name": "count", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "tomogramVersion", + "name": "rawAngle", "type": { "kind": "SCALAR", "name": "Float", @@ -18553,65 +19831,71 @@ }, { "args": [], - "name": "processingSoftware", + "name": "acquisitionOrder", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "reconstructionSoftware", + "name": "dose", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "isCanonical", + "name": "id", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "s3OmezarrDir", + "name": "rawAngle", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "httpsOmezarrDir", + "name": "acquisitionOrder", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "s3MrcFile", + "name": "dose", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "httpsMrcFile", + "name": "s3Prefix", "type": { "kind": "SCALAR", "name": "String", @@ -18620,7 +19904,7 @@ }, { "args": [], - "name": "scale0Dimensions", + "name": "httpsPrefix", "type": { "kind": "SCALAR", "name": "String", @@ -18629,82 +19913,80 @@ }, { "args": [], - "name": "scale1Dimensions", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "scale2Dimensions", + "name": "deposition", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "DepositionGroupByOptions", "ofType": null } }, { "args": [], - "name": "ctfCorrected", + "name": "run", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "offsetX", + "name": "rawAngle", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "offsetY", + "name": "acquisitionOrder", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "offsetZ", + "name": "dose", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "keyPhotoUrl", + "name": "isGainCorrected", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "keyPhotoThumbnailUrl", + "name": "s3Prefix", "type": { "kind": "SCALAR", "name": "String", @@ -18713,7 +19995,7 @@ }, { "args": [], - "name": "neuroglancerConfig", + "name": "httpsPrefix", "type": { "kind": "SCALAR", "name": "String", @@ -18722,33 +20004,55 @@ }, { "args": [], - "name": "isStandardized", + "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } } ], "inputFields": null, - "interfaces": [ + "interfaces": [], + "kind": "OBJECT", + "name": "FrameGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "name": "deposition" }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null + "name": "run" + }, + { + "name": "rawAngle" + }, + { + "name": "acquisitionOrder" + }, + { + "name": "dose" + }, + { + "name": "isGainCorrected" + }, + { + "name": "s3Prefix" + }, + { + "name": "httpsPrefix" + }, + { + "name": "id" } ], - "kind": "OBJECT", - "name": "Tomogram", + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "FrameCountColumns", "possibleTypes": null }, { @@ -18781,7 +20085,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAuthorEdge", + "name": "TiltseriesEdge", "ofType": null } } @@ -18792,7 +20096,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorConnection", + "name": "TiltseriesConnection", "possibleTypes": null }, { @@ -18819,7 +20123,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAuthor", + "name": "Tiltseries", "ofType": null } } @@ -18828,7 +20132,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorEdge", + "name": "TiltseriesEdge", "possibleTypes": null }, { @@ -18867,7 +20171,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", + "name": "AlignmentWhereClause", "ofType": null } }, @@ -18882,596 +20186,531 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", + "name": "AlignmentOrderByClause", "ofType": null } } } - } - ], - "name": "tomogram", - "type": { - "kind": "OBJECT", - "name": "Tomogram", - "ofType": null - } - }, - { - "args": [], - "name": "tomogramId", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "authorListOrder", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [], - "name": "orcid", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "email", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationName", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationAddress", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationIdentifier", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "correspondingAuthorStatus", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "args": [], - "name": "primaryAuthorStatus", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "TomogramAuthor", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "alignment", - "type": { - "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "deposition", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "run", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tomogramVoxelSpacing", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "name", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "sizeX", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "sizeY", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "sizeZ", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "voxelSpacing", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "fiducialAlignmentStatus", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "reconstructionMethod", + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "alignments", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AlignmentConnection", + "ofType": null + } } }, { - "defaultValue": null, - "name": "processing", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AlignmentWhereClause", + "ofType": null + } + } + ], + "name": "alignmentsAggregate", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "OBJECT", + "name": "AlignmentAggregate", "ofType": null } }, { - "defaultValue": null, - "name": "tomogramVersion", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RunWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "run", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "OBJECT", + "name": "Run", "ofType": null } }, { - "defaultValue": null, - "name": "processingSoftware", + "args": [], + "name": "runId", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "defaultValue": null, - "name": "reconstructionSoftware", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "deposition", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "OBJECT", + "name": "Deposition", "ofType": null } }, { - "defaultValue": null, - "name": "isCanonical", + "args": [], + "name": "depositionId", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { - "defaultValue": null, + "args": [], "name": "s3OmezarrDir", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "httpsOmezarrDir", + "args": [], + "name": "s3MrcFile", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "s3MrcFile", + "args": [], + "name": "httpsOmezarrDir", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, + "args": [], "name": "httpsMrcFile", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "scale0Dimensions", + "args": [], + "name": "s3AngleList", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "scale1Dimensions", + "args": [], + "name": "httpsAngleList", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "scale2Dimensions", + "args": [], + "name": "accelerationVoltage", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "defaultValue": null, - "name": "ctfCorrected", + "args": [], + "name": "sphericalAberrationConstant", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "offsetX", + "args": [], + "name": "microscopeManufacturer", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "tiltseries_microscope_manufacturer_enum", + "ofType": null + } } }, { - "defaultValue": null, - "name": "offsetY", + "args": [], + "name": "microscopeModel", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "offsetZ", + "args": [], + "name": "microscopeEnergyFilter", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "keyPhotoUrl", + "args": [], + "name": "microscopePhasePlate", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "keyPhotoThumbnailUrl", + "args": [], + "name": "microscopeImageCorrector", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "neuroglancerConfig", + "args": [], + "name": "microscopeAdditionalInfo", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "isStandardized", + "args": [], + "name": "cameraManufacturer", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "run", + "args": [], + "name": "cameraModel", "type": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "voxelSpacing", + "args": [], + "name": "tiltMin", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "s3Prefix", + "args": [], + "name": "tiltMax", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "httpsPrefix", + "args": [], + "name": "tiltRange", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "tomogram", + "args": [], + "name": "tiltStep", "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "id", + "args": [], + "name": "tiltingScheme", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "authorListOrder", + "args": [], + "name": "tiltAxis", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "orcid", + "args": [], + "name": "totalFlux", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "name", + "args": [], + "name": "dataAcquisitionSoftware", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": null, - "name": "email", + "args": [], + "name": "relatedEmpiarEntry", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "affiliationName", + "args": [], + "name": "binningFromFrames", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "Float", "ofType": null } }, { - "defaultValue": null, - "name": "affiliationAddress", + "args": [], + "name": "tiltSeriesQuality", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "defaultValue": null, - "name": "affiliationIdentifier", + "args": [], + "name": "isAligned", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } } }, { - "defaultValue": null, - "name": "correspondingAuthorStatus", + "args": [], + "name": "pixelSpacing", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { - "defaultValue": null, - "name": "primaryAuthorStatus", + "args": [], + "name": "alignedTiltseriesBinning", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "Int", "ofType": null } } ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "TomogramAuthorOrderByClause", + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Tiltseries", "possibleTypes": null }, { @@ -19488,7 +20727,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "TomogramAuthorAggregateFunctions", + "name": "TiltseriesAggregateFunctions", "ofType": null } } @@ -19498,7 +20737,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorAggregate", + "name": "TiltseriesAggregate", "possibleTypes": null }, { @@ -19509,7 +20748,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "TomogramAuthorNumericalColumns", + "name": "TiltseriesNumericalColumns", "ofType": null } }, @@ -19518,7 +20757,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "TomogramAuthorNumericalColumns", + "name": "TiltseriesNumericalColumns", "ofType": null } }, @@ -19527,7 +20766,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "TomogramAuthorNumericalColumns", + "name": "TiltseriesNumericalColumns", "ofType": null } }, @@ -19536,7 +20775,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "TomogramAuthorNumericalColumns", + "name": "TiltseriesNumericalColumns", "ofType": null } }, @@ -19545,7 +20784,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "TomogramAuthorMinMaxColumns", + "name": "TiltseriesMinMaxColumns", "ofType": null } }, @@ -19554,7 +20793,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "TomogramAuthorMinMaxColumns", + "name": "TiltseriesMinMaxColumns", "ofType": null } }, @@ -19563,7 +20802,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "TomogramAuthorGroupByOptions", + "name": "TiltseriesGroupByOptions", "ofType": null } }, @@ -19583,7 +20822,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "TomogramAuthorCountColumns", + "name": "TiltseriesCountColumns", "ofType": null } } @@ -19599,7 +20838,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorAggregateFunctions", + "name": "TiltseriesAggregateFunctions", "possibleTypes": null }, { @@ -19607,7 +20846,7 @@ "fields": [ { "args": [], - "name": "id", + "name": "accelerationVoltage", "type": { "kind": "SCALAR", "name": "Int", @@ -19616,7 +20855,106 @@ }, { "args": [], - "name": "authorListOrder", + "name": "sphericalAberrationConstant", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltMin", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltMax", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltRange", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltStep", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltAxis", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "totalFlux", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "binningFromFrames", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltSeriesQuality", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "pixelSpacing", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "alignedTiltseriesBinning", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "id", "type": { "kind": "SCALAR", "name": "Int", @@ -19627,7 +20965,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorNumericalColumns", + "name": "TiltseriesNumericalColumns", "possibleTypes": null }, { @@ -19635,25 +20973,25 @@ "fields": [ { "args": [], - "name": "id", + "name": "s3OmezarrDir", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "authorListOrder", + "name": "s3MrcFile", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "orcid", + "name": "httpsOmezarrDir", "type": { "kind": "SCALAR", "name": "String", @@ -19662,7 +21000,7 @@ }, { "args": [], - "name": "name", + "name": "httpsMrcFile", "type": { "kind": "SCALAR", "name": "String", @@ -19671,7 +21009,7 @@ }, { "args": [], - "name": "email", + "name": "s3AngleList", "type": { "kind": "SCALAR", "name": "String", @@ -19680,7 +21018,7 @@ }, { "args": [], - "name": "affiliationName", + "name": "httpsAngleList", "type": { "kind": "SCALAR", "name": "String", @@ -19689,62 +21027,61 @@ }, { "args": [], - "name": "affiliationAddress", + "name": "accelerationVoltage", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "affiliationIdentifier", + "name": "sphericalAberrationConstant", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "microscopeModel", "type": { "kind": "SCALAR", "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramAuthorMinMaxColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "tomogram", + "name": "microscopeEnergyFilter", "type": { - "kind": "OBJECT", - "name": "TomogramGroupByOptions", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "id", + "name": "microscopePhasePlate", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "authorListOrder", + "name": "microscopeImageCorrector", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { "args": [], - "name": "orcid", + "name": "microscopeAdditionalInfo", "type": { "kind": "SCALAR", "name": "String", @@ -19753,7 +21090,7 @@ }, { "args": [], - "name": "name", + "name": "cameraManufacturer", "type": { "kind": "SCALAR", "name": "String", @@ -19762,7 +21099,7 @@ }, { "args": [], - "name": "email", + "name": "cameraModel", "type": { "kind": "SCALAR", "name": "String", @@ -19771,7 +21108,43 @@ }, { "args": [], - "name": "affiliationName", + "name": "tiltMin", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltMax", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltRange", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltStep", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltingScheme", "type": { "kind": "SCALAR", "name": "String", @@ -19780,7 +21153,25 @@ }, { "args": [], - "name": "affiliationAddress", + "name": "tiltAxis", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "totalFlux", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "dataAcquisitionSoftware", "type": { "kind": "SCALAR", "name": "String", @@ -19789,7 +21180,7 @@ }, { "args": [], - "name": "affiliationIdentifier", + "name": "relatedEmpiarEntry", "type": { "kind": "SCALAR", "name": "String", @@ -19798,19 +21189,46 @@ }, { "args": [], - "name": "correspondingAuthorStatus", + "name": "binningFromFrames", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Float", "ofType": null } }, { "args": [], - "name": "primaryAuthorStatus", + "name": "tiltSeriesQuality", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "pixelSpacing", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "alignedTiltseriesBinning", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", "ofType": null } } @@ -19818,7 +21236,199 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramAuthorGroupByOptions", + "name": "TiltseriesMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "alignments" + }, + { + "name": "run" + }, + { + "name": "deposition" + }, + { + "name": "s3OmezarrDir" + }, + { + "name": "s3MrcFile" + }, + { + "name": "httpsOmezarrDir" + }, + { + "name": "httpsMrcFile" + }, + { + "name": "s3AngleList" + }, + { + "name": "httpsAngleList" + }, + { + "name": "accelerationVoltage" + }, + { + "name": "sphericalAberrationConstant" + }, + { + "name": "microscopeManufacturer" + }, + { + "name": "microscopeModel" + }, + { + "name": "microscopeEnergyFilter" + }, + { + "name": "microscopePhasePlate" + }, + { + "name": "microscopeImageCorrector" + }, + { + "name": "microscopeAdditionalInfo" + }, + { + "name": "cameraManufacturer" + }, + { + "name": "cameraModel" + }, + { + "name": "tiltMin" + }, + { + "name": "tiltMax" + }, + { + "name": "tiltRange" + }, + { + "name": "tiltStep" + }, + { + "name": "tiltingScheme" + }, + { + "name": "tiltAxis" + }, + { + "name": "totalFlux" + }, + { + "name": "dataAcquisitionSoftware" + }, + { + "name": "relatedEmpiarEntry" + }, + { + "name": "binningFromFrames" + }, + { + "name": "tiltSeriesQuality" + }, + { + "name": "isAligned" + }, + { + "name": "pixelSpacing" + }, + { + "name": "alignedTiltseriesBinning" + }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "TiltseriesCountColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "pageInfo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + } + }, + { + "args": [], + "name": "edges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramEdge", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "cursor", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "node", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Tomogram", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramEdge", "possibleTypes": null }, { @@ -19826,70 +21436,69 @@ "fields": [ { "args": [], - "name": "alignment", - "type": { - "kind": "OBJECT", - "name": "AlignmentGroupByOptions", - "ofType": null - } - }, - { - "args": [], - "name": "deposition", + "name": "_id", "type": { - "kind": "OBJECT", - "name": "DepositionGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } } }, { "args": [], - "name": "run", + "name": "id", "type": { - "kind": "OBJECT", - "name": "RunGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "args": [], - "name": "tomogramVoxelSpacing", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AlignmentWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AlignmentOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "alignment", "type": { "kind": "OBJECT", - "name": "TomogramVoxelSpacingGroupByOptions", - "ofType": null - } - }, - { - "args": [], - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "sizeX", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "sizeY", - "type": { - "kind": "SCALAR", - "name": "Int", + "name": "Alignment", "ofType": null } }, { "args": [], - "name": "sizeZ", + "name": "alignmentId", "type": { "kind": "SCALAR", "name": "Int", @@ -19897,98 +21506,242 @@ } }, { - "args": [], - "name": "voxelSpacing", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "fiducialAlignmentStatus", - "type": { - "kind": "ENUM", - "name": "fiducial_alignment_status_enum", - "ofType": null - } - }, - { - "args": [], - "name": "reconstructionMethod", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramAuthorWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramAuthorOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "authors", "type": { - "kind": "ENUM", - "name": "tomogram_reconstruction_method_enum", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramAuthorConnection", + "ofType": null + } } }, { - "args": [], - "name": "processing", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramAuthorWhereClause", + "ofType": null + } + } + ], + "name": "authorsAggregate", "type": { - "kind": "ENUM", - "name": "tomogram_processing_enum", + "kind": "OBJECT", + "name": "TomogramAuthorAggregate", "ofType": null } }, { - "args": [], - "name": "tomogramVersion", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "deposition", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "Deposition", "ofType": null } }, { "args": [], - "name": "processingSoftware", + "name": "depositionId", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "args": [], - "name": "reconstructionSoftware", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RunWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "run", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Run", "ofType": null } }, { "args": [], - "name": "isCanonical", + "name": "runId", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } }, { - "args": [], - "name": "s3OmezarrDir", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "tomogramVoxelSpacing", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramVoxelSpacing", "ofType": null } }, { "args": [], - "name": "httpsOmezarrDir", + "name": "tomogramVoxelSpacingId", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "s3MrcFile", + "name": "name", "type": { "kind": "SCALAR", "name": "String", @@ -19997,79 +21750,107 @@ }, { "args": [], - "name": "httpsMrcFile", + "name": "sizeX", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "scale0Dimensions", + "name": "sizeY", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "scale1Dimensions", + "name": "sizeZ", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "scale2Dimensions", + "name": "voxelSpacing", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } } }, { "args": [], - "name": "ctfCorrected", + "name": "fiducialAlignmentStatus", "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "fiducial_alignment_status_enum", + "ofType": null + } } }, { "args": [], - "name": "offsetX", + "name": "reconstructionMethod", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "tomogram_reconstruction_method_enum", + "ofType": null + } } }, { "args": [], - "name": "offsetY", + "name": "processing", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "tomogram_processing_enum", + "ofType": null + } } }, { "args": [], - "name": "offsetZ", + "name": "tomogramVersion", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null } }, { "args": [], - "name": "keyPhotoUrl", + "name": "processingSoftware", "type": { "kind": "SCALAR", "name": "String", @@ -20078,25 +21859,29 @@ }, { "args": [], - "name": "keyPhotoThumbnailUrl", + "name": "reconstructionSoftware", "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "neuroglancerConfig", + "name": "isPortalStandard", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "isStandardized", + "name": "isAuthorSubmitted", "type": { "kind": "SCALAR", "name": "Boolean", @@ -20105,44 +21890,25 @@ }, { "args": [], - "name": "id", + "name": "isVisualizationDefault", "type": { "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "run", - "type": { - "kind": "OBJECT", - "name": "RunGroupByOptions", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "voxelSpacing", + "name": "s3OmezarrDir", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "s3Prefix", + "name": "httpsOmezarrDir", "type": { "kind": "SCALAR", "name": "String", @@ -20151,7 +21917,7 @@ }, { "args": [], - "name": "httpsPrefix", + "name": "s3MrcFile", "type": { "kind": "SCALAR", "name": "String", @@ -20160,82 +21926,65 @@ }, { "args": [], - "name": "id", + "name": "httpsMrcFile", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "tomogram" - }, - { - "name": "id" - }, - { - "name": "authorListOrder" - }, - { - "name": "orcid" - }, - { - "name": "name" - }, - { - "name": "email" + } }, { - "name": "affiliationName" + "args": [], + "name": "scale0Dimensions", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "affiliationAddress" + "args": [], + "name": "scale1Dimensions", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "affiliationIdentifier" + "args": [], + "name": "scale2Dimensions", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "correspondingAuthorStatus" + "args": [], + "name": "ctfCorrected", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, - { - "name": "primaryAuthorStatus" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "TomogramAuthorCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "_id", + "name": "offsetX", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "GlobalID", + "name": "Int", "ofType": null } } }, { "args": [], - "name": "id", + "name": "offsetY", "type": { "kind": "NON_NULL", "name": null, @@ -20247,275 +21996,98 @@ } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "annotationFiles", + "args": [], + "name": "offsetZ", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "AnnotationFileConnection", + "kind": "SCALAR", + "name": "Int", "ofType": null } } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationFileWhereClause", - "ofType": null - } - } - ], - "name": "annotationFilesAggregate", + "args": [], + "name": "keyPhotoUrl", "type": { - "kind": "OBJECT", - "name": "AnnotationFileAggregate", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "RunWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RunOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "run", + "args": [], + "name": "keyPhotoThumbnailUrl", "type": { - "kind": "OBJECT", - "name": "Run", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "runId", + "name": "neuroglancerConfig", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TomogramOrderByClause", - "ofType": null - } - } - } - }, - { - "defaultValue": "null", - "name": "before", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "after", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "first", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "last", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "name": "tomograms", + "args": [], + "name": "publications", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramConnection", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramWhereClause", - "ofType": null - } - } - ], - "name": "tomogramsAggregate", + "args": [], + "name": "relatedDatabaseEntries", "type": { - "kind": "OBJECT", - "name": "TomogramAggregate", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "voxelSpacing", + "name": "depositionDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Float", + "name": "DateTime", "ofType": null } } }, { "args": [], - "name": "s3Prefix", + "name": "releaseDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } } }, { "args": [], - "name": "httpsPrefix", + "name": "lastModifiedDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } } @@ -20535,154 +22107,79 @@ } ], "kind": "OBJECT", - "name": "TomogramVoxelSpacing", + "name": "Tomogram", "possibleTypes": null }, { "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "alignment", - "type": { - "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "annotationShape", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationShapeOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tomogramVoxelSpacing", - "type": { - "kind": "INPUT_OBJECT", - "name": "TomogramVoxelSpacingOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "format", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "s3Path", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "httpsPath", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "isVisualizationDefault", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, + "fields": [ { - "defaultValue": null, - "name": "source", + "args": [], + "name": "pageInfo", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } } }, { - "defaultValue": null, - "name": "id", + "args": [], + "name": "edges", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramAuthorEdge", + "ofType": null + } + } + } } } ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "AnnotationFileOrderByClause", + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramAuthorConnection", "possibleTypes": null }, { "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "annotation", - "type": { - "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", - "ofType": null - } - }, + "fields": [ { - "defaultValue": null, - "name": "shapeType", + "args": [], + "name": "cursor", "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "AnnotationShapeOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "aggregate", + "name": "node", "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AnnotationFileAggregateFunctions", - "ofType": null - } + "kind": "OBJECT", + "name": "TomogramAuthor", + "ofType": null } } } @@ -20690,7 +22187,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationFileAggregate", + "name": "TomogramAuthorEdge", "possibleTypes": null }, { @@ -20698,127 +22195,131 @@ "fields": [ { "args": [], - "name": "sum", + "name": "_id", "type": { - "kind": "OBJECT", - "name": "AnnotationFileNumericalColumns", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } } }, { "args": [], - "name": "avg", + "name": "id", "type": { - "kind": "OBJECT", - "name": "AnnotationFileNumericalColumns", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { - "args": [], - "name": "stddev", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "tomogram", "type": { "kind": "OBJECT", - "name": "AnnotationFileNumericalColumns", + "name": "Tomogram", "ofType": null } }, { "args": [], - "name": "variance", + "name": "tomogramId", "type": { - "kind": "OBJECT", - "name": "AnnotationFileNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "min", + "name": "authorListOrder", "type": { - "kind": "OBJECT", - "name": "AnnotationFileMinMaxColumns", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "max", + "name": "orcid", "type": { - "kind": "OBJECT", - "name": "AnnotationFileMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "groupBy", + "name": "name", "type": { - "kind": "OBJECT", - "name": "AnnotationFileGroupByOptions", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "AnnotationFileCountColumns", - "ofType": null - } - } - ], - "name": "count", + "args": [], + "name": "email", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationFileAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "id", + "name": "affiliationName", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationFileNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "format", + "name": "affiliationAddress", "type": { "kind": "SCALAR", "name": "String", @@ -20827,7 +22328,7 @@ }, { "args": [], - "name": "s3Path", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", "name": "String", @@ -20836,772 +22337,682 @@ }, { "args": [], - "name": "httpsPath", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "id", + "name": "primaryAuthorStatus", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } } ], "inputFields": null, - "interfaces": [], + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], "kind": "OBJECT", - "name": "AnnotationFileMinMaxColumns", + "name": "TomogramAuthor", "possibleTypes": null }, { "enumValues": null, - "fields": [ + "fields": null, + "inputFields": [ { - "args": [], + "defaultValue": null, "name": "alignment", "type": { - "kind": "OBJECT", - "name": "AlignmentGroupByOptions", + "kind": "INPUT_OBJECT", + "name": "AlignmentOrderByClause", "ofType": null } }, { - "args": [], - "name": "annotationShape", + "defaultValue": null, + "name": "deposition", "type": { - "kind": "OBJECT", - "name": "AnnotationShapeGroupByOptions", + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", "ofType": null } }, { - "args": [], - "name": "tomogramVoxelSpacing", + "defaultValue": null, + "name": "run", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingGroupByOptions", + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", "ofType": null } }, { - "args": [], - "name": "format", + "defaultValue": null, + "name": "tomogramVoxelSpacing", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingOrderByClause", "ofType": null } }, { - "args": [], - "name": "s3Path", + "defaultValue": null, + "name": "name", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "httpsPath", + "defaultValue": null, + "name": "sizeX", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "isVisualizationDefault", + "defaultValue": null, + "name": "sizeY", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "source", + "defaultValue": null, + "name": "sizeZ", "type": { "kind": "ENUM", - "name": "annotation_file_source_enum", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "voxelSpacing", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationFileGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { - "args": [], - "name": "annotation", + "defaultValue": null, + "name": "fiducialAlignmentStatus", "type": { - "kind": "OBJECT", - "name": "AnnotationGroupByOptions", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "shapeType", + "defaultValue": null, + "name": "reconstructionMethod", "type": { "kind": "ENUM", - "name": "annotation_file_shape_type_enum", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "processing", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "AnnotationShapeGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "alignment" }, { - "name": "annotationShape" + "defaultValue": null, + "name": "tomogramVersion", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "tomogramVoxelSpacing" + "defaultValue": null, + "name": "processingSoftware", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "format" + "defaultValue": null, + "name": "reconstructionSoftware", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "s3Path" + "defaultValue": null, + "name": "isPortalStandard", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "httpsPath" + "defaultValue": null, + "name": "isAuthorSubmitted", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "isVisualizationDefault" + "defaultValue": null, + "name": "isVisualizationDefault", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "source" + "defaultValue": null, + "name": "s3OmezarrDir", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } }, { - "name": "id" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "AnnotationFileCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + "defaultValue": null, + "name": "httpsOmezarrDir", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, { - "args": [], - "name": "aggregate", + "defaultValue": null, + "name": "s3MrcFile", "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramAggregateFunctions", - "ofType": null - } - } + "kind": "ENUM", + "name": "orderBy", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramAggregate", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { - "args": [], - "name": "sum", + "defaultValue": null, + "name": "httpsMrcFile", "type": { - "kind": "OBJECT", - "name": "TomogramNumericalColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "avg", + "defaultValue": null, + "name": "scale0Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramNumericalColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "stddev", + "defaultValue": null, + "name": "scale1Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramNumericalColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "variance", + "defaultValue": null, + "name": "scale2Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramNumericalColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "min", + "defaultValue": null, + "name": "ctfCorrected", "type": { - "kind": "OBJECT", - "name": "TomogramMinMaxColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "max", + "defaultValue": null, + "name": "offsetX", "type": { - "kind": "OBJECT", - "name": "TomogramMinMaxColumns", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "groupBy", + "defaultValue": null, + "name": "offsetY", "type": { - "kind": "OBJECT", - "name": "TomogramGroupByOptions", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "TomogramCountColumns", - "ofType": null - } - } - ], - "name": "count", + "defaultValue": null, + "name": "offsetZ", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { - "args": [], - "name": "sizeX", + "defaultValue": null, + "name": "keyPhotoUrl", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "sizeY", + "defaultValue": null, + "name": "keyPhotoThumbnailUrl", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "sizeZ", + "defaultValue": null, + "name": "neuroglancerConfig", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "voxelSpacing", + "defaultValue": null, + "name": "publications", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "tomogramVersion", + "defaultValue": null, + "name": "relatedDatabaseEntries", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "offsetX", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "offsetY", + "defaultValue": null, + "name": "depositionDate", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "offsetZ", + "defaultValue": null, + "name": "releaseDate", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "id", + "defaultValue": null, + "name": "lastModifiedDate", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } } ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramNumericalColumns", + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", "possibleTypes": null }, { "enumValues": null, - "fields": [ + "fields": null, + "inputFields": [ { - "args": [], - "name": "name", + "defaultValue": null, + "name": "run", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", "ofType": null } }, { - "args": [], - "name": "sizeX", + "defaultValue": null, + "name": "voxelSpacing", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "sizeY", + "defaultValue": null, + "name": "s3Prefix", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "sizeZ", + "defaultValue": null, + "name": "httpsPrefix", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "voxelSpacing", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { - "args": [], - "name": "tomogramVersion", + "defaultValue": null, + "name": "tomogram", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", "ofType": null } }, { - "args": [], - "name": "processingSoftware", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "reconstructionSoftware", + "defaultValue": null, + "name": "authorListOrder", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "s3OmezarrDir", + "defaultValue": null, + "name": "orcid", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "httpsOmezarrDir", + "defaultValue": null, + "name": "name", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "s3MrcFile", + "defaultValue": null, + "name": "email", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "httpsMrcFile", + "defaultValue": null, + "name": "affiliationName", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "scale0Dimensions", + "defaultValue": null, + "name": "affiliationAddress", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "scale1Dimensions", + "defaultValue": null, + "name": "affiliationIdentifier", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "scale2Dimensions", + "defaultValue": null, + "name": "correspondingAuthorStatus", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "orderBy", "ofType": null } }, { - "args": [], - "name": "offsetX", + "defaultValue": null, + "name": "primaryAuthorStatus", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "ENUM", + "name": "orderBy", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TomogramAuthorOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "offsetY", + "name": "aggregate", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramAuthorAggregateFunctions", + "ofType": null + } + } } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramAuthorAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "offsetZ", + "name": "sum", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "TomogramAuthorNumericalColumns", "ofType": null } }, { "args": [], - "name": "keyPhotoUrl", + "name": "avg", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramAuthorNumericalColumns", "ofType": null } }, { "args": [], - "name": "keyPhotoThumbnailUrl", + "name": "stddev", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramAuthorNumericalColumns", "ofType": null } }, { "args": [], - "name": "neuroglancerConfig", + "name": "variance", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramAuthorNumericalColumns", "ofType": null } }, { "args": [], - "name": "id", + "name": "min", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "TomogramAuthorMinMaxColumns", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramMinMaxColumns", - "possibleTypes": null - }, - { - "enumValues": [ - { - "name": "alignment" - }, - { - "name": "authors" - }, - { - "name": "deposition" - }, - { - "name": "run" - }, - { - "name": "tomogramVoxelSpacing" - }, - { - "name": "name" - }, - { - "name": "sizeX" - }, - { - "name": "sizeY" - }, - { - "name": "sizeZ" - }, - { - "name": "voxelSpacing" - }, - { - "name": "fiducialAlignmentStatus" }, - { - "name": "reconstructionMethod" - }, - { - "name": "processing" - }, - { - "name": "tomogramVersion" - }, - { - "name": "processingSoftware" - }, - { - "name": "reconstructionSoftware" - }, - { - "name": "isCanonical" - }, - { - "name": "s3OmezarrDir" - }, - { - "name": "httpsOmezarrDir" - }, - { - "name": "s3MrcFile" - }, - { - "name": "httpsMrcFile" - }, - { - "name": "scale0Dimensions" - }, - { - "name": "scale1Dimensions" - }, - { - "name": "scale2Dimensions" - }, - { - "name": "ctfCorrected" - }, - { - "name": "offsetX" - }, - { - "name": "offsetY" - }, - { - "name": "offsetZ" - }, - { - "name": "keyPhotoUrl" - }, - { - "name": "keyPhotoThumbnailUrl" - }, - { - "name": "neuroglancerConfig" - }, - { - "name": "isStandardized" - }, - { - "name": "id" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "TomogramCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "pageInfo", + "name": "max", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + "kind": "OBJECT", + "name": "TomogramAuthorMinMaxColumns", + "ofType": null } }, { "args": [], - "name": "edges", + "name": "groupBy", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DepositionTypeEdge", - "ofType": null - } + "kind": "OBJECT", + "name": "TomogramAuthorGroupByOptions", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "TomogramAuthorCountColumns", + "ofType": null } } + ], + "name": "count", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DepositionTypeConnection", + "name": "TomogramAuthorAggregateFunctions", "possibleTypes": null }, { @@ -21609,204 +23020,109 @@ "fields": [ { "args": [], - "name": "cursor", + "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "node", + "name": "authorListOrder", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DepositionType", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DepositionTypeEdge", + "name": "TomogramAuthorNumericalColumns", "possibleTypes": null }, { "enumValues": null, "fields": [ - { - "args": [], - "name": "_id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } - } - }, { "args": [], "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "deposition", - "type": { - "kind": "OBJECT", - "name": "Deposition", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "depositionId", + "name": "authorListOrder", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, { "args": [], - "name": "type", + "name": "orcid", "type": { - "kind": "ENUM", - "name": "deposition_types_enum", + "kind": "SCALAR", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "DepositionType", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ + "args": [], + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, { - "defaultValue": null, - "name": "deposition", + "args": [], + "name": "email", "type": { - "kind": "INPUT_OBJECT", - "name": "DepositionOrderByClause", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "type", + "args": [], + "name": "affiliationName", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "id", + "args": [], + "name": "affiliationAddress", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "DepositionTypeOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "aggregate", + "name": "affiliationIdentifier", "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DepositionTypeAggregateFunctions", - "ofType": null - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DepositionTypeAggregate", + "name": "TomogramAuthorMinMaxColumns", "possibleTypes": null }, { @@ -21814,130 +23130,100 @@ "fields": [ { "args": [], - "name": "sum", + "name": "tomogram", "type": { "kind": "OBJECT", - "name": "DepositionTypeNumericalColumns", + "name": "TomogramGroupByOptions", "ofType": null } }, { "args": [], - "name": "avg", + "name": "id", "type": { - "kind": "OBJECT", - "name": "DepositionTypeNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "stddev", + "name": "authorListOrder", "type": { - "kind": "OBJECT", - "name": "DepositionTypeNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "variance", + "name": "orcid", "type": { - "kind": "OBJECT", - "name": "DepositionTypeNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "min", + "name": "name", "type": { - "kind": "OBJECT", - "name": "DepositionTypeMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "max", + "name": "email", "type": { - "kind": "OBJECT", - "name": "DepositionTypeMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "groupBy", + "name": "affiliationName", "type": { - "kind": "OBJECT", - "name": "DepositionTypeGroupByOptions", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "DepositionTypeCountColumns", - "ofType": null - } - } - ], - "name": "count", + "args": [], + "name": "affiliationAddress", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DepositionTypeAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "id", + "name": "affiliationIdentifier", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DepositionTypeNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "id", + "name": "correspondingAuthorStatus", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", + "ofType": null + } + }, + { + "args": [], + "name": "primaryAuthorStatus", + "type": { + "kind": "SCALAR", + "name": "Boolean", "ofType": null } } @@ -21945,12 +23231,21 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DepositionTypeMinMaxColumns", + "name": "TomogramAuthorGroupByOptions", "possibleTypes": null }, { "enumValues": null, "fields": [ + { + "args": [], + "name": "alignment", + "type": { + "kind": "OBJECT", + "name": "AlignmentGroupByOptions", + "ofType": null + } + }, { "args": [], "name": "deposition", @@ -21962,415 +23257,292 @@ }, { "args": [], - "name": "type", + "name": "run", "type": { - "kind": "ENUM", - "name": "deposition_types_enum", + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "id", + "name": "tomogramVoxelSpacing", + "type": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingGroupByOptions", + "ofType": null + } + }, + { + "args": [], + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "name": "sizeX", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DepositionTypeGroupByOptions", - "possibleTypes": null - }, - { - "enumValues": [ + }, { - "name": "deposition" + "args": [], + "name": "sizeY", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, { - "name": "type" + "args": [], + "name": "sizeZ", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, { - "name": "id" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "DepositionTypeCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + "args": [], + "name": "voxelSpacing", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, { "args": [], - "name": "pageInfo", + "name": "fiducialAlignmentStatus", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + "kind": "ENUM", + "name": "fiducial_alignment_status_enum", + "ofType": null } }, { "args": [], - "name": "edges", + "name": "reconstructionMethod", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetFundingEdge", - "ofType": null - } - } - } + "kind": "ENUM", + "name": "tomogram_reconstruction_method_enum", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetFundingConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "cursor", + "name": "processing", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "ENUM", + "name": "tomogram_processing_enum", + "ofType": null } }, { "args": [], - "name": "node", + "name": "tomogramVersion", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetFunding", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetFundingEdge", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "_id", + "name": "processingSoftware", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GlobalID", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "id", + "name": "reconstructionSoftware", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { - "args": [ - { - "defaultValue": "null", - "name": "where", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetWhereClause", - "ofType": null - } - }, - { - "defaultValue": "[]", - "name": "orderBy", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", - "ofType": null - } - } - } - } - ], - "name": "dataset", + "args": [], + "name": "isPortalStandard", "type": { - "kind": "OBJECT", - "name": "Dataset", + "kind": "SCALAR", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "datasetId", + "name": "isAuthorSubmitted", "type": { "kind": "SCALAR", - "name": "Int", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "fundingAgencyName", + "name": "isVisualizationDefault", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "grantId", + "name": "s3OmezarrDir", "type": { "kind": "SCALAR", "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [ + }, { - "kind": "INTERFACE", - "name": "EntityInterface", - "ofType": null + "args": [], + "name": "httpsOmezarrDir", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "kind": "OBJECT", - "name": "DatasetFunding", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ + "args": [], + "name": "s3MrcFile", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, { - "defaultValue": null, - "name": "dataset", + "args": [], + "name": "httpsMrcFile", "type": { - "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "fundingAgencyName", + "args": [], + "name": "scale0Dimensions", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "grantId", + "args": [], + "name": "scale1Dimensions", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": null, - "name": "id", + "args": [], + "name": "scale2Dimensions", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "SCALAR", + "name": "String", "ofType": null } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "DatasetFundingOrderByClause", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "aggregate", + "name": "ctfCorrected", "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetFundingAggregateFunctions", - "ofType": null - } - } + "kind": "SCALAR", + "name": "Boolean", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetFundingAggregate", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "sum", + "name": "offsetX", "type": { - "kind": "OBJECT", - "name": "DatasetFundingNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "avg", + "name": "offsetY", "type": { - "kind": "OBJECT", - "name": "DatasetFundingNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "stddev", + "name": "offsetZ", "type": { - "kind": "OBJECT", - "name": "DatasetFundingNumericalColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "variance", + "name": "keyPhotoUrl", "type": { - "kind": "OBJECT", - "name": "DatasetFundingNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "min", + "name": "keyPhotoThumbnailUrl", "type": { - "kind": "OBJECT", - "name": "DatasetFundingMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "max", + "name": "neuroglancerConfig", "type": { - "kind": "OBJECT", - "name": "DatasetFundingMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "groupBy", + "name": "publications", "type": { - "kind": "OBJECT", - "name": "DatasetFundingGroupByOptions", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "DatasetFundingCountColumns", - "ofType": null - } - } - ], - "name": "count", + "args": [], + "name": "relatedDatabaseEntries", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetFundingAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], "name": "id", @@ -22379,41 +23551,31 @@ "name": "Int", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetFundingNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "fundingAgencyName", + "name": "depositionDate", "type": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "grantId", + "name": "releaseDate", "type": { "kind": "SCALAR", - "name": "String", + "name": "DateTime", "ofType": null } }, { "args": [], - "name": "id", + "name": "lastModifiedDate", "type": { "kind": "SCALAR", - "name": "Int", + "name": "DateTime", "ofType": null } } @@ -22421,7 +23583,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetFundingMinMaxColumns", + "name": "TomogramGroupByOptions", "possibleTypes": null }, { @@ -22429,16 +23591,25 @@ "fields": [ { "args": [], - "name": "dataset", + "name": "run", "type": { "kind": "OBJECT", - "name": "DatasetGroupByOptions", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "fundingAgencyName", + "name": "voxelSpacing", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "s3Prefix", "type": { "kind": "SCALAR", "name": "String", @@ -22447,7 +23618,7 @@ }, { "args": [], - "name": "grantId", + "name": "httpsPrefix", "type": { "kind": "SCALAR", "name": "String", @@ -22467,29 +23638,50 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetFundingGroupByOptions", + "name": "TomogramVoxelSpacingGroupByOptions", "possibleTypes": null }, { "enumValues": [ { - "name": "dataset" + "name": "tomogram" }, { - "name": "fundingAgencyName" + "name": "id" }, { - "name": "grantId" + "name": "authorListOrder" }, { - "name": "id" + "name": "orcid" + }, + { + "name": "name" + }, + { + "name": "email" + }, + { + "name": "affiliationName" + }, + { + "name": "affiliationAddress" + }, + { + "name": "affiliationIdentifier" + }, + { + "name": "correspondingAuthorStatus" + }, + { + "name": "primaryAuthorStatus" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "DatasetFundingCountColumns", + "name": "TomogramAuthorCountColumns", "possibleTypes": null }, { @@ -22497,108 +23689,123 @@ "fields": [ { "args": [], - "name": "pageInfo", + "name": "_id", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PageInfo", + "kind": "SCALAR", + "name": "GlobalID", "ofType": null } } }, { "args": [], - "name": "edges", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetAuthorEdge", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetAuthorConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "cursor", + "name": "id", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } } }, { - "args": [], - "name": "node", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DatasetAuthor", - "ofType": null + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "DatasetAuthorEdge", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "_id", + ], + "name": "annotationFiles", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "GlobalID", + "kind": "OBJECT", + "name": "AnnotationFileConnection", "ofType": null } } }, { - "args": [], - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "AnnotationFileWhereClause", + "ofType": null + } } + ], + "name": "annotationFilesAggregate", + "type": { + "kind": "OBJECT", + "name": "AnnotationFileAggregate", + "ofType": null } }, { @@ -22608,7 +23815,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "DatasetWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -22623,23 +23830,23 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", + "name": "RunOrderByClause", "ofType": null } } } } ], - "name": "dataset", + "name": "run", "type": { "kind": "OBJECT", - "name": "Dataset", + "name": "Run", "ofType": null } }, { "args": [], - "name": "datasetId", + "name": "runId", "type": { "kind": "SCALAR", "name": "Int", @@ -22647,92 +23854,137 @@ } }, { - "args": [], - "name": "authorListOrder", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TomogramOrderByClause", + "ofType": null + } + } + } + }, + { + "defaultValue": "null", + "name": "before", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "after", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "last", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "name": "tomograms", "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "TomogramConnection", "ofType": null } } }, { - "args": [], - "name": "orcid", + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TomogramWhereClause", + "ofType": null + } + } + ], + "name": "tomogramsAggregate", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramAggregate", "ofType": null } }, { "args": [], - "name": "name", + "name": "voxelSpacing", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } } }, { "args": [], - "name": "email", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationName", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationAddress", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "affiliationIdentifier", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "correspondingAuthorStatus", + "name": "s3Prefix", "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "primaryAuthorStatus", + "name": "httpsPrefix", "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } } ], @@ -22750,7 +24002,7 @@ } ], "kind": "OBJECT", - "name": "DatasetAuthor", + "name": "TomogramVoxelSpacing", "possibleTypes": null }, { @@ -22759,52 +24011,34 @@ "inputFields": [ { "defaultValue": null, - "name": "dataset", + "name": "alignment", "type": { "kind": "INPUT_OBJECT", - "name": "DatasetOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "authorListOrder", - "type": { - "kind": "ENUM", - "name": "orderBy", + "name": "AlignmentOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "orcid", + "name": "annotationShape", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "AnnotationShapeOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "name", + "name": "tomogramVoxelSpacing", "type": { - "kind": "ENUM", - "name": "orderBy", + "kind": "INPUT_OBJECT", + "name": "TomogramVoxelSpacingOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "email", + "name": "format", "type": { "kind": "ENUM", "name": "orderBy", @@ -22813,7 +24047,7 @@ }, { "defaultValue": null, - "name": "affiliationName", + "name": "s3Path", "type": { "kind": "ENUM", "name": "orderBy", @@ -22822,7 +24056,7 @@ }, { "defaultValue": null, - "name": "affiliationAddress", + "name": "httpsPath", "type": { "kind": "ENUM", "name": "orderBy", @@ -22831,7 +24065,7 @@ }, { "defaultValue": null, - "name": "affiliationIdentifier", + "name": "isVisualizationDefault", "type": { "kind": "ENUM", "name": "orderBy", @@ -22840,7 +24074,7 @@ }, { "defaultValue": null, - "name": "correspondingAuthorStatus", + "name": "source", "type": { "kind": "ENUM", "name": "orderBy", @@ -22849,7 +24083,7 @@ }, { "defaultValue": null, - "name": "primaryAuthorStatus", + "name": "id", "type": { "kind": "ENUM", "name": "orderBy", @@ -22859,7 +24093,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "DatasetAuthorOrderByClause", + "name": "AnnotationFileOrderByClause", "possibleTypes": null }, { @@ -22876,7 +24110,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "DatasetAuthorAggregateFunctions", + "name": "AnnotationFileAggregateFunctions", "ofType": null } } @@ -22886,7 +24120,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAuthorAggregate", + "name": "AnnotationFileAggregate", "possibleTypes": null }, { @@ -22897,7 +24131,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "DatasetAuthorNumericalColumns", + "name": "AnnotationFileNumericalColumns", "ofType": null } }, @@ -22906,7 +24140,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "DatasetAuthorNumericalColumns", + "name": "AnnotationFileNumericalColumns", "ofType": null } }, @@ -22915,7 +24149,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "DatasetAuthorNumericalColumns", + "name": "AnnotationFileNumericalColumns", "ofType": null } }, @@ -22924,7 +24158,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "DatasetAuthorNumericalColumns", + "name": "AnnotationFileNumericalColumns", "ofType": null } }, @@ -22933,7 +24167,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "DatasetAuthorMinMaxColumns", + "name": "AnnotationFileMinMaxColumns", "ofType": null } }, @@ -22942,7 +24176,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "DatasetAuthorMinMaxColumns", + "name": "AnnotationFileMinMaxColumns", "ofType": null } }, @@ -22951,7 +24185,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "DatasetAuthorGroupByOptions", + "name": "AnnotationFileGroupByOptions", "ofType": null } }, @@ -22971,7 +24205,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "DatasetAuthorCountColumns", + "name": "AnnotationFileCountColumns", "ofType": null } } @@ -22987,7 +24221,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAuthorAggregateFunctions", + "name": "AnnotationFileAggregateFunctions", "possibleTypes": null }, { @@ -23001,21 +24235,12 @@ "name": "Int", "ofType": null } - }, - { - "args": [], - "name": "authorListOrder", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAuthorNumericalColumns", + "name": "AnnotationFileNumericalColumns", "possibleTypes": null }, { @@ -23023,43 +24248,7 @@ "fields": [ { "args": [], - "name": "id", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "authorListOrder", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "orcid", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "email", + "name": "format", "type": { "kind": "SCALAR", "name": "String", @@ -23068,7 +24257,7 @@ }, { "args": [], - "name": "affiliationName", + "name": "s3Path", "type": { "kind": "SCALAR", "name": "String", @@ -23077,7 +24266,7 @@ }, { "args": [], - "name": "affiliationAddress", + "name": "httpsPath", "type": { "kind": "SCALAR", "name": "String", @@ -23086,10 +24275,10 @@ }, { "args": [], - "name": "affiliationIdentifier", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } } @@ -23097,7 +24286,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAuthorMinMaxColumns", + "name": "AnnotationFileMinMaxColumns", "possibleTypes": null }, { @@ -23105,52 +24294,34 @@ "fields": [ { "args": [], - "name": "dataset", + "name": "alignment", "type": { "kind": "OBJECT", - "name": "DatasetGroupByOptions", - "ofType": null - } - }, - { - "args": [], - "name": "id", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "args": [], - "name": "authorListOrder", - "type": { - "kind": "SCALAR", - "name": "Int", + "name": "AlignmentGroupByOptions", "ofType": null } }, { "args": [], - "name": "orcid", + "name": "annotationShape", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "AnnotationShapeGroupByOptions", "ofType": null } }, { "args": [], - "name": "name", + "name": "tomogramVoxelSpacing", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "TomogramVoxelSpacingGroupByOptions", "ofType": null } }, { "args": [], - "name": "email", + "name": "format", "type": { "kind": "SCALAR", "name": "String", @@ -23159,7 +24330,7 @@ }, { "args": [], - "name": "affiliationName", + "name": "s3Path", "type": { "kind": "SCALAR", "name": "String", @@ -23168,7 +24339,7 @@ }, { "args": [], - "name": "affiliationAddress", + "name": "httpsPath", "type": { "kind": "SCALAR", "name": "String", @@ -23177,28 +24348,28 @@ }, { "args": [], - "name": "affiliationIdentifier", + "name": "isVisualizationDefault", "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null } }, { "args": [], - "name": "correspondingAuthorStatus", + "name": "source", "type": { - "kind": "SCALAR", - "name": "Boolean", + "kind": "ENUM", + "name": "annotation_file_source_enum", "ofType": null } }, { "args": [], - "name": "primaryAuthorStatus", + "name": "id", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } } @@ -23206,130 +24377,44 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "DatasetAuthorGroupByOptions", + "name": "AnnotationFileGroupByOptions", "possibleTypes": null }, { "enumValues": [ { - "name": "dataset" - }, - { - "name": "id" - }, - { - "name": "authorListOrder" + "name": "alignment" }, { - "name": "orcid" + "name": "annotationShape" }, { - "name": "name" + "name": "tomogramVoxelSpacing" }, { - "name": "email" + "name": "format" }, { - "name": "affiliationName" + "name": "s3Path" }, { - "name": "affiliationAddress" + "name": "httpsPath" }, { - "name": "affiliationIdentifier" + "name": "isVisualizationDefault" }, { - "name": "correspondingAuthorStatus" + "name": "source" }, { - "name": "primaryAuthorStatus" + "name": "id" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "DatasetAuthorCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "pageInfo", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - } - }, - { - "args": [], - "name": "edges", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RunEdge", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "RunConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ - { - "args": [], - "name": "cursor", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "node", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Run", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "RunEdge", + "name": "AnnotationFileCountColumns", "possibleTypes": null }, { @@ -23346,7 +24431,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "RunAggregateFunctions", + "name": "TomogramAggregateFunctions", "ofType": null } } @@ -23356,7 +24441,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "RunAggregate", + "name": "TomogramAggregate", "possibleTypes": null }, { @@ -23367,7 +24452,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "RunNumericalColumns", + "name": "TomogramNumericalColumns", "ofType": null } }, @@ -23376,7 +24461,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "RunNumericalColumns", + "name": "TomogramNumericalColumns", "ofType": null } }, @@ -23385,7 +24470,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "RunNumericalColumns", + "name": "TomogramNumericalColumns", "ofType": null } }, @@ -23394,7 +24479,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "RunNumericalColumns", + "name": "TomogramNumericalColumns", "ofType": null } }, @@ -23403,7 +24488,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "RunMinMaxColumns", + "name": "TomogramMinMaxColumns", "ofType": null } }, @@ -23412,7 +24497,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "RunMinMaxColumns", + "name": "TomogramMinMaxColumns", "ofType": null } }, @@ -23421,7 +24506,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "RunGroupByOptions", + "name": "TomogramGroupByOptions", "ofType": null } }, @@ -23441,7 +24526,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "RunCountColumns", + "name": "TomogramCountColumns", "ofType": null } } @@ -23457,7 +24542,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "RunAggregateFunctions", + "name": "TomogramAggregateFunctions", "possibleTypes": null }, { @@ -23465,47 +24550,73 @@ "fields": [ { "args": [], - "name": "id", + "name": "sizeX", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "RunNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "name", + "name": "sizeY", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "s3Prefix", + "name": "sizeZ", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "httpsPrefix", + "name": "voxelSpacing", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tomogramVersion", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "offsetX", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "offsetY", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "offsetZ", + "type": { + "kind": "SCALAR", + "name": "Int", "ofType": null } }, @@ -23522,303 +24633,204 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "RunMinMaxColumns", + "name": "TomogramNumericalColumns", "possibleTypes": null }, { - "enumValues": [ - { - "name": "alignments" - }, - { - "name": "annotations" - }, - { - "name": "dataset" - }, - { - "name": "frames" - }, - { - "name": "tiltseries" - }, - { - "name": "tomogramVoxelSpacings" - }, + "enumValues": null, + "fields": [ { - "name": "tomograms" + "args": [], + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, { - "name": "name" + "args": [], + "name": "sizeX", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, { - "name": "s3Prefix" + "args": [], + "name": "sizeY", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, { - "name": "httpsPrefix" + "args": [], + "name": "sizeZ", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, - { - "name": "id" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "RunCountColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ { "args": [], - "name": "pageInfo", + "name": "voxelSpacing", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "args": [], - "name": "edges", + "name": "tomogramVersion", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingEdge", - "ofType": null - } - } - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingConnection", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "cursor", + "name": "processingSoftware", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, { "args": [], - "name": "node", + "name": "reconstructionSoftware", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacing", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingEdge", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "aggregate", + "name": "s3OmezarrDir", "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingAggregateFunctions", - "ofType": null - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingAggregate", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, + { + "args": [], + "name": "httpsOmezarrDir", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, { "args": [], - "name": "sum", + "name": "s3MrcFile", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "avg", + "name": "httpsMrcFile", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "stddev", + "name": "scale0Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "variance", + "name": "scale1Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingNumericalColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "min", + "name": "scale2Dimensions", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingMinMaxColumns", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { "args": [], - "name": "max", + "name": "offsetX", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingMinMaxColumns", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { "args": [], - "name": "groupBy", + "name": "offsetY", "type": { - "kind": "OBJECT", - "name": "TomogramVoxelSpacingGroupByOptions", + "kind": "SCALAR", + "name": "Int", "ofType": null } }, { - "args": [ - { - "defaultValue": "false", - "name": "distinct", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "columns", - "type": { - "kind": "ENUM", - "name": "TomogramVoxelSpacingCountColumns", - "ofType": null - } - } - ], - "name": "count", + "args": [], + "name": "offsetZ", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingAggregateFunctions", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "voxelSpacing", + "name": "keyPhotoUrl", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "id", + "name": "keyPhotoThumbnailUrl", "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "TomogramVoxelSpacingNumericalColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "voxelSpacing", + "name": "neuroglancerConfig", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "s3Prefix", + "name": "publications", "type": { "kind": "SCALAR", "name": "String", @@ -23827,7 +24839,7 @@ }, { "args": [], - "name": "httpsPrefix", + "name": "relatedDatabaseEntries", "type": { "kind": "SCALAR", "name": "String", @@ -23842,43 +24854,166 @@ "name": "Int", "ofType": null } + }, + { + "args": [], + "name": "depositionDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "args": [], + "name": "releaseDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "args": [], + "name": "lastModifiedDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } ], "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "TomogramVoxelSpacingMinMaxColumns", + "name": "TomogramMinMaxColumns", "possibleTypes": null }, { "enumValues": [ { - "name": "annotationFiles" + "name": "alignment" + }, + { + "name": "authors" + }, + { + "name": "deposition" }, { "name": "run" }, { - "name": "tomograms" + "name": "tomogramVoxelSpacing" + }, + { + "name": "name" + }, + { + "name": "sizeX" + }, + { + "name": "sizeY" + }, + { + "name": "sizeZ" }, { "name": "voxelSpacing" }, { - "name": "s3Prefix" + "name": "fiducialAlignmentStatus" }, { - "name": "httpsPrefix" + "name": "reconstructionMethod" + }, + { + "name": "processing" + }, + { + "name": "tomogramVersion" + }, + { + "name": "processingSoftware" + }, + { + "name": "reconstructionSoftware" + }, + { + "name": "isPortalStandard" + }, + { + "name": "isAuthorSubmitted" + }, + { + "name": "isVisualizationDefault" + }, + { + "name": "s3OmezarrDir" + }, + { + "name": "httpsOmezarrDir" + }, + { + "name": "s3MrcFile" + }, + { + "name": "httpsMrcFile" + }, + { + "name": "scale0Dimensions" + }, + { + "name": "scale1Dimensions" + }, + { + "name": "scale2Dimensions" + }, + { + "name": "ctfCorrected" + }, + { + "name": "offsetX" + }, + { + "name": "offsetY" + }, + { + "name": "offsetZ" + }, + { + "name": "keyPhotoUrl" + }, + { + "name": "keyPhotoThumbnailUrl" + }, + { + "name": "neuroglancerConfig" + }, + { + "name": "publications" + }, + { + "name": "relatedDatabaseEntries" }, { "name": "id" + }, + { + "name": "depositionDate" + }, + { + "name": "releaseDate" + }, + { + "name": "lastModifiedDate" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "TomogramVoxelSpacingCountColumns", + "name": "TomogramCountColumns", "possibleTypes": null }, { @@ -23911,7 +25046,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationShapeEdge", + "name": "DepositionTypeEdge", "ofType": null } } @@ -23922,7 +25057,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeConnection", + "name": "DepositionTypeConnection", "possibleTypes": null }, { @@ -23949,7 +25084,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationShape", + "name": "DepositionType", "ofType": null } } @@ -23958,7 +25093,149 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeEdge", + "name": "DepositionTypeEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "_id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "ofType": null + } + } + }, + { + "args": [], + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "null", + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionWhereClause", + "ofType": null + } + }, + { + "defaultValue": "[]", + "name": "orderBy", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + } + } + } + ], + "name": "deposition", + "type": { + "kind": "OBJECT", + "name": "Deposition", + "ofType": null + } + }, + { + "args": [], + "name": "depositionId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [], + "name": "type", + "type": { + "kind": "ENUM", + "name": "deposition_types_enum", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "EntityInterface", + "ofType": null + }, + { + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "DepositionType", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "deposition", + "type": { + "kind": "INPUT_OBJECT", + "name": "DepositionOrderByClause", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "type", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "DepositionTypeOrderByClause", "possibleTypes": null }, { @@ -23975,7 +25252,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationShapeAggregateFunctions", + "name": "DepositionTypeAggregateFunctions", "ofType": null } } @@ -23985,7 +25262,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeAggregate", + "name": "DepositionTypeAggregate", "possibleTypes": null }, { @@ -23996,7 +25273,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "AnnotationShapeNumericalColumns", + "name": "DepositionTypeNumericalColumns", "ofType": null } }, @@ -24005,7 +25282,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "AnnotationShapeNumericalColumns", + "name": "DepositionTypeNumericalColumns", "ofType": null } }, @@ -24014,7 +25291,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "AnnotationShapeNumericalColumns", + "name": "DepositionTypeNumericalColumns", "ofType": null } }, @@ -24023,7 +25300,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "AnnotationShapeNumericalColumns", + "name": "DepositionTypeNumericalColumns", "ofType": null } }, @@ -24032,7 +25309,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "AnnotationShapeMinMaxColumns", + "name": "DepositionTypeMinMaxColumns", "ofType": null } }, @@ -24041,7 +25318,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "AnnotationShapeMinMaxColumns", + "name": "DepositionTypeMinMaxColumns", "ofType": null } }, @@ -24050,7 +25327,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "AnnotationShapeGroupByOptions", + "name": "DepositionTypeGroupByOptions", "ofType": null } }, @@ -24070,7 +25347,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "AnnotationShapeCountColumns", + "name": "DepositionTypeCountColumns", "ofType": null } } @@ -24086,7 +25363,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeAggregateFunctions", + "name": "DepositionTypeAggregateFunctions", "possibleTypes": null }, { @@ -24105,7 +25382,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeNumericalColumns", + "name": "DepositionTypeNumericalColumns", "possibleTypes": null }, { @@ -24124,19 +25401,53 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationShapeMinMaxColumns", + "name": "DepositionTypeMinMaxColumns", "possibleTypes": null }, { - "enumValues": [ + "enumValues": null, + "fields": [ { - "name": "annotation" + "args": [], + "name": "deposition", + "type": { + "kind": "OBJECT", + "name": "DepositionGroupByOptions", + "ofType": null + } }, { - "name": "annotationFiles" + "args": [], + "name": "type", + "type": { + "kind": "ENUM", + "name": "deposition_types_enum", + "ofType": null + } }, { - "name": "shapeType" + "args": [], + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "DepositionTypeGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "deposition" + }, + { + "name": "type" }, { "name": "id" @@ -24146,7 +25457,7 @@ "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "AnnotationShapeCountColumns", + "name": "DepositionTypeCountColumns", "possibleTypes": null }, { @@ -24179,7 +25490,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationAuthorEdge", + "name": "PerSectionAlignmentParametersEdge", "ofType": null } } @@ -24190,7 +25501,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorConnection", + "name": "PerSectionAlignmentParametersConnection", "possibleTypes": null }, { @@ -24217,7 +25528,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationAuthor", + "name": "PerSectionAlignmentParameters", "ofType": null } } @@ -24226,7 +25537,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorEdge", + "name": "PerSectionAlignmentParametersEdge", "possibleTypes": null }, { @@ -24265,7 +25576,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AnnotationWhereClause", + "name": "AlignmentWhereClause", "ofType": null } }, @@ -24280,32 +25591,23 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", + "name": "AlignmentOrderByClause", "ofType": null } } } } ], - "name": "annotation", + "name": "alignment", "type": { "kind": "OBJECT", - "name": "Annotation", - "ofType": null - } - }, - { - "args": [], - "name": "annotationId", - "type": { - "kind": "SCALAR", - "name": "Int", + "name": "Alignment", "ofType": null } }, { "args": [], - "name": "authorListOrder", + "name": "alignmentId", "type": { "kind": "NON_NULL", "name": null, @@ -24318,77 +25620,75 @@ }, { "args": [], - "name": "orcid", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "name": "name", + "name": "zIndex", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "name": "email", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "name": "Int", + "ofType": null + } } }, { "args": [], - "name": "affiliationName", + "name": "xOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "affiliationAddress", + "name": "yOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "affiliationIdentifier", + "name": "volumeXRotation", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "correspondingAuthorStatus", + "name": "inPlaneRotation", "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } + } } }, { "args": [], - "name": "primaryAuthorStatus", + "name": "tiltAngle", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Float", "ofType": null } } @@ -24407,7 +25707,7 @@ } ], "kind": "OBJECT", - "name": "AnnotationAuthor", + "name": "PerSectionAlignmentParameters", "possibleTypes": null }, { @@ -24416,43 +25716,16 @@ "inputFields": [ { "defaultValue": null, - "name": "annotation", + "name": "alignment", "type": { "kind": "INPUT_OBJECT", - "name": "AnnotationOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "authorListOrder", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "orcid", - "type": { - "kind": "ENUM", - "name": "orderBy", + "name": "AlignmentOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "name", + "name": "zIndex", "type": { "kind": "ENUM", "name": "orderBy", @@ -24461,7 +25734,7 @@ }, { "defaultValue": null, - "name": "email", + "name": "xOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -24470,7 +25743,7 @@ }, { "defaultValue": null, - "name": "affiliationName", + "name": "yOffset", "type": { "kind": "ENUM", "name": "orderBy", @@ -24479,7 +25752,7 @@ }, { "defaultValue": null, - "name": "affiliationAddress", + "name": "volumeXRotation", "type": { "kind": "ENUM", "name": "orderBy", @@ -24488,7 +25761,7 @@ }, { "defaultValue": null, - "name": "affiliationIdentifier", + "name": "inPlaneRotation", "type": { "kind": "ENUM", "name": "orderBy", @@ -24497,7 +25770,7 @@ }, { "defaultValue": null, - "name": "correspondingAuthorStatus", + "name": "tiltAngle", "type": { "kind": "ENUM", "name": "orderBy", @@ -24506,7 +25779,7 @@ }, { "defaultValue": null, - "name": "primaryAuthorStatus", + "name": "id", "type": { "kind": "ENUM", "name": "orderBy", @@ -24516,7 +25789,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "AnnotationAuthorOrderByClause", + "name": "PerSectionAlignmentParametersOrderByClause", "possibleTypes": null }, { @@ -24533,7 +25806,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "AnnotationAuthorAggregateFunctions", + "name": "PerSectionAlignmentParametersAggregateFunctions", "ofType": null } } @@ -24543,7 +25816,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorAggregate", + "name": "PerSectionAlignmentParametersAggregate", "possibleTypes": null }, { @@ -24554,7 +25827,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorNumericalColumns", + "name": "PerSectionAlignmentParametersNumericalColumns", "ofType": null } }, @@ -24563,7 +25836,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorNumericalColumns", + "name": "PerSectionAlignmentParametersNumericalColumns", "ofType": null } }, @@ -24572,7 +25845,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorNumericalColumns", + "name": "PerSectionAlignmentParametersNumericalColumns", "ofType": null } }, @@ -24581,7 +25854,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorNumericalColumns", + "name": "PerSectionAlignmentParametersNumericalColumns", "ofType": null } }, @@ -24590,7 +25863,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorMinMaxColumns", + "name": "PerSectionAlignmentParametersMinMaxColumns", "ofType": null } }, @@ -24599,7 +25872,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorMinMaxColumns", + "name": "PerSectionAlignmentParametersMinMaxColumns", "ofType": null } }, @@ -24608,7 +25881,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "AnnotationAuthorGroupByOptions", + "name": "PerSectionAlignmentParametersGroupByOptions", "ofType": null } }, @@ -24628,7 +25901,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "AnnotationAuthorCountColumns", + "name": "PerSectionAlignmentParametersCountColumns", "ofType": null } } @@ -24644,7 +25917,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorAggregateFunctions", + "name": "PerSectionAlignmentParametersAggregateFunctions", "possibleTypes": null }, { @@ -24652,7 +25925,7 @@ "fields": [ { "args": [], - "name": "id", + "name": "zIndex", "type": { "kind": "SCALAR", "name": "Int", @@ -24661,7 +25934,43 @@ }, { "args": [], - "name": "authorListOrder", + "name": "xOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "yOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXRotation", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltAngle", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "id", "type": { "kind": "SCALAR", "name": "Int", @@ -24672,7 +25981,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorNumericalColumns", + "name": "PerSectionAlignmentParametersNumericalColumns", "possibleTypes": null }, { @@ -24680,7 +25989,7 @@ "fields": [ { "args": [], - "name": "id", + "name": "zIndex", "type": { "kind": "SCALAR", "name": "Int", @@ -24689,64 +25998,144 @@ }, { "args": [], - "name": "authorListOrder", + "name": "xOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "yOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "volumeXRotation", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "tiltAngle", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "args": [], + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "PerSectionAlignmentParametersMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "alignment", + "type": { + "kind": "OBJECT", + "name": "AlignmentGroupByOptions", + "ofType": null + } }, { "args": [], - "name": "orcid", + "name": "zIndex", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, { "args": [], - "name": "name", + "name": "xOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "email", + "name": "yOffset", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "affiliationName", + "name": "volumeXRotation", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "affiliationAddress", + "name": "inPlaneRotation", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } + } + } + }, + { + "args": [], + "name": "tiltAngle", "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null } }, { "args": [], - "name": "affiliationIdentifier", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } } @@ -24754,7 +26143,41 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorMinMaxColumns", + "name": "PerSectionAlignmentParametersGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "alignment" + }, + { + "name": "zIndex" + }, + { + "name": "xOffset" + }, + { + "name": "yOffset" + }, + { + "name": "volumeXRotation" + }, + { + "name": "inPlaneRotation" + }, + { + "name": "tiltAngle" + }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "PerSectionAlignmentParametersCountColumns", "possibleTypes": null }, { @@ -24762,34 +26185,280 @@ "fields": [ { "args": [], - "name": "annotation", + "name": "pageInfo", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + } + }, + { + "args": [], + "name": "edges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFileEdge", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "cursor", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "name": "node", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "run", + "type": { + "kind": "INPUT_OBJECT", + "name": "RunOrderByClause", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "s3FilePath", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "httpsFilePath", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "ENUM", + "name": "orderBy", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "GainFileOrderByClause", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "aggregate", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFileAggregateFunctions", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "sum", "type": { "kind": "OBJECT", - "name": "AnnotationGroupByOptions", + "name": "GainFileNumericalColumns", "ofType": null } }, { "args": [], - "name": "id", + "name": "avg", + "type": { + "kind": "OBJECT", + "name": "GainFileNumericalColumns", + "ofType": null + } + }, + { + "args": [], + "name": "stddev", + "type": { + "kind": "OBJECT", + "name": "GainFileNumericalColumns", + "ofType": null + } + }, + { + "args": [], + "name": "variance", + "type": { + "kind": "OBJECT", + "name": "GainFileNumericalColumns", + "ofType": null + } + }, + { + "args": [], + "name": "min", + "type": { + "kind": "OBJECT", + "name": "GainFileMinMaxColumns", + "ofType": null + } + }, + { + "args": [], + "name": "max", + "type": { + "kind": "OBJECT", + "name": "GainFileMinMaxColumns", + "ofType": null + } + }, + { + "args": [], + "name": "groupBy", + "type": { + "kind": "OBJECT", + "name": "GainFileGroupByOptions", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "GainFileCountColumns", + "ofType": null + } + } + ], + "name": "count", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "authorListOrder", + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "orcid", + "name": "s3FilePath", "type": { "kind": "SCALAR", "name": "String", @@ -24798,7 +26467,7 @@ }, { "args": [], - "name": "name", + "name": "httpsFilePath", "type": { "kind": "SCALAR", "name": "String", @@ -24807,25 +26476,35 @@ }, { "args": [], - "name": "email", + "name": "id", "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "GainFileMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "affiliationName", + "name": "run", "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "affiliationAddress", + "name": "s3FilePath", "type": { "kind": "SCALAR", "name": "String", @@ -24834,7 +26513,7 @@ }, { "args": [], - "name": "affiliationIdentifier", + "name": "httpsFilePath", "type": { "kind": "SCALAR", "name": "String", @@ -24843,19 +26522,10 @@ }, { "args": [], - "name": "correspondingAuthorStatus", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - { - "args": [], - "name": "primaryAuthorStatus", + "name": "id", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } } @@ -24863,50 +26533,29 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "AnnotationAuthorGroupByOptions", + "name": "GainFileGroupByOptions", "possibleTypes": null }, { "enumValues": [ { - "name": "annotation" - }, - { - "name": "id" - }, - { - "name": "authorListOrder" - }, - { - "name": "orcid" - }, - { - "name": "name" - }, - { - "name": "email" - }, - { - "name": "affiliationName" - }, - { - "name": "affiliationAddress" + "name": "run" }, { - "name": "affiliationIdentifier" + "name": "s3FilePath" }, { - "name": "correspondingAuthorStatus" + "name": "httpsFilePath" }, { - "name": "primaryAuthorStatus" + "name": "id" } ], "fields": null, "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "AnnotationAuthorCountColumns", + "name": "GainFileCountColumns", "possibleTypes": null }, { @@ -24939,7 +26588,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersEdge", + "name": "FrameAcquisitionFileEdge", "ofType": null } } @@ -24950,7 +26599,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersConnection", + "name": "FrameAcquisitionFileConnection", "possibleTypes": null }, { @@ -24977,7 +26626,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionAlignmentParameters", + "name": "FrameAcquisitionFile", "ofType": null } } @@ -24986,7 +26635,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersEdge", + "name": "FrameAcquisitionFileEdge", "possibleTypes": null }, { @@ -25025,7 +26674,7 @@ "name": "where", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentWhereClause", + "name": "RunWhereClause", "ofType": null } }, @@ -25040,90 +26689,54 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", + "name": "RunOrderByClause", "ofType": null } } } } ], - "name": "alignment", + "name": "run", "type": { "kind": "OBJECT", - "name": "Alignment", + "name": "Run", "ofType": null } }, { "args": [], - "name": "alignmentId", + "name": "runId", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "args": [], + "name": "s3MdocPath", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } } }, { "args": [], - "name": "zIndex", + "name": "httpsMdocPath", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } } - }, - { - "args": [], - "name": "xOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "yOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "inPlaneRotation", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "beamTilt", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "args": [], - "name": "tiltAngle", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } } ], "inputFields": null, @@ -25140,7 +26753,7 @@ } ], "kind": "OBJECT", - "name": "PerSectionAlignmentParameters", + "name": "FrameAcquisitionFile", "possibleTypes": null }, { @@ -25149,52 +26762,16 @@ "inputFields": [ { "defaultValue": null, - "name": "alignment", + "name": "run", "type": { "kind": "INPUT_OBJECT", - "name": "AlignmentOrderByClause", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "zIndex", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "xOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "yOffset", - "type": { - "kind": "ENUM", - "name": "orderBy", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "inPlaneRotation", - "type": { - "kind": "ENUM", - "name": "orderBy", + "name": "RunOrderByClause", "ofType": null } }, { "defaultValue": null, - "name": "beamTilt", + "name": "s3MdocPath", "type": { "kind": "ENUM", "name": "orderBy", @@ -25203,7 +26780,7 @@ }, { "defaultValue": null, - "name": "tiltAngle", + "name": "httpsMdocPath", "type": { "kind": "ENUM", "name": "orderBy", @@ -25222,7 +26799,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersOrderByClause", + "name": "FrameAcquisitionFileOrderByClause", "possibleTypes": null }, { @@ -25239,7 +26816,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersAggregateFunctions", + "name": "FrameAcquisitionFileAggregateFunctions", "ofType": null } } @@ -25249,7 +26826,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersAggregate", + "name": "FrameAcquisitionFileAggregate", "possibleTypes": null }, { @@ -25260,7 +26837,7 @@ "name": "sum", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersNumericalColumns", + "name": "FrameAcquisitionFileNumericalColumns", "ofType": null } }, @@ -25269,7 +26846,7 @@ "name": "avg", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersNumericalColumns", + "name": "FrameAcquisitionFileNumericalColumns", "ofType": null } }, @@ -25278,7 +26855,7 @@ "name": "stddev", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersNumericalColumns", + "name": "FrameAcquisitionFileNumericalColumns", "ofType": null } }, @@ -25287,7 +26864,7 @@ "name": "variance", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersNumericalColumns", + "name": "FrameAcquisitionFileNumericalColumns", "ofType": null } }, @@ -25296,7 +26873,7 @@ "name": "min", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersMinMaxColumns", + "name": "FrameAcquisitionFileMinMaxColumns", "ofType": null } }, @@ -25305,7 +26882,7 @@ "name": "max", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersMinMaxColumns", + "name": "FrameAcquisitionFileMinMaxColumns", "ofType": null } }, @@ -25314,7 +26891,7 @@ "name": "groupBy", "type": { "kind": "OBJECT", - "name": "PerSectionAlignmentParametersGroupByOptions", + "name": "FrameAcquisitionFileGroupByOptions", "ofType": null } }, @@ -25334,7 +26911,7 @@ "name": "columns", "type": { "kind": "ENUM", - "name": "PerSectionAlignmentParametersCountColumns", + "name": "FrameAcquisitionFileCountColumns", "ofType": null } } @@ -25350,7 +26927,7 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersAggregateFunctions", + "name": "FrameAcquisitionFileAggregateFunctions", "possibleTypes": null }, { @@ -25358,55 +26935,84 @@ "fields": [ { "args": [], - "name": "zIndex", + "name": "id", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameAcquisitionFileNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "xOffset", + "name": "s3MdocPath", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "yOffset", + "name": "httpsMdocPath", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "inPlaneRotation", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "FrameAcquisitionFileMinMaxColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "run", + "type": { + "kind": "OBJECT", + "name": "RunGroupByOptions", "ofType": null } }, { "args": [], - "name": "beamTilt", + "name": "s3MdocPath", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltAngle", + "name": "httpsMdocPath", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, @@ -25423,7 +27029,29 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersNumericalColumns", + "name": "FrameAcquisitionFileGroupByOptions", + "possibleTypes": null + }, + { + "enumValues": [ + { + "name": "run" + }, + { + "name": "s3MdocPath" + }, + { + "name": "httpsMdocPath" + }, + { + "name": "id" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "FrameAcquisitionFileCountColumns", "possibleTypes": null }, { @@ -25431,98 +27059,215 @@ "fields": [ { "args": [], - "name": "zIndex", + "name": "pageInfo", "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } } }, { "args": [], - "name": "xOffset", + "name": "edges", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingEdge", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramVoxelSpacingConnection", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "cursor", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { "args": [], - "name": "yOffset", + "name": "node", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacing", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramVoxelSpacingEdge", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "aggregate", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingAggregateFunctions", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramVoxelSpacingAggregate", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ + { + "args": [], + "name": "sum", + "type": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingNumericalColumns", "ofType": null } }, { "args": [], - "name": "inPlaneRotation", + "name": "avg", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "TomogramVoxelSpacingNumericalColumns", "ofType": null } }, { "args": [], - "name": "beamTilt", + "name": "stddev", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "TomogramVoxelSpacingNumericalColumns", "ofType": null } }, { "args": [], - "name": "tiltAngle", + "name": "variance", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "OBJECT", + "name": "TomogramVoxelSpacingNumericalColumns", "ofType": null } }, { "args": [], - "name": "id", + "name": "min", "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "TomogramVoxelSpacingMinMaxColumns", "ofType": null } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "PerSectionAlignmentParametersMinMaxColumns", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": [ + }, { "args": [], - "name": "alignment", + "name": "max", "type": { "kind": "OBJECT", - "name": "AlignmentGroupByOptions", + "name": "TomogramVoxelSpacingMinMaxColumns", "ofType": null } }, { "args": [], - "name": "zIndex", + "name": "groupBy", + "type": { + "kind": "OBJECT", + "name": "TomogramVoxelSpacingGroupByOptions", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "false", + "name": "distinct", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "columns", + "type": { + "kind": "ENUM", + "name": "TomogramVoxelSpacingCountColumns", + "ofType": null + } + } + ], + "name": "count", "type": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramVoxelSpacingAggregateFunctions", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "xOffset", + "name": "voxelSpacing", "type": { "kind": "SCALAR", "name": "Float", @@ -25531,16 +27276,26 @@ }, { "args": [], - "name": "yOffset", + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } - }, + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TomogramVoxelSpacingNumericalColumns", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": [ { "args": [], - "name": "inPlaneRotation", + "name": "voxelSpacing", "type": { "kind": "SCALAR", "name": "Float", @@ -25549,19 +27304,19 @@ }, { "args": [], - "name": "beamTilt", + "name": "s3Prefix", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { "args": [], - "name": "tiltAngle", + "name": "httpsPrefix", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, @@ -25578,31 +27333,28 @@ "inputFields": null, "interfaces": [], "kind": "OBJECT", - "name": "PerSectionAlignmentParametersGroupByOptions", + "name": "TomogramVoxelSpacingMinMaxColumns", "possibleTypes": null }, { "enumValues": [ { - "name": "alignment" - }, - { - "name": "zIndex" + "name": "annotationFiles" }, { - "name": "xOffset" + "name": "run" }, { - "name": "yOffset" + "name": "tomograms" }, { - "name": "inPlaneRotation" + "name": "voxelSpacing" }, { - "name": "beamTilt" + "name": "s3Prefix" }, { - "name": "tiltAngle" + "name": "httpsPrefix" }, { "name": "id" @@ -25612,7 +27364,7 @@ "inputFields": null, "interfaces": null, "kind": "ENUM", - "name": "PerSectionAlignmentParametersCountColumns", + "name": "TomogramVoxelSpacingCountColumns", "possibleTypes": null }, { @@ -25957,6 +27709,226 @@ { "enumValues": null, "fields": [ + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileCreateInput", + "ofType": null + } + } + } + ], + "name": "createGainFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileUpdateInput", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "updateGainFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "deleteGainFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GainFile", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileCreateInput", + "ofType": null + } + } + } + ], + "name": "createFrameAcquisitionFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFile", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileUpdateInput", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "updateFrameAcquisitionFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFile", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "deleteFrameAcquisitionFile", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FrameAcquisitionFile", + "ofType": null + } + } + } + } + }, { "args": [ { @@ -27277,116 +29249,6 @@ } } }, - { - "args": [ - { - "defaultValue": null, - "name": "input", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersCreateInput", - "ofType": null - } - } - } - ], - "name": "createPerSectionParameters", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PerSectionParameters", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": null, - "name": "input", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersUpdateInput", - "ofType": null - } - } - }, - { - "defaultValue": null, - "name": "where", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClauseMutations", - "ofType": null - } - } - } - ], - "name": "updatePerSectionParameters", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PerSectionParameters", - "ofType": null - } - } - } - } - }, - { - "args": [ - { - "defaultValue": null, - "name": "where", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClauseMutations", - "ofType": null - } - } - } - ], - "name": "deletePerSectionParameters", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PerSectionParameters", - "ofType": null - } - } - } - } - }, { "args": [ { @@ -28046,6 +29908,116 @@ } } } + }, + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkCreateInput", + "ofType": null + } + } + } + ], + "name": "createAnnotationMethodLink", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationMethodLink", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkUpdateInput", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "updateAnnotationMethodLink", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationMethodLink", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "name": "where", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkWhereClauseMutations", + "ofType": null + } + } + } + ], + "name": "deleteAnnotationMethodLink", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotationMethodLink", + "ofType": null + } + } + } + } } ], "inputFields": null, @@ -28060,7 +30032,7 @@ "inputFields": [ { "defaultValue": "null", - "name": "depositionId", + "name": "runId", "type": { "kind": "SCALAR", "name": "ID", @@ -28068,14 +30040,63 @@ } }, { - "defaultValue": "null", - "name": "tiltseriesId", + "defaultValue": null, + "name": "s3FilePath", "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, + { + "defaultValue": null, + "name": "httpsFilePath", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "GainFileCreateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "ID", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": "null", "name": "runId", @@ -28086,89 +30107,131 @@ } }, { - "defaultValue": "null", - "name": "alignmentType", + "defaultValue": null, + "name": "s3FilePath", "type": { - "kind": "ENUM", - "name": "alignment_type_enum", + "kind": "SCALAR", + "name": "String", "ofType": null } }, { - "defaultValue": "null", - "name": "volumeXDimension", + "defaultValue": null, + "name": "httpsFilePath", "type": { "kind": "SCALAR", - "name": "Float", + "name": "String", "ofType": null } }, { - "defaultValue": "null", - "name": "volumeYDimension", + "defaultValue": null, + "name": "id", "type": { "kind": "SCALAR", - "name": "Float", + "name": "Int", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "GainFileUpdateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { - "defaultValue": "null", - "name": "volumeZDimension", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "INPUT_OBJECT", + "name": "IntComparators", "ofType": null } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "GainFileWhereClauseMutations", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": "null", - "name": "volumeXOffset", + "name": "runId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "ID", "ofType": null } }, { - "defaultValue": "null", - "name": "volumeYOffset", + "defaultValue": null, + "name": "s3MdocPath", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": "null", - "name": "volumeZOffset", + "defaultValue": null, + "name": "httpsMdocPath", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } } }, { - "defaultValue": "null", - "name": "xRotationOffset", + "defaultValue": null, + "name": "id", "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } } - }, + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileCreateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ { "defaultValue": "null", - "name": "tiltOffset", + "name": "runId", "type": { "kind": "SCALAR", - "name": "Float", + "name": "ID", "ofType": null } }, { - "defaultValue": "null", - "name": "localAlignmentFile", + "defaultValue": null, + "name": "s3MdocPath", "type": { "kind": "SCALAR", "name": "String", @@ -28176,8 +30239,8 @@ } }, { - "defaultValue": "null", - "name": "affineTransformationMatrix", + "defaultValue": null, + "name": "httpsMdocPath", "type": { "kind": "SCALAR", "name": "String", @@ -28188,28 +30251,34 @@ "defaultValue": null, "name": "id", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } } ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "AlignmentCreateInput", + "name": "FrameAcquisitionFileUpdateInput", "possibleTypes": null }, { "enumValues": null, "fields": null, - "inputFields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + } + ], "interfaces": null, - "kind": "SCALAR", - "name": "ID", + "kind": "INPUT_OBJECT", + "name": "FrameAcquisitionFileWhereClauseMutations", "possibleTypes": null }, { @@ -28252,6 +30321,15 @@ "ofType": null } }, + { + "defaultValue": "null", + "name": "alignmentMethod", + "type": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + }, { "defaultValue": "null", "name": "volumeXDimension", @@ -28326,13 +30404,180 @@ }, { "defaultValue": "null", - "name": "localAlignmentFile", + "name": "affineTransformationMatrix", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "s3AlignmentMetadata", "type": { "kind": "SCALAR", "name": "String", "ofType": null } }, + { + "defaultValue": "null", + "name": "httpsAlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isPortalStandard", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AlignmentCreateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": "null", + "name": "depositionId", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "tiltseriesId", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "runId", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "alignmentType", + "type": { + "kind": "ENUM", + "name": "alignment_type_enum", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "alignmentMethod", + "type": { + "kind": "ENUM", + "name": "alignment_method_type_enum", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeXDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeYDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeZDimension", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeXOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeYOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "volumeZOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "xRotationOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "tiltOffset", + "type": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, { "defaultValue": "null", "name": "affineTransformationMatrix", @@ -28342,6 +30587,33 @@ "ofType": null } }, + { + "defaultValue": "null", + "name": "s3AlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "httpsAlignmentMetadata", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isPortalStandard", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, { "defaultValue": null, "name": "id", @@ -29009,15 +31281,6 @@ } } }, - { - "defaultValue": "null", - "name": "methodLinks", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": "null", "name": "groundTruthStatus", @@ -29254,15 +31517,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "methodLinks", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": "null", "name": "groundTruthStatus", @@ -31020,24 +33274,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3GainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsGainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": null, "name": "s3Prefix", @@ -31141,24 +33377,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3GainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsGainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": null, "name": "s3Prefix", @@ -31217,7 +33435,7 @@ "inputFields": [ { "defaultValue": null, - "name": "frameId", + "name": "alignmentId", "type": { "kind": "NON_NULL", "name": null, @@ -31230,33 +33448,29 @@ }, { "defaultValue": null, - "name": "tiltseriesId", + "name": "zIndex", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "ID", + "name": "Int", "ofType": null } } }, { - "defaultValue": null, - "name": "zIndex", + "defaultValue": "null", + "name": "xOffset", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Float", + "ofType": null } }, { "defaultValue": "null", - "name": "defocus", + "name": "yOffset", "type": { "kind": "SCALAR", "name": "Float", @@ -31265,7 +33479,7 @@ }, { "defaultValue": "null", - "name": "astigmatism", + "name": "volumeXRotation", "type": { "kind": "SCALAR", "name": "Float", @@ -31274,7 +33488,32 @@ }, { "defaultValue": "null", - "name": "astigmaticAngle", + "name": "inPlaneRotation", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } + } + } + }, + { + "defaultValue": "null", + "name": "tiltAngle", "type": { "kind": "SCALAR", "name": "Float", @@ -31297,7 +33536,7 @@ ], "interfaces": null, "kind": "INPUT_OBJECT", - "name": "PerSectionParametersCreateInput", + "name": "PerSectionAlignmentParametersCreateInput", "possibleTypes": null }, { @@ -31306,16 +33545,7 @@ "inputFields": [ { "defaultValue": null, - "name": "frameId", - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "tiltseriesId", + "name": "alignmentId", "type": { "kind": "SCALAR", "name": "ID", @@ -31331,97 +33561,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "defocus", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "astigmatism", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "astigmaticAngle", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersUpdateInput", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "id", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntComparators", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "PerSectionParametersWhereClauseMutations", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "alignmentId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - } - }, - { - "defaultValue": null, - "name": "zIndex", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, { "defaultValue": "null", "name": "xOffset", @@ -31442,7 +33581,7 @@ }, { "defaultValue": "null", - "name": "inPlaneRotation", + "name": "volumeXRotation", "type": { "kind": "SCALAR", "name": "Float", @@ -31451,98 +33590,28 @@ }, { "defaultValue": "null", - "name": "beamTilt", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "tiltAngle", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "id", + "name": "inPlaneRotation", "type": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + } } } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "PerSectionAlignmentParametersCreateInput", - "possibleTypes": null - }, - { - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "name": "alignmentId", - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - { - "defaultValue": null, - "name": "zIndex", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "xOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "yOffset", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "inPlaneRotation", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "beamTilt", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } }, { "defaultValue": "null", @@ -31798,24 +33867,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3CollectionMetadata", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsCollectionMetadata", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": "null", "name": "s3AngleList", @@ -31834,24 +33885,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3GainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsGainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": null, "name": "accelerationVoltage", @@ -32140,15 +34173,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "framesCount", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, { "defaultValue": null, "name": "id", @@ -32226,24 +34250,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3CollectionMetadata", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsCollectionMetadata", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": "null", "name": "s3AngleList", @@ -32262,24 +34268,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "s3GainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": "null", - "name": "httpsGainFile", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, { "defaultValue": null, "name": "accelerationVoltage", @@ -32496,15 +34484,6 @@ "ofType": null } }, - { - "defaultValue": "null", - "name": "framesCount", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, { "defaultValue": null, "name": "id", @@ -33110,7 +35089,25 @@ }, { "defaultValue": "null", - "name": "isCanonical", + "name": "isPortalStandard", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isAuthorSubmitted", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isVisualizationDefault", "type": { "kind": "SCALAR", "name": "Boolean", @@ -33255,28 +35252,72 @@ "ofType": null } }, + { + "defaultValue": "null", + "name": "publications", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "relatedDatabaseEntries", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, { "defaultValue": null, - "name": "isStandardized", + "name": "id", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null } } }, { "defaultValue": null, - "name": "id", + "name": "depositionDate", "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Int", + "name": "DateTime", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "releaseDate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "lastModifiedDate", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", "ofType": null } } @@ -33428,7 +35469,25 @@ }, { "defaultValue": "null", - "name": "isCanonical", + "name": "isPortalStandard", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isAuthorSubmitted", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "isVisualizationDefault", "type": { "kind": "SCALAR", "name": "Boolean", @@ -33562,11 +35621,20 @@ } }, { - "defaultValue": null, - "name": "isStandardized", + "defaultValue": "null", + "name": "publications", "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "relatedDatabaseEntries", + "type": { + "kind": "SCALAR", + "name": "String", "ofType": null } }, @@ -33578,6 +35646,33 @@ "name": "Int", "ofType": null } + }, + { + "defaultValue": null, + "name": "depositionDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "releaseDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "lastModifiedDate", + "type": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } } ], "interfaces": null, @@ -33604,6 +35699,147 @@ "name": "TomogramWhereClauseMutations", "possibleTypes": null }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": "null", + "name": "annotationId", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "linkType", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "annotation_method_link_type_enum", + "ofType": null + } + } + }, + { + "defaultValue": "null", + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "link", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkCreateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": "null", + "name": "annotationId", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "linkType", + "type": { + "kind": "ENUM", + "name": "annotation_method_link_type_enum", + "ofType": null + } + }, + { + "defaultValue": "null", + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "link", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkUpdateInput", + "possibleTypes": null + }, + { + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "name": "id", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntComparators", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "AnnotationMethodLinkWhereClauseMutations", + "possibleTypes": null + }, { "enumValues": null, "fields": [ diff --git a/apiv2/graphql_api/types/alignment.py b/apiv2/graphql_api/types/alignment.py index 065e92687..af412ea96 100644 --- a/apiv2/graphql_api/types/alignment.py +++ b/apiv2/graphql_api/types/alignment.py @@ -28,7 +28,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from strawberry import relay from strawberry.types import Info -from support.enums import alignment_type_enum +from support.enums import alignment_method_type_enum, alignment_type_enum from support.limit_offset import LimitOffsetClause from typing_extensions import TypedDict from validators.alignment import AlignmentCreateInputValidator, AlignmentUpdateInputValidator @@ -37,6 +37,7 @@ from platformics.graphql_api.core.errors import PlatformicsError from platformics.graphql_api.core.query_builder import get_aggregate_db_rows, get_db_rows from platformics.graphql_api.core.query_input_types import ( + BoolComparators, EnumComparators, FloatComparators, IntComparators, @@ -305,6 +306,7 @@ class AlignmentWhereClause(TypedDict): run: Optional[Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")]] | None run_id: Optional[IntComparators] | None alignment_type: Optional[EnumComparators[alignment_type_enum]] | None + alignment_method: Optional[EnumComparators[alignment_method_type_enum]] | None volume_x_dimension: Optional[FloatComparators] | None volume_y_dimension: Optional[FloatComparators] | None volume_z_dimension: Optional[FloatComparators] | None @@ -313,8 +315,10 @@ class AlignmentWhereClause(TypedDict): volume_z_offset: Optional[FloatComparators] | None x_rotation_offset: Optional[FloatComparators] | None tilt_offset: Optional[FloatComparators] | None - local_alignment_file: Optional[StrComparators] | None affine_transformation_matrix: Optional[StrComparators] | None + s3_alignment_metadata: Optional[StrComparators] | None + https_alignment_metadata: Optional[StrComparators] | None + is_portal_standard: Optional[BoolComparators] | None id: Optional[IntComparators] | None @@ -329,6 +333,7 @@ class AlignmentOrderByClause(TypedDict): tiltseries: Optional[Annotated["TiltseriesOrderByClause", strawberry.lazy("graphql_api.types.tiltseries")]] | None run: Optional[Annotated["RunOrderByClause", strawberry.lazy("graphql_api.types.run")]] | None alignment_type: Optional[orderBy] | None + alignment_method: Optional[orderBy] | None volume_x_dimension: Optional[orderBy] | None volume_y_dimension: Optional[orderBy] | None volume_z_dimension: Optional[orderBy] | None @@ -337,8 +342,10 @@ class AlignmentOrderByClause(TypedDict): volume_z_offset: Optional[orderBy] | None x_rotation_offset: Optional[orderBy] | None tilt_offset: Optional[orderBy] | None - local_alignment_file: Optional[orderBy] | None affine_transformation_matrix: Optional[orderBy] | None + s3_alignment_metadata: Optional[orderBy] | None + https_alignment_metadata: Optional[orderBy] | None + is_portal_standard: Optional[orderBy] | None id: Optional[orderBy] | None @@ -385,6 +392,9 @@ class Alignment(EntityInterface): alignment_type: Optional[alignment_type_enum] = strawberry.field( description="Whether this a LOCAL or GLOBAL alignment", default=None, ) + alignment_method: Optional[alignment_method_type_enum] = strawberry.field( + description="The method used to create this alignment", default=None, + ) volume_x_dimension: Optional[float] = strawberry.field( description="X dimension of the reconstruction volume in angstrom", default=None, ) @@ -407,10 +417,18 @@ class Alignment(EntityInterface): description="Additional X rotation of the reconstruction volume in degrees", default=None, ) tilt_offset: Optional[float] = strawberry.field(description="Additional tilt offset in degrees", default=None) - local_alignment_file: Optional[str] = strawberry.field(description="Path to the local alignment file", default=None) affine_transformation_matrix: Optional[str] = strawberry.field( description="A placeholder for the affine transformation matrix.", default=None, ) + s3_alignment_metadata: Optional[str] = strawberry.field( + description="S3 path to the metadata file for this alignment", default=None, + ) + https_alignment_metadata: Optional[str] = strawberry.field( + description="HTTPS url to the metadata file for this alignment", default=None, + ) + is_portal_standard: Optional[bool] = strawberry.field( + description="Whether this is the portal standard alignment", default=None, + ) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -460,8 +478,9 @@ class AlignmentMinMaxColumns: volume_z_offset: Optional[float] = None x_rotation_offset: Optional[float] = None tilt_offset: Optional[float] = None - local_alignment_file: Optional[str] = None affine_transformation_matrix: Optional[str] = None + s3_alignment_metadata: Optional[str] = None + https_alignment_metadata: Optional[str] = None id: Optional[int] = None @@ -479,6 +498,7 @@ class AlignmentCountColumns(enum.Enum): tomograms = "tomograms" run = "run" alignmentType = "alignment_type" + alignmentMethod = "alignment_method" volumeXDimension = "volume_x_dimension" volumeYDimension = "volume_y_dimension" volumeZDimension = "volume_z_dimension" @@ -487,8 +507,10 @@ class AlignmentCountColumns(enum.Enum): volumeZOffset = "volume_z_offset" xRotationOffset = "x_rotation_offset" tiltOffset = "tilt_offset" - localAlignmentFile = "local_alignment_file" affineTransformationMatrix = "affine_transformation_matrix" + s3AlignmentMetadata = "s3_alignment_metadata" + httpsAlignmentMetadata = "https_alignment_metadata" + isPortalStandard = "is_portal_standard" id = "id" @@ -539,6 +561,9 @@ class AlignmentCreateInput: alignment_type: Optional[alignment_type_enum] = strawberry.field( description="Whether this a LOCAL or GLOBAL alignment", default=None, ) + alignment_method: Optional[alignment_method_type_enum] = strawberry.field( + description="The method used to create this alignment", default=None, + ) volume_x_dimension: Optional[float] = strawberry.field( description="X dimension of the reconstruction volume in angstrom", default=None, ) @@ -561,10 +586,18 @@ class AlignmentCreateInput: description="Additional X rotation of the reconstruction volume in degrees", default=None, ) tilt_offset: Optional[float] = strawberry.field(description="Additional tilt offset in degrees", default=None) - local_alignment_file: Optional[str] = strawberry.field(description="Path to the local alignment file", default=None) affine_transformation_matrix: Optional[str] = strawberry.field( description="A placeholder for the affine transformation matrix.", default=None, ) + s3_alignment_metadata: Optional[str] = strawberry.field( + description="S3 path to the metadata file for this alignment", default=None, + ) + https_alignment_metadata: Optional[str] = strawberry.field( + description="HTTPS url to the metadata file for this alignment", default=None, + ) + is_portal_standard: Optional[bool] = strawberry.field( + description="Whether this is the portal standard alignment", default=None, + ) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -576,6 +609,9 @@ class AlignmentUpdateInput: alignment_type: Optional[alignment_type_enum] = strawberry.field( description="Whether this a LOCAL or GLOBAL alignment", default=None, ) + alignment_method: Optional[alignment_method_type_enum] = strawberry.field( + description="The method used to create this alignment", default=None, + ) volume_x_dimension: Optional[float] = strawberry.field( description="X dimension of the reconstruction volume in angstrom", default=None, ) @@ -598,10 +634,18 @@ class AlignmentUpdateInput: description="Additional X rotation of the reconstruction volume in degrees", default=None, ) tilt_offset: Optional[float] = strawberry.field(description="Additional tilt offset in degrees", default=None) - local_alignment_file: Optional[str] = strawberry.field(description="Path to the local alignment file", default=None) affine_transformation_matrix: Optional[str] = strawberry.field( description="A placeholder for the affine transformation matrix.", default=None, ) + s3_alignment_metadata: Optional[str] = strawberry.field( + description="S3 path to the metadata file for this alignment", default=None, + ) + https_alignment_metadata: Optional[str] = strawberry.field( + description="HTTPS url to the metadata file for this alignment", default=None, + ) + is_portal_standard: Optional[bool] = strawberry.field( + description="Whether this is the portal standard alignment", default=None, + ) id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") diff --git a/apiv2/graphql_api/types/annotation.py b/apiv2/graphql_api/types/annotation.py index cd206a783..461b806ab 100644 --- a/apiv2/graphql_api/types/annotation.py +++ b/apiv2/graphql_api/types/annotation.py @@ -18,6 +18,10 @@ from fastapi import Depends from graphql_api.helpers.annotation import AnnotationGroupByOptions, build_annotation_groupby_output from graphql_api.types.annotation_author import AnnotationAuthorAggregate, format_annotation_author_aggregate_output +from graphql_api.types.annotation_method_link import ( + AnnotationMethodLinkAggregate, + format_annotation_method_link_aggregate_output, +) from graphql_api.types.annotation_shape import AnnotationShapeAggregate, format_annotation_shape_aggregate_output from sqlalchemy import inspect from sqlalchemy.engine.row import RowMapping @@ -55,6 +59,11 @@ AnnotationAuthorOrderByClause, AnnotationAuthorWhereClause, ) + from graphql_api.types.annotation_method_link import ( + AnnotationMethodLink, + AnnotationMethodLinkOrderByClause, + AnnotationMethodLinkWhereClause, + ) from graphql_api.types.annotation_shape import ( AnnotationShape, AnnotationShapeOrderByClause, @@ -71,6 +80,9 @@ AnnotationShapeWhereClause = "AnnotationShapeWhereClause" AnnotationShape = "AnnotationShape" AnnotationShapeOrderByClause = "AnnotationShapeOrderByClause" + AnnotationMethodLinkWhereClause = "AnnotationMethodLinkWhereClause" + AnnotationMethodLink = "AnnotationMethodLink" + AnnotationMethodLinkOrderByClause = "AnnotationMethodLinkOrderByClause" AnnotationAuthorWhereClause = "AnnotationAuthorWhereClause" AnnotationAuthor = "AnnotationAuthor" AnnotationAuthorOrderByClause = "AnnotationAuthorOrderByClause" @@ -135,6 +147,46 @@ async def load_annotation_shape_aggregate_rows( return aggregate_output +@relay.connection( + relay.ListConnection[ + Annotated["AnnotationMethodLink", strawberry.lazy("graphql_api.types.annotation_method_link")] + ], # type:ignore +) +async def load_annotation_method_link_rows( + root: "Annotation", + info: Info, + where: ( + Annotated["AnnotationMethodLinkWhereClause", strawberry.lazy("graphql_api.types.annotation_method_link")] | None + ) = None, + order_by: Optional[ + list[ + Annotated["AnnotationMethodLinkOrderByClause", strawberry.lazy("graphql_api.types.annotation_method_link")] + ] + ] = [], +) -> Sequence[Annotated["AnnotationMethodLink", strawberry.lazy("graphql_api.types.annotation_method_link")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Annotation) + relationship = mapper.relationships["method_links"] + return await dataloader.loader_for(relationship, where, order_by).load(root.id) # type:ignore + + +@strawberry.field +async def load_annotation_method_link_aggregate_rows( + root: "Annotation", + info: Info, + where: ( + Annotated["AnnotationMethodLinkWhereClause", strawberry.lazy("graphql_api.types.annotation_method_link")] | None + ) = None, +) -> Optional[Annotated["AnnotationMethodLinkAggregate", strawberry.lazy("graphql_api.types.annotation_method_link")]]: + selections = info.selected_fields[0].selections[0].selections + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Annotation) + relationship = mapper.relationships["method_links"] + rows = await dataloader.aggregate_loader_for(relationship, where, selections).load(root.id) # type:ignore + aggregate_output = format_annotation_method_link_aggregate_output(rows) + return aggregate_output + + @relay.connection( relay.ListConnection[ Annotated["AnnotationAuthor", strawberry.lazy("graphql_api.types.annotation_author")] @@ -218,6 +270,12 @@ class AnnotationWhereClause(TypedDict): annotation_shapes: ( Optional[Annotated["AnnotationShapeWhereClause", strawberry.lazy("graphql_api.types.annotation_shape")]] | None ) + method_links: ( + Optional[ + Annotated["AnnotationMethodLinkWhereClause", strawberry.lazy("graphql_api.types.annotation_method_link")] + ] + | None + ) authors: ( Optional[Annotated["AnnotationAuthorWhereClause", strawberry.lazy("graphql_api.types.annotation_author")]] | None @@ -228,7 +286,6 @@ class AnnotationWhereClause(TypedDict): https_metadata_path: Optional[StrComparators] | None annotation_publication: Optional[StrComparators] | None annotation_method: Optional[StrComparators] | None - method_links: Optional[StrComparators] | None ground_truth_status: Optional[BoolComparators] | None object_id: Optional[StrComparators] | None object_name: Optional[StrComparators] | None @@ -260,7 +317,6 @@ class AnnotationOrderByClause(TypedDict): https_metadata_path: Optional[orderBy] | None annotation_publication: Optional[orderBy] | None annotation_method: Optional[orderBy] | None - method_links: Optional[orderBy] | None ground_truth_status: Optional[orderBy] | None object_id: Optional[orderBy] | None object_name: Optional[orderBy] | None @@ -294,6 +350,12 @@ class Annotation(EntityInterface): annotation_shapes_aggregate: Optional[ Annotated["AnnotationShapeAggregate", strawberry.lazy("graphql_api.types.annotation_shape")] ] = load_annotation_shape_aggregate_rows # type:ignore + method_links: Sequence[ + Annotated["AnnotationMethodLink", strawberry.lazy("graphql_api.types.annotation_method_link")] + ] = load_annotation_method_link_rows # type:ignore + method_links_aggregate: Optional[ + Annotated["AnnotationMethodLinkAggregate", strawberry.lazy("graphql_api.types.annotation_method_link")] + ] = load_annotation_method_link_aggregate_rows # type:ignore authors: Sequence[Annotated["AnnotationAuthor", strawberry.lazy("graphql_api.types.annotation_author")]] = ( load_annotation_author_rows ) # type:ignore @@ -313,10 +375,6 @@ class Annotation(EntityInterface): annotation_method: str = strawberry.field( description="Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)", ) - method_links: Optional[str] = strawberry.field( - description="Provides links to information on the method used for generating annotation, comma separated", - default=None, - ) ground_truth_status: Optional[bool] = strawberry.field( description="Whether an annotation is considered ground truth, as determined by the annotator.", default=None, ) @@ -404,7 +462,6 @@ class AnnotationMinMaxColumns: https_metadata_path: Optional[str] = None annotation_publication: Optional[str] = None annotation_method: Optional[str] = None - method_links: Optional[str] = None object_id: Optional[str] = None object_name: Optional[str] = None object_description: Optional[str] = None @@ -429,13 +486,13 @@ class AnnotationMinMaxColumns: class AnnotationCountColumns(enum.Enum): run = "run" annotationShapes = "annotation_shapes" + methodLinks = "method_links" authors = "authors" deposition = "deposition" s3MetadataPath = "s3_metadata_path" httpsMetadataPath = "https_metadata_path" annotationPublication = "annotation_publication" annotationMethod = "annotation_method" - methodLinks = "method_links" groundTruthStatus = "ground_truth_status" objectId = "object_id" objectName = "object_name" @@ -508,10 +565,6 @@ class AnnotationCreateInput: annotation_method: str = strawberry.field( description="Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)", ) - method_links: Optional[str] = strawberry.field( - description="Provides links to information on the method used for generating annotation, comma separated", - default=None, - ) ground_truth_status: Optional[bool] = strawberry.field( description="Whether an annotation is considered ground truth, as determined by the annotator.", default=None, ) @@ -579,10 +632,6 @@ class AnnotationUpdateInput: annotation_method: Optional[str] = strawberry.field( description="Describe how the annotation is made (e.g. Manual, crYoLO, Positive Unlabeled Learning, template matching)", ) - method_links: Optional[str] = strawberry.field( - description="Provides links to information on the method used for generating annotation, comma separated", - default=None, - ) ground_truth_status: Optional[bool] = strawberry.field( description="Whether an annotation is considered ground truth, as determined by the annotator.", default=None, ) diff --git a/apiv2/graphql_api/types/annotation_method_link.py b/apiv2/graphql_api/types/annotation_method_link.py new file mode 100644 index 000000000..256e2cdc9 --- /dev/null +++ b/apiv2/graphql_api/types/annotation_method_link.py @@ -0,0 +1,493 @@ +""" +GraphQL type for AnnotationMethodLink + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/types/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import datetime +import enum +import typing +from typing import TYPE_CHECKING, Annotated, Optional, Sequence + +import database.models as db +import strawberry +from fastapi import Depends +from graphql_api.helpers.annotation_method_link import ( + AnnotationMethodLinkGroupByOptions, + build_annotation_method_link_groupby_output, +) +from sqlalchemy import inspect +from sqlalchemy.engine.row import RowMapping +from sqlalchemy.ext.asyncio import AsyncSession +from strawberry.types import Info +from support.enums import annotation_method_link_type_enum +from support.limit_offset import LimitOffsetClause +from typing_extensions import TypedDict +from validators.annotation_method_link import ( + AnnotationMethodLinkCreateInputValidator, + AnnotationMethodLinkUpdateInputValidator, +) + +from platformics.graphql_api.core.deps import get_authz_client, get_db_session, is_system_user, require_auth_principal +from platformics.graphql_api.core.errors import PlatformicsError +from platformics.graphql_api.core.query_builder import get_aggregate_db_rows, get_db_rows +from platformics.graphql_api.core.query_input_types import ( + EnumComparators, + IntComparators, + StrComparators, + aggregator_map, + orderBy, +) +from platformics.graphql_api.core.relay_interface import EntityInterface +from platformics.graphql_api.core.strawberry_extensions import DependencyExtension +from platformics.security.authorization import AuthzAction, AuthzClient, Principal + +E = typing.TypeVar("E") +T = typing.TypeVar("T") + +if TYPE_CHECKING: + from graphql_api.types.annotation import Annotation, AnnotationOrderByClause, AnnotationWhereClause + + pass +else: + AnnotationWhereClause = "AnnotationWhereClause" + Annotation = "Annotation" + AnnotationOrderByClause = "AnnotationOrderByClause" + pass + + +""" +------------------------------------------------------------------------------ +Dataloaders +------------------------------------------------------------------------------ +These are batching functions for loading related objects to avoid N+1 queries. +""" + + +@strawberry.field +async def load_annotation_rows( + root: "AnnotationMethodLink", + info: Info, + where: Annotated["AnnotationWhereClause", strawberry.lazy("graphql_api.types.annotation")] | None = None, + order_by: Optional[ + list[Annotated["AnnotationOrderByClause", strawberry.lazy("graphql_api.types.annotation")]] + ] = [], +) -> Optional[Annotated["Annotation", strawberry.lazy("graphql_api.types.annotation")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.AnnotationMethodLink) + relationship = mapper.relationships["annotation"] + return await dataloader.loader_for(relationship, where, order_by).load(root.annotation_id) # type:ignore + + +""" +------------------------------------------------------------------------------ +Define Strawberry GQL types +------------------------------------------------------------------------------ +""" + + +""" +Only let users specify IDs in WHERE clause when mutating data (for safety). +We can extend that list as we gather more use cases from the FE team. +""" + + +@strawberry.input +class AnnotationMethodLinkWhereClauseMutations(TypedDict): + id: IntComparators | None + + +""" +Supported WHERE clause attributes +""" + + +@strawberry.input +class AnnotationMethodLinkWhereClause(TypedDict): + annotation: Optional[Annotated["AnnotationWhereClause", strawberry.lazy("graphql_api.types.annotation")]] | None + annotation_id: Optional[IntComparators] | None + link_type: Optional[EnumComparators[annotation_method_link_type_enum]] | None + name: Optional[StrComparators] | None + link: Optional[StrComparators] | None + id: Optional[IntComparators] | None + + +""" +Supported ORDER BY clause attributes +""" + + +@strawberry.input +class AnnotationMethodLinkOrderByClause(TypedDict): + annotation: Optional[Annotated["AnnotationOrderByClause", strawberry.lazy("graphql_api.types.annotation")]] | None + link_type: Optional[orderBy] | None + name: Optional[orderBy] | None + link: Optional[orderBy] | None + id: Optional[orderBy] | None + + +""" +Define AnnotationMethodLink type +""" + + +@strawberry.type( + description="A set of links to models, source code, documentation, etc referenced by annotation method", +) +class AnnotationMethodLink(EntityInterface): + annotation: Optional[Annotated["Annotation", strawberry.lazy("graphql_api.types.annotation")]] = ( + load_annotation_rows + ) # type:ignore + annotation_id: Optional[int] + link_type: annotation_method_link_type_enum = strawberry.field( + description="Type of link (e.g. model, source code, documentation)", + ) + name: Optional[str] = strawberry.field(description="user readable name of the resource", default=None) + link: str = strawberry.field(description="URL to the resource") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +""" +We need to add this to each Queryable type so that strawberry will accept either our +Strawberry type *or* a SQLAlchemy model instance as a valid response class from a resolver +""" +AnnotationMethodLink.__strawberry_definition__.is_type_of = ( # type: ignore + lambda obj, info: type(obj) == db.AnnotationMethodLink or type(obj) == AnnotationMethodLink +) + +""" +------------------------------------------------------------------------------ +Aggregation types +------------------------------------------------------------------------------ +""" +""" +Define columns that support numerical aggregations +""" + + +@strawberry.type +class AnnotationMethodLinkNumericalColumns: + id: Optional[int] = None + + +""" +Define columns that support min/max aggregations +""" + + +@strawberry.type +class AnnotationMethodLinkMinMaxColumns: + name: Optional[str] = None + link: Optional[str] = None + id: Optional[int] = None + + +""" +Define enum of all columns to support count and count(distinct) aggregations +""" + + +@strawberry.enum +class AnnotationMethodLinkCountColumns(enum.Enum): + annotation = "annotation" + linkType = "link_type" + name = "name" + link = "link" + id = "id" + + +""" +All supported aggregation functions +""" + + +@strawberry.type +class AnnotationMethodLinkAggregateFunctions: + # This is a hack to accept "distinct" and "columns" as arguments to "count" + @strawberry.field + def count( + self, distinct: Optional[bool] = False, columns: Optional[AnnotationMethodLinkCountColumns] = None, + ) -> Optional[int]: + # Count gets set with the proper value in the resolver, so we just return it here + return self.count # type: ignore + + sum: Optional[AnnotationMethodLinkNumericalColumns] = None + avg: Optional[AnnotationMethodLinkNumericalColumns] = None + stddev: Optional[AnnotationMethodLinkNumericalColumns] = None + variance: Optional[AnnotationMethodLinkNumericalColumns] = None + min: Optional[AnnotationMethodLinkMinMaxColumns] = None + max: Optional[AnnotationMethodLinkMinMaxColumns] = None + groupBy: Optional[AnnotationMethodLinkGroupByOptions] = None + + +""" +Wrapper around AnnotationMethodLinkAggregateFunctions +""" + + +@strawberry.type +class AnnotationMethodLinkAggregate: + aggregate: Optional[list[AnnotationMethodLinkAggregateFunctions]] = None + + +""" +------------------------------------------------------------------------------ +Mutation types +------------------------------------------------------------------------------ +""" + + +@strawberry.input() +class AnnotationMethodLinkCreateInput: + annotation_id: Optional[strawberry.ID] = strawberry.field( + description="Reference to annotation this link applies to", default=None, + ) + link_type: annotation_method_link_type_enum = strawberry.field( + description="Type of link (e.g. model, source code, documentation)", + ) + name: Optional[str] = strawberry.field(description="user readable name of the resource", default=None) + link: str = strawberry.field(description="URL to the resource") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +@strawberry.input() +class AnnotationMethodLinkUpdateInput: + annotation_id: Optional[strawberry.ID] = strawberry.field( + description="Reference to annotation this link applies to", default=None, + ) + link_type: Optional[annotation_method_link_type_enum] = strawberry.field( + description="Type of link (e.g. model, source code, documentation)", + ) + name: Optional[str] = strawberry.field(description="user readable name of the resource", default=None) + link: Optional[str] = strawberry.field(description="URL to the resource") + id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") + + +""" +------------------------------------------------------------------------------ +Utilities +------------------------------------------------------------------------------ +""" + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_annotation_method_links( + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[AnnotationMethodLinkWhereClause] = None, + order_by: Optional[list[AnnotationMethodLinkOrderByClause]] = [], + limit_offset: Optional[LimitOffsetClause] = None, +) -> typing.Sequence[AnnotationMethodLink]: + """ + Resolve AnnotationMethodLink objects. Used for queries (see graphql_api/queries.py). + """ + limit = limit_offset["limit"] if limit_offset and "limit" in limit_offset else None + offset = limit_offset["offset"] if limit_offset and "offset" in limit_offset else None + if offset and not limit: + raise PlatformicsError("Cannot use offset without limit") + return await get_db_rows(db.AnnotationMethodLink, session, authz_client, principal, where, order_by, AuthzAction.VIEW, limit, offset) # type: ignore + + +def format_annotation_method_link_aggregate_output( + query_results: Sequence[RowMapping] | RowMapping, +) -> AnnotationMethodLinkAggregate: + """ + Given a row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + aggregate = [] + if type(query_results) is not list: + query_results = [query_results] # type: ignore + for row in query_results: + aggregate.append(format_annotation_method_link_aggregate_row(row)) + return AnnotationMethodLinkAggregate(aggregate=aggregate) + + +def format_annotation_method_link_aggregate_row(row: RowMapping) -> AnnotationMethodLinkAggregateFunctions: + """ + Given a single row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + output = AnnotationMethodLinkAggregateFunctions() + for key, value in row.items(): + # Key is either an aggregate function or a groupby key + group_keys = key.split(".") + aggregate = key.split("_", 1) + if aggregate[0] not in aggregator_map.keys(): + # Turn list of groupby keys into nested objects + if not output.groupBy: + output.groupBy = AnnotationMethodLinkGroupByOptions() + group = build_annotation_method_link_groupby_output(output.groupBy, group_keys, value) + output.groupBy = group + else: + aggregate_name = aggregate[0] + if aggregate_name == "count": + output.count = value + else: + aggregator_fn, col_name = aggregate[0], aggregate[1] + if not getattr(output, aggregator_fn): + if aggregate_name in ["min", "max"]: + setattr(output, aggregator_fn, AnnotationMethodLinkMinMaxColumns()) + else: + setattr(output, aggregator_fn, AnnotationMethodLinkNumericalColumns()) + setattr(getattr(output, aggregator_fn), col_name, value) + return output + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_annotation_method_links_aggregate( + info: Info, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[AnnotationMethodLinkWhereClause] = None, + # TODO: add support for groupby, limit/offset +) -> AnnotationMethodLinkAggregate: + """ + Aggregate values for AnnotationMethodLink objects. Used for queries (see graphql_api/queries.py). + """ + # Get the selected aggregate functions and columns to operate on, and groupby options if any were provided. + # TODO: not sure why selected_fields is a list + selections = info.selected_fields[0].selections[0].selections + aggregate_selections = [selection for selection in selections if selection.name != "groupBy"] + groupby_selections = [selection for selection in selections if selection.name == "groupBy"] + groupby_selections = groupby_selections[0].selections if groupby_selections else [] + + if not aggregate_selections: + raise PlatformicsError("No aggregate functions selected") + + rows = await get_aggregate_db_rows(db.AnnotationMethodLink, session, authz_client, principal, where, aggregate_selections, [], groupby_selections) # type: ignore + aggregate_output = format_annotation_method_link_aggregate_output(rows) + return aggregate_output + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def create_annotation_method_link( + input: AnnotationMethodLinkCreateInput, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> db.AnnotationMethodLink: + """ + Create a new AnnotationMethodLink object. Used for mutations (see graphql_api/mutations.py). + """ + validated = AnnotationMethodLinkCreateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Validate that the user can read all of the entities they're linking to. + + # Validate that the user can read all of the entities they're linking to. + # Check that annotation relationship is accessible. + if validated.annotation_id: + annotation = await get_db_rows( + db.Annotation, + session, + authz_client, + principal, + {"id": {"_eq": validated.annotation_id}}, + [], + AuthzAction.VIEW, + ) + if not annotation: + raise PlatformicsError("Unauthorized: annotation does not exist") + + # Save to DB + params["owner_user_id"] = int(principal.id) + new_entity = db.AnnotationMethodLink(**params) + + # Are we actually allowed to create this entity? + if not authz_client.can_create(new_entity, principal): + raise PlatformicsError("Unauthorized: Cannot create entity") + + session.add(new_entity) + await session.commit() + return new_entity + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def update_annotation_method_link( + input: AnnotationMethodLinkUpdateInput, + where: AnnotationMethodLinkWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> Sequence[db.AnnotationMethodLink]: + """ + Update AnnotationMethodLink objects. Used for mutations (see graphql_api/mutations.py). + """ + validated = AnnotationMethodLinkUpdateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Need at least one thing to update + num_params = len([x for x in params if params[x] is not None]) + if num_params == 0: + raise PlatformicsError("No fields to update") + + # Validate that the user can read all of the entities they're linking to. + # Check that annotation relationship is accessible. + if validated.annotation_id: + annotation = await get_db_rows( + db.Annotation, + session, + authz_client, + principal, + {"id": {"_eq": validated.annotation_id}}, + [], + AuthzAction.VIEW, + ) + if not annotation: + raise PlatformicsError("Unauthorized: annotation does not exist") + params["annotation"] = annotation[0] + del params["annotation_id"] + + # Fetch entities for update, if we have access to them + entities = await get_db_rows( + db.AnnotationMethodLink, session, authz_client, principal, where, [], AuthzAction.UPDATE, + ) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot update entities") + + # Update DB + updated_at = datetime.datetime.now() + for entity in entities: + entity.updated_at = updated_at + for key in params: + if params[key] is not None: + setattr(entity, key, params[key]) + + if not authz_client.can_update(entity, principal): + raise PlatformicsError("Unauthorized: Cannot access new collection") + + await session.commit() + return entities + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def delete_annotation_method_link( + where: AnnotationMethodLinkWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), +) -> Sequence[db.AnnotationMethodLink]: + """ + Delete AnnotationMethodLink objects. Used for mutations (see graphql_api/mutations.py). + """ + # Fetch entities for deletion, if we have access to them + entities = await get_db_rows( + db.AnnotationMethodLink, session, authz_client, principal, where, [], AuthzAction.DELETE, + ) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot delete entities") + + # Update DB + for entity in entities: + await session.delete(entity) + await session.commit() + return entities diff --git a/apiv2/graphql_api/types/frame.py b/apiv2/graphql_api/types/frame.py index 2da96e73f..10246c6d7 100644 --- a/apiv2/graphql_api/types/frame.py +++ b/apiv2/graphql_api/types/frame.py @@ -17,14 +17,9 @@ import strawberry from fastapi import Depends from graphql_api.helpers.frame import FrameGroupByOptions, build_frame_groupby_output -from graphql_api.types.per_section_parameters import ( - PerSectionParametersAggregate, - format_per_section_parameters_aggregate_output, -) from sqlalchemy import inspect from sqlalchemy.engine.row import RowMapping from sqlalchemy.ext.asyncio import AsyncSession -from strawberry import relay from strawberry.types import Info from support.limit_offset import LimitOffsetClause from typing_extensions import TypedDict @@ -50,11 +45,6 @@ if TYPE_CHECKING: from graphql_api.types.deposition import Deposition, DepositionOrderByClause, DepositionWhereClause - from graphql_api.types.per_section_parameters import ( - PerSectionParameters, - PerSectionParametersOrderByClause, - PerSectionParametersWhereClause, - ) from graphql_api.types.run import Run, RunOrderByClause, RunWhereClause pass @@ -62,9 +52,6 @@ DepositionWhereClause = "DepositionWhereClause" Deposition = "Deposition" DepositionOrderByClause = "DepositionOrderByClause" - PerSectionParametersWhereClause = "PerSectionParametersWhereClause" - PerSectionParameters = "PerSectionParameters" - PerSectionParametersOrderByClause = "PerSectionParametersOrderByClause" RunWhereClause = "RunWhereClause" Run = "Run" RunOrderByClause = "RunOrderByClause" @@ -94,46 +81,6 @@ async def load_deposition_rows( return await dataloader.loader_for(relationship, where, order_by).load(root.deposition_id) # type:ignore -@relay.connection( - relay.ListConnection[ - Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")] - ], # type:ignore -) -async def load_per_section_parameters_rows( - root: "Frame", - info: Info, - where: ( - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] | None - ) = None, - order_by: Optional[ - list[ - Annotated["PerSectionParametersOrderByClause", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] - ] = [], -) -> Sequence[Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")]]: - dataloader = info.context["sqlalchemy_loader"] - mapper = inspect(db.Frame) - relationship = mapper.relationships["per_section_parameters"] - return await dataloader.loader_for(relationship, where, order_by).load(root.id) # type:ignore - - -@strawberry.field -async def load_per_section_parameters_aggregate_rows( - root: "Frame", - info: Info, - where: ( - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] | None - ) = None, -) -> Optional[Annotated["PerSectionParametersAggregate", strawberry.lazy("graphql_api.types.per_section_parameters")]]: - selections = info.selected_fields[0].selections[0].selections - dataloader = info.context["sqlalchemy_loader"] - mapper = inspect(db.Frame) - relationship = mapper.relationships["per_section_parameters"] - rows = await dataloader.aggregate_loader_for(relationship, where, selections).load(root.id) # type:ignore - aggregate_output = format_per_section_parameters_aggregate_output(rows) - return aggregate_output - - @strawberry.field async def load_run_rows( root: "Frame", @@ -174,20 +121,12 @@ class FrameWhereClauseMutations(TypedDict): class FrameWhereClause(TypedDict): deposition: Optional[Annotated["DepositionWhereClause", strawberry.lazy("graphql_api.types.deposition")]] | None deposition_id: Optional[IntComparators] | None - per_section_parameters: ( - Optional[ - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] - | None - ) run: Optional[Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")]] | None run_id: Optional[IntComparators] | None raw_angle: Optional[FloatComparators] | None acquisition_order: Optional[IntComparators] | None dose: Optional[FloatComparators] | None is_gain_corrected: Optional[BoolComparators] | None - s3_gain_file: Optional[StrComparators] | None - https_gain_file: Optional[StrComparators] | None s3_prefix: Optional[StrComparators] | None https_prefix: Optional[StrComparators] | None id: Optional[IntComparators] | None @@ -206,8 +145,6 @@ class FrameOrderByClause(TypedDict): acquisition_order: Optional[orderBy] | None dose: Optional[orderBy] | None is_gain_corrected: Optional[orderBy] | None - s3_gain_file: Optional[orderBy] | None - https_gain_file: Optional[orderBy] | None s3_prefix: Optional[orderBy] | None https_prefix: Optional[orderBy] | None id: Optional[orderBy] | None @@ -224,12 +161,6 @@ class Frame(EntityInterface): load_deposition_rows ) # type:ignore deposition_id: Optional[int] - per_section_parameters: Sequence[ - Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] = load_per_section_parameters_rows # type:ignore - per_section_parameters_aggregate: Optional[ - Annotated["PerSectionParametersAggregate", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] = load_per_section_parameters_aggregate_rows # type:ignore run: Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]] = load_run_rows # type:ignore run_id: Optional[int] raw_angle: float = strawberry.field(description="Camera angle for a frame") @@ -240,10 +171,6 @@ class Frame(EntityInterface): is_gain_corrected: Optional[bool] = strawberry.field( description="Whether this frame has been gain corrected", default=None, ) - s3_gain_file: Optional[str] = strawberry.field(description="S3 path to the gain file for this frame", default=None) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this frame", default=None, - ) s3_prefix: str = strawberry.field(description="Path to a directory containing data for this entity as an S3 url") https_prefix: str = strawberry.field( description="Path to a directory containing data for this entity as an HTTPS url", @@ -287,8 +214,6 @@ class FrameMinMaxColumns: raw_angle: Optional[float] = None acquisition_order: Optional[int] = None dose: Optional[float] = None - s3_gain_file: Optional[str] = None - https_gain_file: Optional[str] = None s3_prefix: Optional[str] = None https_prefix: Optional[str] = None id: Optional[int] = None @@ -302,14 +227,11 @@ class FrameMinMaxColumns: @strawberry.enum class FrameCountColumns(enum.Enum): deposition = "deposition" - perSectionParameters = "per_section_parameters" run = "run" rawAngle = "raw_angle" acquisitionOrder = "acquisition_order" dose = "dose" isGainCorrected = "is_gain_corrected" - s3GainFile = "s3_gain_file" - httpsGainFile = "https_gain_file" s3Prefix = "s3_prefix" httpsPrefix = "https_prefix" id = "id" @@ -366,10 +288,6 @@ class FrameCreateInput: is_gain_corrected: Optional[bool] = strawberry.field( description="Whether this frame has been gain corrected", default=None, ) - s3_gain_file: Optional[str] = strawberry.field(description="S3 path to the gain file for this frame", default=None) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this frame", default=None, - ) s3_prefix: str = strawberry.field(description="Path to a directory containing data for this entity as an S3 url") https_prefix: str = strawberry.field( description="Path to a directory containing data for this entity as an HTTPS url", @@ -389,10 +307,6 @@ class FrameUpdateInput: is_gain_corrected: Optional[bool] = strawberry.field( description="Whether this frame has been gain corrected", default=None, ) - s3_gain_file: Optional[str] = strawberry.field(description="S3 path to the gain file for this frame", default=None) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this frame", default=None, - ) s3_prefix: Optional[str] = strawberry.field( description="Path to a directory containing data for this entity as an S3 url", ) diff --git a/apiv2/graphql_api/types/frame_acquisition_file.py b/apiv2/graphql_api/types/frame_acquisition_file.py new file mode 100644 index 000000000..e3a990d8b --- /dev/null +++ b/apiv2/graphql_api/types/frame_acquisition_file.py @@ -0,0 +1,459 @@ +""" +GraphQL type for FrameAcquisitionFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/types/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import datetime +import enum +import typing +from typing import TYPE_CHECKING, Annotated, Optional, Sequence + +import database.models as db +import strawberry +from fastapi import Depends +from graphql_api.helpers.frame_acquisition_file import ( + FrameAcquisitionFileGroupByOptions, + build_frame_acquisition_file_groupby_output, +) +from sqlalchemy import inspect +from sqlalchemy.engine.row import RowMapping +from sqlalchemy.ext.asyncio import AsyncSession +from strawberry.types import Info +from support.limit_offset import LimitOffsetClause +from typing_extensions import TypedDict +from validators.frame_acquisition_file import ( + FrameAcquisitionFileCreateInputValidator, + FrameAcquisitionFileUpdateInputValidator, +) + +from platformics.graphql_api.core.deps import get_authz_client, get_db_session, is_system_user, require_auth_principal +from platformics.graphql_api.core.errors import PlatformicsError +from platformics.graphql_api.core.query_builder import get_aggregate_db_rows, get_db_rows +from platformics.graphql_api.core.query_input_types import ( + IntComparators, + StrComparators, + aggregator_map, + orderBy, +) +from platformics.graphql_api.core.relay_interface import EntityInterface +from platformics.graphql_api.core.strawberry_extensions import DependencyExtension +from platformics.security.authorization import AuthzAction, AuthzClient, Principal + +E = typing.TypeVar("E") +T = typing.TypeVar("T") + +if TYPE_CHECKING: + from graphql_api.types.run import Run, RunOrderByClause, RunWhereClause + + pass +else: + RunWhereClause = "RunWhereClause" + Run = "Run" + RunOrderByClause = "RunOrderByClause" + pass + + +""" +------------------------------------------------------------------------------ +Dataloaders +------------------------------------------------------------------------------ +These are batching functions for loading related objects to avoid N+1 queries. +""" + + +@strawberry.field +async def load_run_rows( + root: "FrameAcquisitionFile", + info: Info, + where: Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")] | None = None, + order_by: Optional[list[Annotated["RunOrderByClause", strawberry.lazy("graphql_api.types.run")]]] = [], +) -> Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.FrameAcquisitionFile) + relationship = mapper.relationships["run"] + return await dataloader.loader_for(relationship, where, order_by).load(root.run_id) # type:ignore + + +""" +------------------------------------------------------------------------------ +Define Strawberry GQL types +------------------------------------------------------------------------------ +""" + + +""" +Only let users specify IDs in WHERE clause when mutating data (for safety). +We can extend that list as we gather more use cases from the FE team. +""" + + +@strawberry.input +class FrameAcquisitionFileWhereClauseMutations(TypedDict): + id: IntComparators | None + + +""" +Supported WHERE clause attributes +""" + + +@strawberry.input +class FrameAcquisitionFileWhereClause(TypedDict): + run: Optional[Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")]] | None + run_id: Optional[IntComparators] | None + s3_mdoc_path: Optional[StrComparators] | None + https_mdoc_path: Optional[StrComparators] | None + id: Optional[IntComparators] | None + + +""" +Supported ORDER BY clause attributes +""" + + +@strawberry.input +class FrameAcquisitionFileOrderByClause(TypedDict): + run: Optional[Annotated["RunOrderByClause", strawberry.lazy("graphql_api.types.run")]] | None + s3_mdoc_path: Optional[orderBy] | None + https_mdoc_path: Optional[orderBy] | None + id: Optional[orderBy] | None + + +""" +Define FrameAcquisitionFile type +""" + + +@strawberry.type(description="References to files containing more information about frame acquisition") +class FrameAcquisitionFile(EntityInterface): + run: Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]] = load_run_rows # type:ignore + run_id: Optional[int] + s3_mdoc_path: str = strawberry.field(description="Path to the frame acquisition mdoc file in s3") + https_mdoc_path: str = strawberry.field(description="Path to the frame acquisition mdoc file as an https url") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +""" +We need to add this to each Queryable type so that strawberry will accept either our +Strawberry type *or* a SQLAlchemy model instance as a valid response class from a resolver +""" +FrameAcquisitionFile.__strawberry_definition__.is_type_of = ( # type: ignore + lambda obj, info: type(obj) == db.FrameAcquisitionFile or type(obj) == FrameAcquisitionFile +) + +""" +------------------------------------------------------------------------------ +Aggregation types +------------------------------------------------------------------------------ +""" +""" +Define columns that support numerical aggregations +""" + + +@strawberry.type +class FrameAcquisitionFileNumericalColumns: + id: Optional[int] = None + + +""" +Define columns that support min/max aggregations +""" + + +@strawberry.type +class FrameAcquisitionFileMinMaxColumns: + s3_mdoc_path: Optional[str] = None + https_mdoc_path: Optional[str] = None + id: Optional[int] = None + + +""" +Define enum of all columns to support count and count(distinct) aggregations +""" + + +@strawberry.enum +class FrameAcquisitionFileCountColumns(enum.Enum): + run = "run" + s3MdocPath = "s3_mdoc_path" + httpsMdocPath = "https_mdoc_path" + id = "id" + + +""" +All supported aggregation functions +""" + + +@strawberry.type +class FrameAcquisitionFileAggregateFunctions: + # This is a hack to accept "distinct" and "columns" as arguments to "count" + @strawberry.field + def count( + self, distinct: Optional[bool] = False, columns: Optional[FrameAcquisitionFileCountColumns] = None, + ) -> Optional[int]: + # Count gets set with the proper value in the resolver, so we just return it here + return self.count # type: ignore + + sum: Optional[FrameAcquisitionFileNumericalColumns] = None + avg: Optional[FrameAcquisitionFileNumericalColumns] = None + stddev: Optional[FrameAcquisitionFileNumericalColumns] = None + variance: Optional[FrameAcquisitionFileNumericalColumns] = None + min: Optional[FrameAcquisitionFileMinMaxColumns] = None + max: Optional[FrameAcquisitionFileMinMaxColumns] = None + groupBy: Optional[FrameAcquisitionFileGroupByOptions] = None + + +""" +Wrapper around FrameAcquisitionFileAggregateFunctions +""" + + +@strawberry.type +class FrameAcquisitionFileAggregate: + aggregate: Optional[list[FrameAcquisitionFileAggregateFunctions]] = None + + +""" +------------------------------------------------------------------------------ +Mutation types +------------------------------------------------------------------------------ +""" + + +@strawberry.input() +class FrameAcquisitionFileCreateInput: + run_id: Optional[strawberry.ID] = strawberry.field(description=None, default=None) + s3_mdoc_path: str = strawberry.field(description="Path to the frame acquisition mdoc file in s3") + https_mdoc_path: str = strawberry.field(description="Path to the frame acquisition mdoc file as an https url") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +@strawberry.input() +class FrameAcquisitionFileUpdateInput: + run_id: Optional[strawberry.ID] = strawberry.field(description=None, default=None) + s3_mdoc_path: Optional[str] = strawberry.field(description="Path to the frame acquisition mdoc file in s3") + https_mdoc_path: Optional[str] = strawberry.field( + description="Path to the frame acquisition mdoc file as an https url", + ) + id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") + + +""" +------------------------------------------------------------------------------ +Utilities +------------------------------------------------------------------------------ +""" + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_frame_acquisition_files( + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[FrameAcquisitionFileWhereClause] = None, + order_by: Optional[list[FrameAcquisitionFileOrderByClause]] = [], + limit_offset: Optional[LimitOffsetClause] = None, +) -> typing.Sequence[FrameAcquisitionFile]: + """ + Resolve FrameAcquisitionFile objects. Used for queries (see graphql_api/queries.py). + """ + limit = limit_offset["limit"] if limit_offset and "limit" in limit_offset else None + offset = limit_offset["offset"] if limit_offset and "offset" in limit_offset else None + if offset and not limit: + raise PlatformicsError("Cannot use offset without limit") + return await get_db_rows(db.FrameAcquisitionFile, session, authz_client, principal, where, order_by, AuthzAction.VIEW, limit, offset) # type: ignore + + +def format_frame_acquisition_file_aggregate_output( + query_results: Sequence[RowMapping] | RowMapping, +) -> FrameAcquisitionFileAggregate: + """ + Given a row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + aggregate = [] + if type(query_results) is not list: + query_results = [query_results] # type: ignore + for row in query_results: + aggregate.append(format_frame_acquisition_file_aggregate_row(row)) + return FrameAcquisitionFileAggregate(aggregate=aggregate) + + +def format_frame_acquisition_file_aggregate_row(row: RowMapping) -> FrameAcquisitionFileAggregateFunctions: + """ + Given a single row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + output = FrameAcquisitionFileAggregateFunctions() + for key, value in row.items(): + # Key is either an aggregate function or a groupby key + group_keys = key.split(".") + aggregate = key.split("_", 1) + if aggregate[0] not in aggregator_map.keys(): + # Turn list of groupby keys into nested objects + if not output.groupBy: + output.groupBy = FrameAcquisitionFileGroupByOptions() + group = build_frame_acquisition_file_groupby_output(output.groupBy, group_keys, value) + output.groupBy = group + else: + aggregate_name = aggregate[0] + if aggregate_name == "count": + output.count = value + else: + aggregator_fn, col_name = aggregate[0], aggregate[1] + if not getattr(output, aggregator_fn): + if aggregate_name in ["min", "max"]: + setattr(output, aggregator_fn, FrameAcquisitionFileMinMaxColumns()) + else: + setattr(output, aggregator_fn, FrameAcquisitionFileNumericalColumns()) + setattr(getattr(output, aggregator_fn), col_name, value) + return output + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_frame_acquisition_files_aggregate( + info: Info, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[FrameAcquisitionFileWhereClause] = None, + # TODO: add support for groupby, limit/offset +) -> FrameAcquisitionFileAggregate: + """ + Aggregate values for FrameAcquisitionFile objects. Used for queries (see graphql_api/queries.py). + """ + # Get the selected aggregate functions and columns to operate on, and groupby options if any were provided. + # TODO: not sure why selected_fields is a list + selections = info.selected_fields[0].selections[0].selections + aggregate_selections = [selection for selection in selections if selection.name != "groupBy"] + groupby_selections = [selection for selection in selections if selection.name == "groupBy"] + groupby_selections = groupby_selections[0].selections if groupby_selections else [] + + if not aggregate_selections: + raise PlatformicsError("No aggregate functions selected") + + rows = await get_aggregate_db_rows(db.FrameAcquisitionFile, session, authz_client, principal, where, aggregate_selections, [], groupby_selections) # type: ignore + aggregate_output = format_frame_acquisition_file_aggregate_output(rows) + return aggregate_output + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def create_frame_acquisition_file( + input: FrameAcquisitionFileCreateInput, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> db.FrameAcquisitionFile: + """ + Create a new FrameAcquisitionFile object. Used for mutations (see graphql_api/mutations.py). + """ + validated = FrameAcquisitionFileCreateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Validate that the user can read all of the entities they're linking to. + + # Validate that the user can read all of the entities they're linking to. + # Check that run relationship is accessible. + if validated.run_id: + run = await get_db_rows( + db.Run, session, authz_client, principal, {"id": {"_eq": validated.run_id}}, [], AuthzAction.VIEW, + ) + if not run: + raise PlatformicsError("Unauthorized: run does not exist") + + # Save to DB + params["owner_user_id"] = int(principal.id) + new_entity = db.FrameAcquisitionFile(**params) + + # Are we actually allowed to create this entity? + if not authz_client.can_create(new_entity, principal): + raise PlatformicsError("Unauthorized: Cannot create entity") + + session.add(new_entity) + await session.commit() + return new_entity + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def update_frame_acquisition_file( + input: FrameAcquisitionFileUpdateInput, + where: FrameAcquisitionFileWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> Sequence[db.FrameAcquisitionFile]: + """ + Update FrameAcquisitionFile objects. Used for mutations (see graphql_api/mutations.py). + """ + validated = FrameAcquisitionFileUpdateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Need at least one thing to update + num_params = len([x for x in params if params[x] is not None]) + if num_params == 0: + raise PlatformicsError("No fields to update") + + # Validate that the user can read all of the entities they're linking to. + # Check that run relationship is accessible. + if validated.run_id: + run = await get_db_rows( + db.Run, session, authz_client, principal, {"id": {"_eq": validated.run_id}}, [], AuthzAction.VIEW, + ) + if not run: + raise PlatformicsError("Unauthorized: run does not exist") + params["run"] = run[0] + del params["run_id"] + + # Fetch entities for update, if we have access to them + entities = await get_db_rows( + db.FrameAcquisitionFile, session, authz_client, principal, where, [], AuthzAction.UPDATE, + ) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot update entities") + + # Update DB + updated_at = datetime.datetime.now() + for entity in entities: + entity.updated_at = updated_at + for key in params: + if params[key] is not None: + setattr(entity, key, params[key]) + + if not authz_client.can_update(entity, principal): + raise PlatformicsError("Unauthorized: Cannot access new collection") + + await session.commit() + return entities + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def delete_frame_acquisition_file( + where: FrameAcquisitionFileWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), +) -> Sequence[db.FrameAcquisitionFile]: + """ + Delete FrameAcquisitionFile objects. Used for mutations (see graphql_api/mutations.py). + """ + # Fetch entities for deletion, if we have access to them + entities = await get_db_rows( + db.FrameAcquisitionFile, session, authz_client, principal, where, [], AuthzAction.DELETE, + ) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot delete entities") + + # Update DB + for entity in entities: + await session.delete(entity) + await session.commit() + return entities diff --git a/apiv2/graphql_api/types/gain_file.py b/apiv2/graphql_api/types/gain_file.py new file mode 100644 index 000000000..063c429c8 --- /dev/null +++ b/apiv2/graphql_api/types/gain_file.py @@ -0,0 +1,443 @@ +""" +GraphQL type for GainFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/graphql_api/types/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import datetime +import enum +import typing +from typing import TYPE_CHECKING, Annotated, Optional, Sequence + +import database.models as db +import strawberry +from fastapi import Depends +from graphql_api.helpers.gain_file import GainFileGroupByOptions, build_gain_file_groupby_output +from sqlalchemy import inspect +from sqlalchemy.engine.row import RowMapping +from sqlalchemy.ext.asyncio import AsyncSession +from strawberry.types import Info +from support.limit_offset import LimitOffsetClause +from typing_extensions import TypedDict +from validators.gain_file import GainFileCreateInputValidator, GainFileUpdateInputValidator + +from platformics.graphql_api.core.deps import get_authz_client, get_db_session, is_system_user, require_auth_principal +from platformics.graphql_api.core.errors import PlatformicsError +from platformics.graphql_api.core.query_builder import get_aggregate_db_rows, get_db_rows +from platformics.graphql_api.core.query_input_types import ( + IntComparators, + StrComparators, + aggregator_map, + orderBy, +) +from platformics.graphql_api.core.relay_interface import EntityInterface +from platformics.graphql_api.core.strawberry_extensions import DependencyExtension +from platformics.security.authorization import AuthzAction, AuthzClient, Principal + +E = typing.TypeVar("E") +T = typing.TypeVar("T") + +if TYPE_CHECKING: + from graphql_api.types.run import Run, RunOrderByClause, RunWhereClause + + pass +else: + RunWhereClause = "RunWhereClause" + Run = "Run" + RunOrderByClause = "RunOrderByClause" + pass + + +""" +------------------------------------------------------------------------------ +Dataloaders +------------------------------------------------------------------------------ +These are batching functions for loading related objects to avoid N+1 queries. +""" + + +@strawberry.field +async def load_run_rows( + root: "GainFile", + info: Info, + where: Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")] | None = None, + order_by: Optional[list[Annotated["RunOrderByClause", strawberry.lazy("graphql_api.types.run")]]] = [], +) -> Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.GainFile) + relationship = mapper.relationships["run"] + return await dataloader.loader_for(relationship, where, order_by).load(root.run_id) # type:ignore + + +""" +------------------------------------------------------------------------------ +Define Strawberry GQL types +------------------------------------------------------------------------------ +""" + + +""" +Only let users specify IDs in WHERE clause when mutating data (for safety). +We can extend that list as we gather more use cases from the FE team. +""" + + +@strawberry.input +class GainFileWhereClauseMutations(TypedDict): + id: IntComparators | None + + +""" +Supported WHERE clause attributes +""" + + +@strawberry.input +class GainFileWhereClause(TypedDict): + run: Optional[Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")]] | None + run_id: Optional[IntComparators] | None + s3_file_path: Optional[StrComparators] | None + https_file_path: Optional[StrComparators] | None + id: Optional[IntComparators] | None + + +""" +Supported ORDER BY clause attributes +""" + + +@strawberry.input +class GainFileOrderByClause(TypedDict): + run: Optional[Annotated["RunOrderByClause", strawberry.lazy("graphql_api.types.run")]] | None + s3_file_path: Optional[orderBy] | None + https_file_path: Optional[orderBy] | None + id: Optional[orderBy] | None + + +""" +Define GainFile type +""" + + +@strawberry.type(description="Gain values for frames in this run") +class GainFile(EntityInterface): + run: Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]] = load_run_rows # type:ignore + run_id: Optional[int] + s3_file_path: str = strawberry.field(description="Path to the file in s3") + https_file_path: str = strawberry.field(description="Path to the file as an https url") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +""" +We need to add this to each Queryable type so that strawberry will accept either our +Strawberry type *or* a SQLAlchemy model instance as a valid response class from a resolver +""" +GainFile.__strawberry_definition__.is_type_of = ( # type: ignore + lambda obj, info: type(obj) == db.GainFile or type(obj) == GainFile +) + +""" +------------------------------------------------------------------------------ +Aggregation types +------------------------------------------------------------------------------ +""" +""" +Define columns that support numerical aggregations +""" + + +@strawberry.type +class GainFileNumericalColumns: + id: Optional[int] = None + + +""" +Define columns that support min/max aggregations +""" + + +@strawberry.type +class GainFileMinMaxColumns: + s3_file_path: Optional[str] = None + https_file_path: Optional[str] = None + id: Optional[int] = None + + +""" +Define enum of all columns to support count and count(distinct) aggregations +""" + + +@strawberry.enum +class GainFileCountColumns(enum.Enum): + run = "run" + s3FilePath = "s3_file_path" + httpsFilePath = "https_file_path" + id = "id" + + +""" +All supported aggregation functions +""" + + +@strawberry.type +class GainFileAggregateFunctions: + # This is a hack to accept "distinct" and "columns" as arguments to "count" + @strawberry.field + def count(self, distinct: Optional[bool] = False, columns: Optional[GainFileCountColumns] = None) -> Optional[int]: + # Count gets set with the proper value in the resolver, so we just return it here + return self.count # type: ignore + + sum: Optional[GainFileNumericalColumns] = None + avg: Optional[GainFileNumericalColumns] = None + stddev: Optional[GainFileNumericalColumns] = None + variance: Optional[GainFileNumericalColumns] = None + min: Optional[GainFileMinMaxColumns] = None + max: Optional[GainFileMinMaxColumns] = None + groupBy: Optional[GainFileGroupByOptions] = None + + +""" +Wrapper around GainFileAggregateFunctions +""" + + +@strawberry.type +class GainFileAggregate: + aggregate: Optional[list[GainFileAggregateFunctions]] = None + + +""" +------------------------------------------------------------------------------ +Mutation types +------------------------------------------------------------------------------ +""" + + +@strawberry.input() +class GainFileCreateInput: + run_id: Optional[strawberry.ID] = strawberry.field(description=None, default=None) + s3_file_path: str = strawberry.field(description="Path to the file in s3") + https_file_path: str = strawberry.field(description="Path to the file as an https url") + id: int = strawberry.field(description="Numeric identifier (May change!)") + + +@strawberry.input() +class GainFileUpdateInput: + run_id: Optional[strawberry.ID] = strawberry.field(description=None, default=None) + s3_file_path: Optional[str] = strawberry.field(description="Path to the file in s3") + https_file_path: Optional[str] = strawberry.field(description="Path to the file as an https url") + id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") + + +""" +------------------------------------------------------------------------------ +Utilities +------------------------------------------------------------------------------ +""" + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_gain_files( + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[GainFileWhereClause] = None, + order_by: Optional[list[GainFileOrderByClause]] = [], + limit_offset: Optional[LimitOffsetClause] = None, +) -> typing.Sequence[GainFile]: + """ + Resolve GainFile objects. Used for queries (see graphql_api/queries.py). + """ + limit = limit_offset["limit"] if limit_offset and "limit" in limit_offset else None + offset = limit_offset["offset"] if limit_offset and "offset" in limit_offset else None + if offset and not limit: + raise PlatformicsError("Cannot use offset without limit") + return await get_db_rows(db.GainFile, session, authz_client, principal, where, order_by, AuthzAction.VIEW, limit, offset) # type: ignore + + +def format_gain_file_aggregate_output(query_results: Sequence[RowMapping] | RowMapping) -> GainFileAggregate: + """ + Given a row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + aggregate = [] + if type(query_results) is not list: + query_results = [query_results] # type: ignore + for row in query_results: + aggregate.append(format_gain_file_aggregate_row(row)) + return GainFileAggregate(aggregate=aggregate) + + +def format_gain_file_aggregate_row(row: RowMapping) -> GainFileAggregateFunctions: + """ + Given a single row from the DB containing the results of an aggregate query, + format the results using the proper GraphQL types. + """ + output = GainFileAggregateFunctions() + for key, value in row.items(): + # Key is either an aggregate function or a groupby key + group_keys = key.split(".") + aggregate = key.split("_", 1) + if aggregate[0] not in aggregator_map.keys(): + # Turn list of groupby keys into nested objects + if not output.groupBy: + output.groupBy = GainFileGroupByOptions() + group = build_gain_file_groupby_output(output.groupBy, group_keys, value) + output.groupBy = group + else: + aggregate_name = aggregate[0] + if aggregate_name == "count": + output.count = value + else: + aggregator_fn, col_name = aggregate[0], aggregate[1] + if not getattr(output, aggregator_fn): + if aggregate_name in ["min", "max"]: + setattr(output, aggregator_fn, GainFileMinMaxColumns()) + else: + setattr(output, aggregator_fn, GainFileNumericalColumns()) + setattr(getattr(output, aggregator_fn), col_name, value) + return output + + +@strawberry.field(extensions=[DependencyExtension()]) +async def resolve_gain_files_aggregate( + info: Info, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + where: Optional[GainFileWhereClause] = None, + # TODO: add support for groupby, limit/offset +) -> GainFileAggregate: + """ + Aggregate values for GainFile objects. Used for queries (see graphql_api/queries.py). + """ + # Get the selected aggregate functions and columns to operate on, and groupby options if any were provided. + # TODO: not sure why selected_fields is a list + selections = info.selected_fields[0].selections[0].selections + aggregate_selections = [selection for selection in selections if selection.name != "groupBy"] + groupby_selections = [selection for selection in selections if selection.name == "groupBy"] + groupby_selections = groupby_selections[0].selections if groupby_selections else [] + + if not aggregate_selections: + raise PlatformicsError("No aggregate functions selected") + + rows = await get_aggregate_db_rows(db.GainFile, session, authz_client, principal, where, aggregate_selections, [], groupby_selections) # type: ignore + aggregate_output = format_gain_file_aggregate_output(rows) + return aggregate_output + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def create_gain_file( + input: GainFileCreateInput, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> db.GainFile: + """ + Create a new GainFile object. Used for mutations (see graphql_api/mutations.py). + """ + validated = GainFileCreateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Validate that the user can read all of the entities they're linking to. + + # Validate that the user can read all of the entities they're linking to. + # Check that run relationship is accessible. + if validated.run_id: + run = await get_db_rows( + db.Run, session, authz_client, principal, {"id": {"_eq": validated.run_id}}, [], AuthzAction.VIEW, + ) + if not run: + raise PlatformicsError("Unauthorized: run does not exist") + + # Save to DB + params["owner_user_id"] = int(principal.id) + new_entity = db.GainFile(**params) + + # Are we actually allowed to create this entity? + if not authz_client.can_create(new_entity, principal): + raise PlatformicsError("Unauthorized: Cannot create entity") + + session.add(new_entity) + await session.commit() + return new_entity + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def update_gain_file( + input: GainFileUpdateInput, + where: GainFileWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), + is_system_user: bool = Depends(is_system_user), +) -> Sequence[db.GainFile]: + """ + Update GainFile objects. Used for mutations (see graphql_api/mutations.py). + """ + validated = GainFileUpdateInputValidator(**input.__dict__) + params = validated.model_dump() + + # Need at least one thing to update + num_params = len([x for x in params if params[x] is not None]) + if num_params == 0: + raise PlatformicsError("No fields to update") + + # Validate that the user can read all of the entities they're linking to. + # Check that run relationship is accessible. + if validated.run_id: + run = await get_db_rows( + db.Run, session, authz_client, principal, {"id": {"_eq": validated.run_id}}, [], AuthzAction.VIEW, + ) + if not run: + raise PlatformicsError("Unauthorized: run does not exist") + params["run"] = run[0] + del params["run_id"] + + # Fetch entities for update, if we have access to them + entities = await get_db_rows(db.GainFile, session, authz_client, principal, where, [], AuthzAction.UPDATE) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot update entities") + + # Update DB + updated_at = datetime.datetime.now() + for entity in entities: + entity.updated_at = updated_at + for key in params: + if params[key] is not None: + setattr(entity, key, params[key]) + + if not authz_client.can_update(entity, principal): + raise PlatformicsError("Unauthorized: Cannot access new collection") + + await session.commit() + return entities + + +@strawberry.mutation(extensions=[DependencyExtension()]) +async def delete_gain_file( + where: GainFileWhereClauseMutations, + session: AsyncSession = Depends(get_db_session, use_cache=False), + authz_client: AuthzClient = Depends(get_authz_client), + principal: Principal = Depends(require_auth_principal), +) -> Sequence[db.GainFile]: + """ + Delete GainFile objects. Used for mutations (see graphql_api/mutations.py). + """ + # Fetch entities for deletion, if we have access to them + entities = await get_db_rows(db.GainFile, session, authz_client, principal, where, [], AuthzAction.DELETE) + if len(entities) == 0: + raise PlatformicsError("Unauthorized: Cannot delete entities") + + # Update DB + for entity in entities: + await session.delete(entity) + await session.commit() + return entities diff --git a/apiv2/graphql_api/types/per_section_alignment_parameters.py b/apiv2/graphql_api/types/per_section_alignment_parameters.py index 136435954..66fff700e 100644 --- a/apiv2/graphql_api/types/per_section_alignment_parameters.py +++ b/apiv2/graphql_api/types/per_section_alignment_parameters.py @@ -11,7 +11,7 @@ import datetime import enum import typing -from typing import TYPE_CHECKING, Annotated, Optional, Sequence +from typing import TYPE_CHECKING, Annotated, List, Optional, Sequence import database.models as db import strawberry @@ -109,8 +109,7 @@ class PerSectionAlignmentParametersWhereClause(TypedDict): z_index: Optional[IntComparators] | None x_offset: Optional[FloatComparators] | None y_offset: Optional[FloatComparators] | None - in_plane_rotation: Optional[FloatComparators] | None - beam_tilt: Optional[FloatComparators] | None + volume_x_rotation: Optional[FloatComparators] | None tilt_angle: Optional[FloatComparators] | None id: Optional[IntComparators] | None @@ -126,8 +125,8 @@ class PerSectionAlignmentParametersOrderByClause(TypedDict): z_index: Optional[orderBy] | None x_offset: Optional[orderBy] | None y_offset: Optional[orderBy] | None + volume_x_rotation: Optional[orderBy] | None in_plane_rotation: Optional[orderBy] | None - beam_tilt: Optional[orderBy] | None tilt_angle: Optional[orderBy] | None id: Optional[orderBy] | None @@ -150,10 +149,10 @@ class PerSectionAlignmentParameters(EntityInterface): y_offset: Optional[float] = strawberry.field( description="In-plane Y-shift of the projection in angstrom", default=None, ) - in_plane_rotation: Optional[float] = strawberry.field( + volume_x_rotation: Optional[float] = strawberry.field(description="X-axis rotation in degrees", default=None) + in_plane_rotation: Optional[List[List[float]]] = strawberry.field( description="In-plane rotation of the projection in degrees", default=None, ) - beam_tilt: Optional[float] = strawberry.field(description="Beam tilt during projection in degrees", default=None) tilt_angle: Optional[float] = strawberry.field(description="Tilt angle of the projection in degrees", default=None) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -181,8 +180,7 @@ class PerSectionAlignmentParametersNumericalColumns: z_index: Optional[int] = None x_offset: Optional[float] = None y_offset: Optional[float] = None - in_plane_rotation: Optional[float] = None - beam_tilt: Optional[float] = None + volume_x_rotation: Optional[float] = None tilt_angle: Optional[float] = None id: Optional[int] = None @@ -197,8 +195,7 @@ class PerSectionAlignmentParametersMinMaxColumns: z_index: Optional[int] = None x_offset: Optional[float] = None y_offset: Optional[float] = None - in_plane_rotation: Optional[float] = None - beam_tilt: Optional[float] = None + volume_x_rotation: Optional[float] = None tilt_angle: Optional[float] = None id: Optional[int] = None @@ -214,8 +211,8 @@ class PerSectionAlignmentParametersCountColumns(enum.Enum): zIndex = "z_index" xOffset = "x_offset" yOffset = "y_offset" + volumeXRotation = "volume_x_rotation" inPlaneRotation = "in_plane_rotation" - beamTilt = "beam_tilt" tiltAngle = "tilt_angle" id = "id" @@ -271,10 +268,10 @@ class PerSectionAlignmentParametersCreateInput: y_offset: Optional[float] = strawberry.field( description="In-plane Y-shift of the projection in angstrom", default=None, ) - in_plane_rotation: Optional[float] = strawberry.field( + volume_x_rotation: Optional[float] = strawberry.field(description="X-axis rotation in degrees", default=None) + in_plane_rotation: Optional[List[List[float]]] = strawberry.field( description="In-plane rotation of the projection in degrees", default=None, ) - beam_tilt: Optional[float] = strawberry.field(description="Beam tilt during projection in degrees", default=None) tilt_angle: Optional[float] = strawberry.field(description="Tilt angle of the projection in degrees", default=None) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -289,10 +286,10 @@ class PerSectionAlignmentParametersUpdateInput: y_offset: Optional[float] = strawberry.field( description="In-plane Y-shift of the projection in angstrom", default=None, ) - in_plane_rotation: Optional[float] = strawberry.field( + volume_x_rotation: Optional[float] = strawberry.field(description="X-axis rotation in degrees", default=None) + in_plane_rotation: Optional[List[List[float]]] = strawberry.field( description="In-plane rotation of the projection in degrees", default=None, ) - beam_tilt: Optional[float] = strawberry.field(description="Beam tilt during projection in degrees", default=None) tilt_angle: Optional[float] = strawberry.field(description="Tilt angle of the projection in degrees", default=None) id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") diff --git a/apiv2/graphql_api/types/per_section_parameters.py b/apiv2/graphql_api/types/per_section_parameters.py index 99b0f06f5..b83f4cfe7 100644 --- a/apiv2/graphql_api/types/per_section_parameters.py +++ b/apiv2/graphql_api/types/per_section_parameters.py @@ -237,7 +237,9 @@ class PerSectionParametersAggregateFunctions: # This is a hack to accept "distinct" and "columns" as arguments to "count" @strawberry.field def count( - self, distinct: Optional[bool] = False, columns: Optional[PerSectionParametersCountColumns] = None, + self, + distinct: Optional[bool] = False, + columns: Optional[PerSectionParametersCountColumns] = None, ) -> Optional[int]: # Count gets set with the proper value in the resolver, so we just return it here return self.count # type: ignore @@ -409,7 +411,13 @@ async def create_per_section_parameters( # Check that frame relationship is accessible. if validated.frame_id: frame = await get_db_rows( - db.Frame, session, authz_client, principal, {"id": {"_eq": validated.frame_id}}, [], AuthzAction.VIEW, + db.Frame, + session, + authz_client, + principal, + {"id": {"_eq": validated.frame_id}}, + [], + AuthzAction.VIEW, ) if not frame: raise PlatformicsError("Unauthorized: frame does not exist") @@ -464,7 +472,13 @@ async def update_per_section_parameters( # Check that frame relationship is accessible. if validated.frame_id: frame = await get_db_rows( - db.Frame, session, authz_client, principal, {"id": {"_eq": validated.frame_id}}, [], AuthzAction.VIEW, + db.Frame, + session, + authz_client, + principal, + {"id": {"_eq": validated.frame_id}}, + [], + AuthzAction.VIEW, ) if not frame: raise PlatformicsError("Unauthorized: frame does not exist") @@ -488,7 +502,13 @@ async def update_per_section_parameters( # Fetch entities for update, if we have access to them entities = await get_db_rows( - db.PerSectionParameters, session, authz_client, principal, where, [], AuthzAction.UPDATE, + db.PerSectionParameters, + session, + authz_client, + principal, + where, + [], + AuthzAction.UPDATE, ) if len(entities) == 0: raise PlatformicsError("Unauthorized: Cannot update entities") @@ -520,7 +540,13 @@ async def delete_per_section_parameters( """ # Fetch entities for deletion, if we have access to them entities = await get_db_rows( - db.PerSectionParameters, session, authz_client, principal, where, [], AuthzAction.DELETE, + db.PerSectionParameters, + session, + authz_client, + principal, + where, + [], + AuthzAction.DELETE, ) if len(entities) == 0: raise PlatformicsError("Unauthorized: Cannot delete entities") diff --git a/apiv2/graphql_api/types/run.py b/apiv2/graphql_api/types/run.py index 53597b1c1..ced18d285 100644 --- a/apiv2/graphql_api/types/run.py +++ b/apiv2/graphql_api/types/run.py @@ -20,6 +20,11 @@ from graphql_api.types.alignment import AlignmentAggregate, format_alignment_aggregate_output from graphql_api.types.annotation import AnnotationAggregate, format_annotation_aggregate_output from graphql_api.types.frame import FrameAggregate, format_frame_aggregate_output +from graphql_api.types.frame_acquisition_file import ( + FrameAcquisitionFileAggregate, + format_frame_acquisition_file_aggregate_output, +) +from graphql_api.types.gain_file import GainFileAggregate, format_gain_file_aggregate_output from graphql_api.types.tiltseries import TiltseriesAggregate, format_tiltseries_aggregate_output from graphql_api.types.tomogram import TomogramAggregate, format_tomogram_aggregate_output from graphql_api.types.tomogram_voxel_spacing import ( @@ -56,6 +61,12 @@ from graphql_api.types.annotation import Annotation, AnnotationOrderByClause, AnnotationWhereClause from graphql_api.types.dataset import Dataset, DatasetOrderByClause, DatasetWhereClause from graphql_api.types.frame import Frame, FrameOrderByClause, FrameWhereClause + from graphql_api.types.frame_acquisition_file import ( + FrameAcquisitionFile, + FrameAcquisitionFileOrderByClause, + FrameAcquisitionFileWhereClause, + ) + from graphql_api.types.gain_file import GainFile, GainFileOrderByClause, GainFileWhereClause from graphql_api.types.tiltseries import Tiltseries, TiltseriesOrderByClause, TiltseriesWhereClause from graphql_api.types.tomogram import Tomogram, TomogramOrderByClause, TomogramWhereClause from graphql_api.types.tomogram_voxel_spacing import ( @@ -78,6 +89,12 @@ FrameWhereClause = "FrameWhereClause" Frame = "Frame" FrameOrderByClause = "FrameOrderByClause" + GainFileWhereClause = "GainFileWhereClause" + GainFile = "GainFile" + GainFileOrderByClause = "GainFileOrderByClause" + FrameAcquisitionFileWhereClause = "FrameAcquisitionFileWhereClause" + FrameAcquisitionFile = "FrameAcquisitionFile" + FrameAcquisitionFileOrderByClause = "FrameAcquisitionFileOrderByClause" TiltseriesWhereClause = "TiltseriesWhereClause" Tiltseries = "Tiltseries" TiltseriesOrderByClause = "TiltseriesOrderByClause" @@ -203,6 +220,76 @@ async def load_frame_aggregate_rows( return aggregate_output +@relay.connection( + relay.ListConnection[Annotated["GainFile", strawberry.lazy("graphql_api.types.gain_file")]], # type:ignore +) +async def load_gain_file_rows( + root: "Run", + info: Info, + where: Annotated["GainFileWhereClause", strawberry.lazy("graphql_api.types.gain_file")] | None = None, + order_by: Optional[list[Annotated["GainFileOrderByClause", strawberry.lazy("graphql_api.types.gain_file")]]] = [], +) -> Sequence[Annotated["GainFile", strawberry.lazy("graphql_api.types.gain_file")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Run) + relationship = mapper.relationships["gain_files"] + return await dataloader.loader_for(relationship, where, order_by).load(root.id) # type:ignore + + +@strawberry.field +async def load_gain_file_aggregate_rows( + root: "Run", + info: Info, + where: Annotated["GainFileWhereClause", strawberry.lazy("graphql_api.types.gain_file")] | None = None, +) -> Optional[Annotated["GainFileAggregate", strawberry.lazy("graphql_api.types.gain_file")]]: + selections = info.selected_fields[0].selections[0].selections + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Run) + relationship = mapper.relationships["gain_files"] + rows = await dataloader.aggregate_loader_for(relationship, where, selections).load(root.id) # type:ignore + aggregate_output = format_gain_file_aggregate_output(rows) + return aggregate_output + + +@relay.connection( + relay.ListConnection[ + Annotated["FrameAcquisitionFile", strawberry.lazy("graphql_api.types.frame_acquisition_file")] + ], # type:ignore +) +async def load_frame_acquisition_file_rows( + root: "Run", + info: Info, + where: ( + Annotated["FrameAcquisitionFileWhereClause", strawberry.lazy("graphql_api.types.frame_acquisition_file")] | None + ) = None, + order_by: Optional[ + list[ + Annotated["FrameAcquisitionFileOrderByClause", strawberry.lazy("graphql_api.types.frame_acquisition_file")] + ] + ] = [], +) -> Sequence[Annotated["FrameAcquisitionFile", strawberry.lazy("graphql_api.types.frame_acquisition_file")]]: + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Run) + relationship = mapper.relationships["frame_acquisition_files"] + return await dataloader.loader_for(relationship, where, order_by).load(root.id) # type:ignore + + +@strawberry.field +async def load_frame_acquisition_file_aggregate_rows( + root: "Run", + info: Info, + where: ( + Annotated["FrameAcquisitionFileWhereClause", strawberry.lazy("graphql_api.types.frame_acquisition_file")] | None + ) = None, +) -> Optional[Annotated["FrameAcquisitionFileAggregate", strawberry.lazy("graphql_api.types.frame_acquisition_file")]]: + selections = info.selected_fields[0].selections[0].selections + dataloader = info.context["sqlalchemy_loader"] + mapper = inspect(db.Run) + relationship = mapper.relationships["frame_acquisition_files"] + rows = await dataloader.aggregate_loader_for(relationship, where, selections).load(root.id) # type:ignore + aggregate_output = format_frame_acquisition_file_aggregate_output(rows) + return aggregate_output + + @relay.connection( relay.ListConnection[Annotated["Tiltseries", strawberry.lazy("graphql_api.types.tiltseries")]], # type:ignore ) @@ -335,6 +422,13 @@ class RunWhereClause(TypedDict): dataset: Optional[Annotated["DatasetWhereClause", strawberry.lazy("graphql_api.types.dataset")]] | None dataset_id: Optional[IntComparators] | None frames: Optional[Annotated["FrameWhereClause", strawberry.lazy("graphql_api.types.frame")]] | None + gain_files: Optional[Annotated["GainFileWhereClause", strawberry.lazy("graphql_api.types.gain_file")]] | None + frame_acquisition_files: ( + Optional[ + Annotated["FrameAcquisitionFileWhereClause", strawberry.lazy("graphql_api.types.frame_acquisition_file")] + ] + | None + ) tiltseries: Optional[Annotated["TiltseriesWhereClause", strawberry.lazy("graphql_api.types.tiltseries")]] | None tomogram_voxel_spacings: ( Optional[ @@ -390,6 +484,18 @@ class Run(EntityInterface): frames_aggregate: Optional[Annotated["FrameAggregate", strawberry.lazy("graphql_api.types.frame")]] = ( load_frame_aggregate_rows ) # type:ignore + gain_files: Sequence[Annotated["GainFile", strawberry.lazy("graphql_api.types.gain_file")]] = ( + load_gain_file_rows + ) # type:ignore + gain_files_aggregate: Optional[Annotated["GainFileAggregate", strawberry.lazy("graphql_api.types.gain_file")]] = ( + load_gain_file_aggregate_rows + ) # type:ignore + frame_acquisition_files: Sequence[ + Annotated["FrameAcquisitionFile", strawberry.lazy("graphql_api.types.frame_acquisition_file")] + ] = load_frame_acquisition_file_rows # type:ignore + frame_acquisition_files_aggregate: Optional[ + Annotated["FrameAcquisitionFileAggregate", strawberry.lazy("graphql_api.types.frame_acquisition_file")] + ] = load_frame_acquisition_file_aggregate_rows # type:ignore tiltseries: Sequence[Annotated["Tiltseries", strawberry.lazy("graphql_api.types.tiltseries")]] = ( load_tiltseries_rows ) # type:ignore @@ -459,6 +565,8 @@ class RunCountColumns(enum.Enum): annotations = "annotations" dataset = "dataset" frames = "frames" + gainFiles = "gain_files" + frameAcquisitionFiles = "frame_acquisition_files" tiltseries = "tiltseries" tomogramVoxelSpacings = "tomogram_voxel_spacings" tomograms = "tomograms" diff --git a/apiv2/graphql_api/types/tiltseries.py b/apiv2/graphql_api/types/tiltseries.py index 2ec54660f..c87aaeac8 100644 --- a/apiv2/graphql_api/types/tiltseries.py +++ b/apiv2/graphql_api/types/tiltseries.py @@ -18,10 +18,6 @@ from fastapi import Depends from graphql_api.helpers.tiltseries import TiltseriesGroupByOptions, build_tiltseries_groupby_output from graphql_api.types.alignment import AlignmentAggregate, format_alignment_aggregate_output -from graphql_api.types.per_section_parameters import ( - PerSectionParametersAggregate, - format_per_section_parameters_aggregate_output, -) from sqlalchemy import inspect from sqlalchemy.engine.row import RowMapping from sqlalchemy.ext.asyncio import AsyncSession @@ -54,11 +50,6 @@ if TYPE_CHECKING: from graphql_api.types.alignment import Alignment, AlignmentOrderByClause, AlignmentWhereClause from graphql_api.types.deposition import Deposition, DepositionOrderByClause, DepositionWhereClause - from graphql_api.types.per_section_parameters import ( - PerSectionParameters, - PerSectionParametersOrderByClause, - PerSectionParametersWhereClause, - ) from graphql_api.types.run import Run, RunOrderByClause, RunWhereClause pass @@ -66,9 +57,6 @@ AlignmentWhereClause = "AlignmentWhereClause" Alignment = "Alignment" AlignmentOrderByClause = "AlignmentOrderByClause" - PerSectionParametersWhereClause = "PerSectionParametersWhereClause" - PerSectionParameters = "PerSectionParameters" - PerSectionParametersOrderByClause = "PerSectionParametersOrderByClause" RunWhereClause = "RunWhereClause" Run = "Run" RunOrderByClause = "RunOrderByClause" @@ -116,46 +104,6 @@ async def load_alignment_aggregate_rows( return aggregate_output -@relay.connection( - relay.ListConnection[ - Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")] - ], # type:ignore -) -async def load_per_section_parameters_rows( - root: "Tiltseries", - info: Info, - where: ( - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] | None - ) = None, - order_by: Optional[ - list[ - Annotated["PerSectionParametersOrderByClause", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] - ] = [], -) -> Sequence[Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")]]: - dataloader = info.context["sqlalchemy_loader"] - mapper = inspect(db.Tiltseries) - relationship = mapper.relationships["per_section_parameters"] - return await dataloader.loader_for(relationship, where, order_by).load(root.id) # type:ignore - - -@strawberry.field -async def load_per_section_parameters_aggregate_rows( - root: "Tiltseries", - info: Info, - where: ( - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] | None - ) = None, -) -> Optional[Annotated["PerSectionParametersAggregate", strawberry.lazy("graphql_api.types.per_section_parameters")]]: - selections = info.selected_fields[0].selections[0].selections - dataloader = info.context["sqlalchemy_loader"] - mapper = inspect(db.Tiltseries) - relationship = mapper.relationships["per_section_parameters"] - rows = await dataloader.aggregate_loader_for(relationship, where, selections).load(root.id) # type:ignore - aggregate_output = format_per_section_parameters_aggregate_output(rows) - return aggregate_output - - @strawberry.field async def load_run_rows( root: "Tiltseries", @@ -210,12 +158,6 @@ class TiltseriesWhereClauseMutations(TypedDict): @strawberry.input class TiltseriesWhereClause(TypedDict): alignments: Optional[Annotated["AlignmentWhereClause", strawberry.lazy("graphql_api.types.alignment")]] | None - per_section_parameters: ( - Optional[ - Annotated["PerSectionParametersWhereClause", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] - | None - ) run: Optional[Annotated["RunWhereClause", strawberry.lazy("graphql_api.types.run")]] | None run_id: Optional[IntComparators] | None deposition: Optional[Annotated["DepositionWhereClause", strawberry.lazy("graphql_api.types.deposition")]] | None @@ -224,12 +166,8 @@ class TiltseriesWhereClause(TypedDict): s3_mrc_file: Optional[StrComparators] | None https_omezarr_dir: Optional[StrComparators] | None https_mrc_file: Optional[StrComparators] | None - s3_collection_metadata: Optional[StrComparators] | None - https_collection_metadata: Optional[StrComparators] | None s3_angle_list: Optional[StrComparators] | None https_angle_list: Optional[StrComparators] | None - s3_gain_file: Optional[StrComparators] | None - https_gain_file: Optional[StrComparators] | None acceleration_voltage: Optional[IntComparators] | None spherical_aberration_constant: Optional[FloatComparators] | None microscope_manufacturer: Optional[EnumComparators[tiltseries_microscope_manufacturer_enum]] | None @@ -254,7 +192,6 @@ class TiltseriesWhereClause(TypedDict): is_aligned: Optional[BoolComparators] | None pixel_spacing: Optional[FloatComparators] | None aligned_tiltseries_binning: Optional[IntComparators] | None - frames_count: Optional[IntComparators] | None id: Optional[IntComparators] | None @@ -271,12 +208,8 @@ class TiltseriesOrderByClause(TypedDict): s3_mrc_file: Optional[orderBy] | None https_omezarr_dir: Optional[orderBy] | None https_mrc_file: Optional[orderBy] | None - s3_collection_metadata: Optional[orderBy] | None - https_collection_metadata: Optional[orderBy] | None s3_angle_list: Optional[orderBy] | None https_angle_list: Optional[orderBy] | None - s3_gain_file: Optional[orderBy] | None - https_gain_file: Optional[orderBy] | None acceleration_voltage: Optional[orderBy] | None spherical_aberration_constant: Optional[orderBy] | None microscope_manufacturer: Optional[orderBy] | None @@ -301,7 +234,6 @@ class TiltseriesOrderByClause(TypedDict): is_aligned: Optional[orderBy] | None pixel_spacing: Optional[orderBy] | None aligned_tiltseries_binning: Optional[orderBy] | None - frames_count: Optional[orderBy] | None id: Optional[orderBy] | None @@ -318,12 +250,6 @@ class Tiltseries(EntityInterface): alignments_aggregate: Optional[Annotated["AlignmentAggregate", strawberry.lazy("graphql_api.types.alignment")]] = ( load_alignment_aggregate_rows ) # type:ignore - per_section_parameters: Sequence[ - Annotated["PerSectionParameters", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] = load_per_section_parameters_rows # type:ignore - per_section_parameters_aggregate: Optional[ - Annotated["PerSectionParametersAggregate", strawberry.lazy("graphql_api.types.per_section_parameters")] - ] = load_per_section_parameters_aggregate_rows # type:ignore run: Optional[Annotated["Run", strawberry.lazy("graphql_api.types.run")]] = load_run_rows # type:ignore run_id: int deposition: Optional[Annotated["Deposition", strawberry.lazy("graphql_api.types.deposition")]] = ( @@ -342,24 +268,12 @@ class Tiltseries(EntityInterface): https_mrc_file: Optional[str] = strawberry.field( description="HTTPS path to this tiltseries in MRC format (no scaling)", default=None, ) - s3_collection_metadata: Optional[str] = strawberry.field( - description="S3 path to the collection metadata file for this tiltseries", default=None, - ) - https_collection_metadata: Optional[str] = strawberry.field( - description="HTTPS path to the collection metadata file for this tiltseries", default=None, - ) s3_angle_list: Optional[str] = strawberry.field( description="S3 path to the angle list file for this tiltseries", default=None, ) https_angle_list: Optional[str] = strawberry.field( description="HTTPS path to the angle list file for this tiltseries", default=None, ) - s3_gain_file: Optional[str] = strawberry.field( - description="S3 path to the gain file for this tiltseries", default=None, - ) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this tiltseries", default=None, - ) acceleration_voltage: int = strawberry.field(description="Electron Microscope Accelerator voltage in volts") spherical_aberration_constant: float = strawberry.field( description="Spherical Aberration Constant of the objective lens in millimeters", @@ -401,9 +315,6 @@ class Tiltseries(EntityInterface): aligned_tiltseries_binning: Optional[int] = strawberry.field( description="Binning factor of the aligned tilt series", default=None, ) - frames_count: Optional[int] = strawberry.field( - description="Number of frames associated with this tiltseries", default=None, - ) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -439,7 +350,6 @@ class TiltseriesNumericalColumns: tilt_series_quality: Optional[int] = None pixel_spacing: Optional[float] = None aligned_tiltseries_binning: Optional[int] = None - frames_count: Optional[int] = None id: Optional[int] = None @@ -454,12 +364,8 @@ class TiltseriesMinMaxColumns: s3_mrc_file: Optional[str] = None https_omezarr_dir: Optional[str] = None https_mrc_file: Optional[str] = None - s3_collection_metadata: Optional[str] = None - https_collection_metadata: Optional[str] = None s3_angle_list: Optional[str] = None https_angle_list: Optional[str] = None - s3_gain_file: Optional[str] = None - https_gain_file: Optional[str] = None acceleration_voltage: Optional[int] = None spherical_aberration_constant: Optional[float] = None microscope_model: Optional[str] = None @@ -482,7 +388,6 @@ class TiltseriesMinMaxColumns: tilt_series_quality: Optional[int] = None pixel_spacing: Optional[float] = None aligned_tiltseries_binning: Optional[int] = None - frames_count: Optional[int] = None id: Optional[int] = None @@ -494,19 +399,14 @@ class TiltseriesMinMaxColumns: @strawberry.enum class TiltseriesCountColumns(enum.Enum): alignments = "alignments" - perSectionParameters = "per_section_parameters" run = "run" deposition = "deposition" s3OmezarrDir = "s3_omezarr_dir" s3MrcFile = "s3_mrc_file" httpsOmezarrDir = "https_omezarr_dir" httpsMrcFile = "https_mrc_file" - s3CollectionMetadata = "s3_collection_metadata" - httpsCollectionMetadata = "https_collection_metadata" s3AngleList = "s3_angle_list" httpsAngleList = "https_angle_list" - s3GainFile = "s3_gain_file" - httpsGainFile = "https_gain_file" accelerationVoltage = "acceleration_voltage" sphericalAberrationConstant = "spherical_aberration_constant" microscopeManufacturer = "microscope_manufacturer" @@ -531,7 +431,6 @@ class TiltseriesCountColumns(enum.Enum): isAligned = "is_aligned" pixelSpacing = "pixel_spacing" alignedTiltseriesBinning = "aligned_tiltseries_binning" - framesCount = "frames_count" id = "id" @@ -592,24 +491,12 @@ class TiltseriesCreateInput: https_mrc_file: Optional[str] = strawberry.field( description="HTTPS path to this tiltseries in MRC format (no scaling)", default=None, ) - s3_collection_metadata: Optional[str] = strawberry.field( - description="S3 path to the collection metadata file for this tiltseries", default=None, - ) - https_collection_metadata: Optional[str] = strawberry.field( - description="HTTPS path to the collection metadata file for this tiltseries", default=None, - ) s3_angle_list: Optional[str] = strawberry.field( description="S3 path to the angle list file for this tiltseries", default=None, ) https_angle_list: Optional[str] = strawberry.field( description="HTTPS path to the angle list file for this tiltseries", default=None, ) - s3_gain_file: Optional[str] = strawberry.field( - description="S3 path to the gain file for this tiltseries", default=None, - ) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this tiltseries", default=None, - ) acceleration_voltage: int = strawberry.field(description="Electron Microscope Accelerator voltage in volts") spherical_aberration_constant: float = strawberry.field( description="Spherical Aberration Constant of the objective lens in millimeters", @@ -651,9 +538,6 @@ class TiltseriesCreateInput: aligned_tiltseries_binning: Optional[int] = strawberry.field( description="Binning factor of the aligned tilt series", default=None, ) - frames_count: Optional[int] = strawberry.field( - description="Number of frames associated with this tiltseries", default=None, - ) id: int = strawberry.field(description="Numeric identifier (May change!)") @@ -673,24 +557,12 @@ class TiltseriesUpdateInput: https_mrc_file: Optional[str] = strawberry.field( description="HTTPS path to this tiltseries in MRC format (no scaling)", default=None, ) - s3_collection_metadata: Optional[str] = strawberry.field( - description="S3 path to the collection metadata file for this tiltseries", default=None, - ) - https_collection_metadata: Optional[str] = strawberry.field( - description="HTTPS path to the collection metadata file for this tiltseries", default=None, - ) s3_angle_list: Optional[str] = strawberry.field( description="S3 path to the angle list file for this tiltseries", default=None, ) https_angle_list: Optional[str] = strawberry.field( description="HTTPS path to the angle list file for this tiltseries", default=None, ) - s3_gain_file: Optional[str] = strawberry.field( - description="S3 path to the gain file for this tiltseries", default=None, - ) - https_gain_file: Optional[str] = strawberry.field( - description="HTTPS path to the gain file for this tiltseries", default=None, - ) acceleration_voltage: Optional[int] = strawberry.field( description="Electron Microscope Accelerator voltage in volts", ) @@ -736,9 +608,6 @@ class TiltseriesUpdateInput: aligned_tiltseries_binning: Optional[int] = strawberry.field( description="Binning factor of the aligned tilt series", default=None, ) - frames_count: Optional[int] = strawberry.field( - description="Number of frames associated with this tiltseries", default=None, - ) id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") diff --git a/apiv2/graphql_api/types/tomogram.py b/apiv2/graphql_api/types/tomogram.py index 7c14f5612..e5e468b28 100644 --- a/apiv2/graphql_api/types/tomogram.py +++ b/apiv2/graphql_api/types/tomogram.py @@ -33,6 +33,7 @@ from platformics.graphql_api.core.query_builder import get_aggregate_db_rows, get_db_rows from platformics.graphql_api.core.query_input_types import ( BoolComparators, + DatetimeComparators, EnumComparators, FloatComparators, IntComparators, @@ -234,7 +235,9 @@ class TomogramWhereClause(TypedDict): tomogram_version: Optional[FloatComparators] | None processing_software: Optional[StrComparators] | None reconstruction_software: Optional[StrComparators] | None - is_canonical: Optional[BoolComparators] | None + is_portal_standard: Optional[BoolComparators] | None + is_author_submitted: Optional[BoolComparators] | None + is_visualization_default: Optional[BoolComparators] | None s3_omezarr_dir: Optional[StrComparators] | None https_omezarr_dir: Optional[StrComparators] | None s3_mrc_file: Optional[StrComparators] | None @@ -249,8 +252,12 @@ class TomogramWhereClause(TypedDict): key_photo_url: Optional[StrComparators] | None key_photo_thumbnail_url: Optional[StrComparators] | None neuroglancer_config: Optional[StrComparators] | None - is_standardized: Optional[BoolComparators] | None + publications: Optional[StrComparators] | None + related_database_entries: Optional[StrComparators] | None id: Optional[IntComparators] | None + deposition_date: Optional[DatetimeComparators] | None + release_date: Optional[DatetimeComparators] | None + last_modified_date: Optional[DatetimeComparators] | None """ @@ -280,7 +287,9 @@ class TomogramOrderByClause(TypedDict): tomogram_version: Optional[orderBy] | None processing_software: Optional[orderBy] | None reconstruction_software: Optional[orderBy] | None - is_canonical: Optional[orderBy] | None + is_portal_standard: Optional[orderBy] | None + is_author_submitted: Optional[orderBy] | None + is_visualization_default: Optional[orderBy] | None s3_omezarr_dir: Optional[orderBy] | None https_omezarr_dir: Optional[orderBy] | None s3_mrc_file: Optional[orderBy] | None @@ -295,8 +304,12 @@ class TomogramOrderByClause(TypedDict): key_photo_url: Optional[orderBy] | None key_photo_thumbnail_url: Optional[orderBy] | None neuroglancer_config: Optional[orderBy] | None - is_standardized: Optional[orderBy] | None + publications: Optional[orderBy] | None + related_database_entries: Optional[orderBy] | None id: Optional[orderBy] | None + deposition_date: Optional[orderBy] | None + release_date: Optional[orderBy] | None + last_modified_date: Optional[orderBy] | None """ @@ -347,8 +360,15 @@ class Tomogram(EntityInterface): description="Processing software used to derive the tomogram", default=None, ) reconstruction_software: str = strawberry.field(description="Name of software used for reconstruction") - is_canonical: Optional[bool] = strawberry.field( - description="Is this tomogram considered the canonical tomogram for the run experiment? True=Yes", default=None, + is_portal_standard: Optional[bool] = strawberry.field( + description="whether this tomogram adheres to portal standards", default=None, + ) + is_author_submitted: Optional[bool] = strawberry.field( + description="Whether this tomogram was submitted by the author of the dataset it belongs to.", default=None, + ) + is_visualization_default: Optional[bool] = strawberry.field( + description="Data curator’s subjective choice of default tomogram to display in visualization for a run", + default=None, ) s3_omezarr_dir: Optional[str] = strawberry.field( description="S3 path to this tomogram in multiscale OME-Zarr format", default=None, @@ -382,10 +402,23 @@ class Tomogram(EntityInterface): neuroglancer_config: Optional[str] = strawberry.field( description="the compact json of neuroglancer config", default=None, ) - is_standardized: bool = strawberry.field( - description="Whether this tomogram was generated per the portal's standards", + publications: Optional[str] = strawberry.field( + description="Comma-separated list of DOIs for publications associated with the tomogram.", default=None, + ) + related_database_entries: Optional[str] = strawberry.field( + description="If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers.", + default=None, ) id: int = strawberry.field(description="Numeric identifier (May change!)") + deposition_date: datetime.datetime = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + release_date: datetime.datetime = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + last_modified_date: datetime.datetime = strawberry.field( + description="The date a piece of data was last modified on the cryoET data portal.", + ) """ @@ -447,7 +480,12 @@ class TomogramMinMaxColumns: key_photo_url: Optional[str] = None key_photo_thumbnail_url: Optional[str] = None neuroglancer_config: Optional[str] = None + publications: Optional[str] = None + related_database_entries: Optional[str] = None id: Optional[int] = None + deposition_date: Optional[datetime.datetime] = None + release_date: Optional[datetime.datetime] = None + last_modified_date: Optional[datetime.datetime] = None """ @@ -473,7 +511,9 @@ class TomogramCountColumns(enum.Enum): tomogramVersion = "tomogram_version" processingSoftware = "processing_software" reconstructionSoftware = "reconstruction_software" - isCanonical = "is_canonical" + isPortalStandard = "is_portal_standard" + isAuthorSubmitted = "is_author_submitted" + isVisualizationDefault = "is_visualization_default" s3OmezarrDir = "s3_omezarr_dir" httpsOmezarrDir = "https_omezarr_dir" s3MrcFile = "s3_mrc_file" @@ -488,8 +528,12 @@ class TomogramCountColumns(enum.Enum): keyPhotoUrl = "key_photo_url" keyPhotoThumbnailUrl = "key_photo_thumbnail_url" neuroglancerConfig = "neuroglancer_config" - isStandardized = "is_standardized" + publications = "publications" + relatedDatabaseEntries = "related_database_entries" id = "id" + depositionDate = "deposition_date" + releaseDate = "release_date" + lastModifiedDate = "last_modified_date" """ @@ -562,8 +606,15 @@ class TomogramCreateInput: description="Processing software used to derive the tomogram", default=None, ) reconstruction_software: str = strawberry.field(description="Name of software used for reconstruction") - is_canonical: Optional[bool] = strawberry.field( - description="Is this tomogram considered the canonical tomogram for the run experiment? True=Yes", default=None, + is_portal_standard: Optional[bool] = strawberry.field( + description="whether this tomogram adheres to portal standards", default=None, + ) + is_author_submitted: Optional[bool] = strawberry.field( + description="Whether this tomogram was submitted by the author of the dataset it belongs to.", default=None, + ) + is_visualization_default: Optional[bool] = strawberry.field( + description="Data curator’s subjective choice of default tomogram to display in visualization for a run", + default=None, ) s3_omezarr_dir: Optional[str] = strawberry.field( description="S3 path to this tomogram in multiscale OME-Zarr format", default=None, @@ -597,10 +648,23 @@ class TomogramCreateInput: neuroglancer_config: Optional[str] = strawberry.field( description="the compact json of neuroglancer config", default=None, ) - is_standardized: bool = strawberry.field( - description="Whether this tomogram was generated per the portal's standards", + publications: Optional[str] = strawberry.field( + description="Comma-separated list of DOIs for publications associated with the tomogram.", default=None, + ) + related_database_entries: Optional[str] = strawberry.field( + description="If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers.", + default=None, ) id: int = strawberry.field(description="Numeric identifier (May change!)") + deposition_date: datetime.datetime = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + release_date: datetime.datetime = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + last_modified_date: datetime.datetime = strawberry.field( + description="The date a piece of data was last modified on the cryoET data portal.", + ) @strawberry.input() @@ -634,8 +698,15 @@ class TomogramUpdateInput: description="Processing software used to derive the tomogram", default=None, ) reconstruction_software: Optional[str] = strawberry.field(description="Name of software used for reconstruction") - is_canonical: Optional[bool] = strawberry.field( - description="Is this tomogram considered the canonical tomogram for the run experiment? True=Yes", default=None, + is_portal_standard: Optional[bool] = strawberry.field( + description="whether this tomogram adheres to portal standards", default=None, + ) + is_author_submitted: Optional[bool] = strawberry.field( + description="Whether this tomogram was submitted by the author of the dataset it belongs to.", default=None, + ) + is_visualization_default: Optional[bool] = strawberry.field( + description="Data curator’s subjective choice of default tomogram to display in visualization for a run", + default=None, ) s3_omezarr_dir: Optional[str] = strawberry.field( description="S3 path to this tomogram in multiscale OME-Zarr format", default=None, @@ -669,10 +740,23 @@ class TomogramUpdateInput: neuroglancer_config: Optional[str] = strawberry.field( description="the compact json of neuroglancer config", default=None, ) - is_standardized: Optional[bool] = strawberry.field( - description="Whether this tomogram was generated per the portal's standards", + publications: Optional[str] = strawberry.field( + description="Comma-separated list of DOIs for publications associated with the tomogram.", default=None, + ) + related_database_entries: Optional[str] = strawberry.field( + description="If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers.", + default=None, ) id: Optional[int] = strawberry.field(description="Numeric identifier (May change!)") + deposition_date: Optional[datetime.datetime] = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + release_date: Optional[datetime.datetime] = strawberry.field( + description="The date a data item was received by the cryoET data portal.", + ) + last_modified_date: Optional[datetime.datetime] = strawberry.field( + description="The date a piece of data was last modified on the cryoET data portal.", + ) """ diff --git a/apiv2/schema/README.md b/apiv2/schema/README.md index 62b991cde..9f00aa86e 100644 --- a/apiv2/schema/README.md +++ b/apiv2/schema/README.md @@ -12,7 +12,9 @@ Tomogram { float tomogram_version string processing_software string reconstruction_software - boolean is_canonical + boolean is_portal_standard + boolean is_author_submitted + boolean is_visualization_default string s3_omezarr_dir string https_omezarr_dir string s3_mrc_file @@ -27,8 +29,12 @@ Tomogram { string key_photo_url string key_photo_thumbnail_url string neuroglancer_config - boolean is_standardized + string publications + string related_database_entries integer id + date deposition_date + date release_date + date last_modified_date } TomogramVoxelSpacing { float voxel_spacing @@ -53,12 +59,8 @@ Tiltseries { string s3_mrc_file string https_omezarr_dir string https_mrc_file - string s3_collection_metadata - string https_collection_metadata string s3_angle_list string https_angle_list - string s3_gain_file - string https_gain_file integer acceleration_voltage float spherical_aberration_constant tiltseries_microscope_manufacturer_enum microscope_manufacturer @@ -83,7 +85,6 @@ Tiltseries { boolean is_aligned float pixel_spacing integer aligned_tiltseries_binning - integer frames_count integer id } Run { @@ -92,19 +93,28 @@ Run { string https_prefix integer id } -PerSectionParameters { - integer z_index - float defocus - float astigmatism - float astigmatic_angle +FrameAcquisitionFile { + string s3_mdoc_path + string https_mdoc_path + integer id +} +GainFile { + string s3_file_path + string https_file_path + integer id +} +AnnotationMethodLink { + annotation_method_link_type_enum link_type + string name + string link integer id } PerSectionAlignmentParameters { integer z_index float x_offset float y_offset - float in_plane_rotation - float beam_tilt + float volume_x_rotation + Array2dFloat in_plane_rotation float tilt_angle integer id } @@ -113,8 +123,6 @@ Frame { integer acquisition_order float dose boolean is_gain_corrected - string s3_gain_file - string https_gain_file string s3_prefix string https_prefix integer id @@ -193,7 +201,6 @@ Annotation { string https_metadata_path string annotation_publication string annotation_method - string method_links boolean ground_truth_status string object_id string object_name @@ -237,6 +244,7 @@ AnnotationAuthor { } Alignment { alignment_type_enum alignment_type + alignment_method_type_enum alignment_method float volume_x_dimension float volume_y_dimension float volume_z_dimension @@ -245,8 +253,10 @@ Alignment { float volume_z_offset float x_rotation_offset float tilt_offset - string local_alignment_file string affine_transformation_matrix + string s3_alignment_metadata + string https_alignment_metadata + boolean is_portal_standard integer id } @@ -260,21 +270,22 @@ TomogramVoxelSpacing ||--|o Run : "run" TomogramVoxelSpacing ||--}o Tomogram : "tomograms" TomogramAuthor ||--|o Tomogram : "tomogram" Tiltseries ||--}o Alignment : "alignments" -Tiltseries ||--}o PerSectionParameters : "per_section_parameters" Tiltseries ||--|| Run : "run" Tiltseries ||--|o Deposition : "deposition" Run ||--}o Alignment : "alignments" Run ||--}o Annotation : "annotations" Run ||--|| Dataset : "dataset" Run ||--}o Frame : "frames" +Run ||--}o GainFile : "gain_files" +Run ||--}o FrameAcquisitionFile : "frame_acquisition_files" Run ||--}o Tiltseries : "tiltseries" Run ||--}o TomogramVoxelSpacing : "tomogram_voxel_spacings" Run ||--}o Tomogram : "tomograms" -PerSectionParameters ||--|| Frame : "frame" -PerSectionParameters ||--|| Tiltseries : "tiltseries" +FrameAcquisitionFile ||--|o Run : "run" +GainFile ||--|o Run : "run" +AnnotationMethodLink ||--|o Annotation : "annotation" PerSectionAlignmentParameters ||--|| Alignment : "alignment" Frame ||--|o Deposition : "deposition" -Frame ||--}o PerSectionParameters : "per_section_parameters" Frame ||--|o Run : "run" Deposition ||--}o DepositionAuthor : "authors" Deposition ||--}o Alignment : "alignments" @@ -293,6 +304,7 @@ DatasetFunding ||--|o Dataset : "dataset" DatasetAuthor ||--|o Dataset : "dataset" Annotation ||--|o Run : "run" Annotation ||--}o AnnotationShape : "annotation_shapes" +Annotation ||--}o AnnotationMethodLink : "method_links" Annotation ||--}o AnnotationAuthor : "authors" Annotation ||--|o Deposition : "deposition" AnnotationShape ||--|o Annotation : "annotation" diff --git a/apiv2/schema/schema.yaml b/apiv2/schema/schema.yaml index 46c2f24ca..8daec0c9f 100644 --- a/apiv2/schema/schema.yaml +++ b/apiv2/schema/schema.yaml @@ -10,6 +10,10 @@ prefixes: prefix_reference: https://w3id.org/linkml/ default_prefix: cdp-dataset-config/ types: + Array2dFloat: + uri: xsd:array + base: float + description: A 2D array of floats, e.g. [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]] string: name: string description: A character string @@ -229,6 +233,15 @@ enums: portal_standard: text: portal_standard description: Annotation submitted by portal standardization + alignment_method_type_enum: + description: Describes how an alignment was created + permissible_values: + projection_matching: + description: Alignment was generated via AreTomo + patch_tracking : + description: Alignment was generated via IMOD without fiducials + fiducial_based: + description: Alignment was generated based on fiducials annotation_method_type_enum: name: annotation_method_type_enum description: Describes how the annotations were generated. @@ -365,7 +378,7 @@ enums: description: JEOL Ltd. SIMULATED: text: SIMULATED - description: JEOL Ltd. + description: Simulated microscope fiducial_alignment_status_enum: name: fiducial_alignment_status_enum description: Fiducial Alignment method @@ -541,6 +554,46 @@ classes: - author_primary_author_status ifabsent: false range: boolean + GainFile: + annotations: + plural: + tag: plural + value: GainFiles + description: Gain values for frames in this run + mixins: + - IDMixin + attributes: + run: + inverse: Run.gain_files + range: Run + s3_file_path: + description: Path to the file in s3 + range: string + required: true + https_file_path: + description: Path to the file as an https url + range: string + required: true + FrameAcquisitionFile: + annotations: + plural: + tag: plural + value: FrameAcquisitionFiles + description: References to files containing more information about frame acquisition + mixins: + - IDMixin + attributes: + run: + inverse: Run.frame_acquisition_files + range: Run + s3_mdoc_path: + description: Path to the frame acquisition mdoc file in s3 + range: string + required: true + https_mdoc_path: + description: Path to the frame acquisition mdoc file as an https url + range: string + required: true Alignment: name: Alignment annotations: @@ -602,6 +655,9 @@ classes: - alignment_alignment_type range: alignment_type_enum pattern: (^LOCAL$)|(^GLOBAL$) + alignment_method: + description: The method used to create this alignment + range: alignment_method_type_enum volume_x_dimension: name: volume_x_dimension description: X dimension of the reconstruction volume in angstrom @@ -682,13 +738,6 @@ classes: unit: symbol: ° descriptive_name: degrees - local_alignment_file: - name: local_alignment_file - description: Path to the local alignment file - from_schema: cdp-dataset-config - exact_mappings: - - alignment_local_alignment_file - range: string affine_transformation_matrix: name: affine_transformation_matrix description: A placeholder for the affine transformation matrix. @@ -699,6 +748,17 @@ classes: - exact_cardinality: 4 - exact_cardinality: 4 range: string + s3_alignment_metadata: + description: S3 path to the metadata file for this alignment + range: string + https_alignment_metadata: + description: HTTPS url to the metadata file for this alignment + range: string + is_portal_standard: + description: Whether this is the portal standard alignment + range: boolean + ifabsent: false + AnnotationAuthor: name: AnnotationAuthor annotations: @@ -854,6 +914,13 @@ classes: range: AnnotationShape annotations: cascade_delete: true + method_links: + description: Links to information about how annotations were created + multivalued: true + inverse: AnnotationMethodLink.annotation + range: AnnotationMethodLink + annotations: + cascade_delete: true authors: name: authors description: Author of an annotation @@ -901,9 +968,6 @@ classes: - annotation_method range: string required: true - method_links: - description: Provides links to information on the method used for generating annotation, comma separated - range: string ground_truth_status: name: ground_truth_status description: Whether an annotation is considered ground truth, as determined @@ -1534,15 +1598,6 @@ classes: from_schema: cdp-dataset-config inverse: Deposition.frames range: Deposition - per_section_parameters: - name: per_section_parameters - description: Record how frames get mapped to Tiltseries - from_schema: cdp-dataset-config - multivalued: true - inverse: PerSectionParameters.frame - range: PerSectionParameters - annotations: - cascade_delete: true run: name: run from_schema: cdp-dataset-config @@ -1584,20 +1639,6 @@ classes: exact_mappings: - api_frame_is_gain_corrected range: boolean - s3_gain_file: - name: s3_gain_file - description: S3 path to the gain file for this frame - from_schema: cdp-dataset-config - exact_mappings: - - api_frame_s3_gain_file - range: string - https_gain_file: - name: https_gain_file - description: HTTPS path to the gain file for this frame - from_schema: cdp-dataset-config - exact_mappings: - - api_frame_https_gain_file - range: string s3_prefix: name: s3_prefix description: Path to a directory containing data for this entity as an S3 @@ -1616,69 +1657,6 @@ classes: - api_https_prefix range: string required: true - PerSectionParameters: - name: PerSectionParameters - annotations: - plural: - tag: plural - value: PerSectionParameters - description: Record how frames get mapped to Tiltseries - from_schema: cdp-dataset-config - mixins: - - IDMixin - attributes: - frame: - name: frame - from_schema: cdp-dataset-config - inverse: Frame.per_section_parameters - range: Frame - required: true - tiltseries: - name: tiltseries - from_schema: cdp-dataset-config - inverse: Tiltseries.per_section_parameters - range: Tiltseries - required: true - z_index: - name: z_index - description: z-index of the frame in the tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - per_section_z_index - range: integer - required: true - minimum_value: 0 - defocus: - name: defocus - description: defocus amount - from_schema: cdp-dataset-config - exact_mappings: - - per_section_defocus - range: float - minimum_value: 100 - maximum_value: 100 - unit: - symbol: µm - descriptive_name: microns - astigmatism: - name: astigmatism - description: Astigmatism amount for this frame - from_schema: cdp-dataset-config - exact_mappings: - - per_section_astigmatism - range: float - astigmatic_angle: - name: astigmatic_angle - description: Angle of ast - from_schema: cdp-dataset-config - exact_mappings: - - per_section_astigmatic_angle - range: float - minimum_value: -180 - maximum_value: 180 - unit: - symbol: ° - descriptive_name: degrees PerSectionAlignmentParameters: name: PerSectionAlignmentParameters annotations: @@ -1726,26 +1704,15 @@ classes: unit: symbol: Å descriptive_name: Angstrom - in_plane_rotation: - name: in_plane_rotation - description: In-plane rotation of the projection in degrees - from_schema: cdp-dataset-config - exact_mappings: - - per_section_alignment_in_plane_rotation - range: float - unit: - symbol: ° - descriptive_name: degrees - beam_tilt: - name: beam_tilt - description: Beam tilt during projection in degrees - from_schema: cdp-dataset-config - exact_mappings: - - per_section_alignment_beam_tilt + volume_x_rotation: + description: X-axis rotation in degrees range: float unit: symbol: ° descriptive_name: degrees + in_plane_rotation: + description: In-plane rotation of the projection in degrees + range: Array2dFloat tilt_angle: name: tilt_angle description: Tilt angle of the projection in degrees @@ -1800,6 +1767,18 @@ classes: range: Frame annotations: cascade_delete: true + gain_files: + multivalued: true + inverse: GainFile.run + range: GainFile + annotations: + cascade_delete: true + frame_acquisition_files: + multivalued: true + inverse: FrameAcquisitionFile.run + range: FrameAcquisitionFile + annotations: + cascade_delete: true tiltseries: name: tiltseries from_schema: cdp-dataset-config @@ -1869,15 +1848,6 @@ classes: multivalued: true annotations: cascade_delete: true - per_section_parameters: - name: per_section_parameters - description: Record how frames get mapped to Tiltseries - from_schema: cdp-dataset-config - multivalued: true - inverse: PerSectionParameters.tiltseries - range: PerSectionParameters - annotations: - cascade_delete: true run: name: run from_schema: cdp-dataset-config @@ -1918,20 +1888,6 @@ classes: exact_mappings: - tiltseries_https_mrc_file range: string - s3_collection_metadata: - name: s3_collection_metadata - description: S3 path to the collection metadata file for this tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - tiltseries_s3_collection_metadata - range: string - https_collection_metadata: - name: https_collection_metadata - description: HTTPS path to the collection metadata file for this tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - tiltseries_https_collection_metadata - range: string s3_angle_list: name: s3_angle_list description: S3 path to the angle list file for this tiltseries @@ -1946,20 +1902,6 @@ classes: exact_mappings: - tiltseries_https_angle_list range: string - s3_gain_file: - name: s3_gain_file - description: S3 path to the gain file for this tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - tiltseries_s3_gain_file - range: string - https_gain_file: - name: https_gain_file - description: HTTPS path to the gain file for this tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - tiltseries_https_gain_file - range: string acceleration_voltage: name: acceleration_voltage description: Electron Microscope Accelerator voltage in volts @@ -2193,13 +2135,6 @@ classes: - tiltseries_aligned_tiltseries_binning range: integer minimum_value: 0 - frames_count: - name: frames_count - description: Number of frames associated with this tiltseries - from_schema: cdp-dataset-config - exact_mappings: - - frames_count - range: integer TomogramAuthor: name: TomogramAuthor annotations: @@ -2295,6 +2230,7 @@ classes: from_schema: cdp-dataset-config mixins: - IDMixin + - DateStampedEntityMixin attributes: alignment: name: alignment @@ -2417,11 +2353,18 @@ classes: range: string required: true description: Name of software used for reconstruction - is_canonical: - name: is_canonical - description: Is this tomogram considered the canonical tomogram for the run experiment? True=Yes - from_schema: cdp-dataset-config + is_portal_standard: + description: whether this tomogram adheres to portal standards range: boolean + ifabsent: false + is_author_submitted: + description: Whether this tomogram was submitted by the author of the dataset it belongs to. + range: boolean + ifabsent: false + is_visualization_default: + description: Data curator’s subjective choice of default tomogram to display in visualization for a run + range: boolean + ifabsent: false s3_omezarr_dir: name: s3_omezarr_dir description: S3 path to this tomogram in multiscale OME-Zarr format @@ -2527,12 +2470,16 @@ classes: exact_mappings: - tomogram_neuroglancer_config range: string - is_standardized: - description: Whether this tomogram was generated per the portal's standards - range: boolean - required: true - # TODO - is this reasonable? - ifabsent: false + publications: + description: Comma-separated list of DOIs for publications associated with the tomogram. + range: string + recommended: true + pattern: (^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$) + related_database_entries: + description: If a CryoET tomogram is also deposited into another database, enter the database identifier here (e.g. EMPIAR-11445). Use a comma to separate multiple identifiers. + range: string + recommended: true + pattern: (^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$) DateStampedEntityMixin: name: DateStampedEntityMixin description: A set of dates at which a data item was deposited, published and @@ -2624,30 +2571,30 @@ classes: - author_primary_author_status ifabsent: false range: boolean - AnnotationMethodLinks: - name: AnnotationMethodLinks - description: A set of links to models, source code, documentation, etc referenced - by annotation the method - mixin: true - from_schema: cdp-dataset-config + AnnotationMethodLink: + annotations: + plural: + tag: plural + value: AnnotationMethodLinks + description: A set of links to models, source code, documentation, etc referenced by annotation method + mixins: + - IDMixin attributes: - link: - name: link - description: URL to the resource - from_schema: cdp-dataset-config - range: string - required: true + annotation: + name: annotation + description: Reference to annotation this link applies to + inverse: Annotation.method_links + range: Annotation link_type: - name: link_type description: Type of link (e.g. model, source code, documentation) - from_schema: cdp-dataset-config range: annotation_method_link_type_enum required: true - pattern: (^documentation$)|(^models_weights$)|(^other$)|(^source_code$)|(^website$) name: - name: name description: user readable name of the resource - from_schema: cdp-dataset-config range: string recommended: true + link: + description: URL to the resource + range: string + required: true source_file: api_models.yaml diff --git a/apiv2/scripts/seed.py b/apiv2/scripts/seed.py index 0a572a3fc..89fd06925 100644 --- a/apiv2/scripts/seed.py +++ b/apiv2/scripts/seed.py @@ -97,8 +97,6 @@ def use_factoryboy() -> None: s3_omezarr_dir="s3://test-public-bucket/20001/RUN1/TiltSeries/RUN1.zarr", https_mrc_file="http://localhost:4444/20001/RUN1/TiltSeries/RUN1_bin1.mrc", https_omezarr_dir="http://localhost:4444/20001/RUN1/TiltSeries/RUN1.zarr", - s3_collection_metadata="s3://test-public-bucket/20001/RUN1/TiltSeries/RUN1.mdoc", - https_collection_metadata="http://localhost:4444/20001/RUN1/TiltSeries/RUN1.mdoc", s3_angle_list="s3://test-public-bucket/20001/RUN1/TiltSeries/RUN1.rawtlt", https_angle_list="http://localhost:4444/20001/RUN1/TiltSeries/RUN1.rawtlt", ) @@ -109,8 +107,6 @@ def use_factoryboy() -> None: s3_omezarr_dir="s3://test-public-bucket/20001/RUN2/TiltSeries/RUN2.zarr", https_mrc_file="http://localhost:4444/20001/RUN2/TiltSeries/RUN2.mrc", https_omezarr_dir="http://localhost:4444/20001/RUN2/TiltSeries/RUN2.zarr", - s3_collection_metadata="s3://test-public-bucket/20001/RUN2/TiltSeries/RUN2.mdoc", - https_collection_metadata="http://localhost:4444/20001/RUN2/TiltSeries/RUN2.mdoc", s3_angle_list="s3://test-public-bucket/20001/RUN2/TiltSeries/RUN2.rawtlt", https_angle_list="http://localhost:4444/20001/RUN2/TiltSeries/RUN2.rawtlt", ) @@ -121,8 +117,6 @@ def use_factoryboy() -> None: s3_omezarr_dir="s3://test-public-bucket/20002/RUN001/TiltSeries/RUN001.zarr", https_mrc_file="http://localhost:4444/20002/RUN001/TiltSeries/RUN001.mrc", https_omezarr_dir="http://localhost:4444/20002/RUN001/TiltSeries/RUN001.zarr", - s3_collection_metadata="s3://test-public-bucket/20002/RUN001/TiltSeries/RUN001.mdoc", - https_collection_metadata="http://localhost:4444/20002/RUN001/TiltSeries/RUN001.mdoc", s3_angle_list="s3://test-public-bucket/20002/RUN001/TiltSeries/RUN001.rawtlt", https_angle_list="http://localhost:4444/20002/RUN001/TiltSeries/RUN001.rawtlt", ) @@ -133,8 +127,6 @@ def use_factoryboy() -> None: s3_omezarr_dir="s3://test-public-bucket/20002/RUN002/TiltSeries/RUN002.zarr", https_mrc_file="http://localhost:4444/20002/RUN002/TiltSeries/RUN002.mrc", https_omezarr_dir="http://localhost:4444/20002/RUN002/TiltSeries/RUN002.zarr", - s3_collection_metadata="s3://test-public-bucket/20002/RUN002/TiltSeries/RUN002.mdoc", - https_collection_metadata="http://localhost:4444/20002/RUN002/TiltSeries/RUN002.mdoc", s3_angle_list="s3://test-public-bucket/20002/RUN002/TiltSeries/RUN002.rawtlt", https_angle_list="http://localhost:4444/20002/RUN002/TiltSeries/RUN002.rawtlt", ) diff --git a/apiv2/support/enums.py b/apiv2/support/enums.py index 35ac194ca..9d2d19f37 100644 --- a/apiv2/support/enums.py +++ b/apiv2/support/enums.py @@ -17,6 +17,13 @@ class annotation_file_source_enum(enum.StrEnum): portal_standard = "portal_standard" +@strawberry.enum +class alignment_method_type_enum(enum.StrEnum): + projection_matching = "projection_matching" + patch_tracking = "patch_tracking" + fiducial_based = "fiducial_based" + + @strawberry.enum class annotation_method_type_enum(enum.StrEnum): manual = "manual" diff --git a/apiv2/template_overrides/graphql_api/types/class_name.py.j2 b/apiv2/template_overrides/graphql_api/types/class_name.py.j2 index 8c4fdad8e..c00687430 100644 --- a/apiv2/template_overrides/graphql_api/types/class_name.py.j2 +++ b/apiv2/template_overrides/graphql_api/types/class_name.py.j2 @@ -35,8 +35,6 @@ Make changes to the template codegen/templates/graphql_api/types/class_name.py.j UUIDComparators {%- elif field.type == "string" -%} StrComparators - {%- elif field.type == "Array2dFloat" -%} - JSONB {%- elif field.type == "integer" -%} IntComparators {%- elif field.type == "float" -%} @@ -278,7 +276,7 @@ class {{ cls.name }}WhereClause(TypedDict): {%- for attr in cls.visible_fields %} {%- if attr.type == cls.name %} {{ attr.name }}_id: Optional[{{ getComparators(attr.related_class.identifier) }}] | None - {%- elif attr.type == "File" %} + {%- elif attr.type in ["File", "Array2dFloat"] %} {%- else %} {{ attr.name }}: Optional[{{ getComparators(attr) }}] | None {%- endif %} diff --git a/apiv2/test_infra/factories/alignment.py b/apiv2/test_infra/factories/alignment.py index 89f70f993..2164f90ca 100644 --- a/apiv2/test_infra/factories/alignment.py +++ b/apiv2/test_infra/factories/alignment.py @@ -41,6 +41,7 @@ class Meta: RunFactory, ) alignment_type = fuzzy.FuzzyChoice(["LOCAL", "GLOBAL"]) + alignment_method = fuzzy.FuzzyChoice(["projection_matching", "patch_tracking", "fiducial_based"]) volume_x_dimension = fuzzy.FuzzyFloat(1, 100) volume_y_dimension = fuzzy.FuzzyFloat(1, 100) volume_z_dimension = fuzzy.FuzzyFloat(1, 100) @@ -49,6 +50,8 @@ class Meta: volume_z_offset = fuzzy.FuzzyFloat(1, 100) x_rotation_offset = fuzzy.FuzzyFloat(1, 100) tilt_offset = fuzzy.FuzzyFloat(1, 100) - local_alignment_file = fuzzy.FuzzyText() affine_transformation_matrix = fuzzy.FuzzyText() + s3_alignment_metadata = fuzzy.FuzzyText() + https_alignment_metadata = fuzzy.FuzzyText() + is_portal_standard = factory.Faker("boolean") id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/annotation.py b/apiv2/test_infra/factories/annotation.py index 2481e8f3e..31d3b94a3 100644 --- a/apiv2/test_infra/factories/annotation.py +++ b/apiv2/test_infra/factories/annotation.py @@ -40,7 +40,6 @@ class Meta: https_metadata_path = fuzzy.FuzzyText() annotation_publication = fuzzy.FuzzyText() annotation_method = fuzzy.FuzzyText() - method_links = fuzzy.FuzzyText() ground_truth_status = factory.Faker("boolean") object_id = fuzzy.FuzzyText() object_name = fuzzy.FuzzyText() diff --git a/apiv2/test_infra/factories/annotation_method_link.py b/apiv2/test_infra/factories/annotation_method_link.py new file mode 100644 index 000000000..57cc922ab --- /dev/null +++ b/apiv2/test_infra/factories/annotation_method_link.py @@ -0,0 +1,38 @@ +""" +Factory for generating AnnotationMethodLink objects. + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/test_infra/factories/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + +import factory +from database.models import AnnotationMethodLink +from factory import Faker, fuzzy +from faker_biology.bioseq import Bioseq +from faker_biology.physiology import Organ +from faker_enum import EnumProvider + +from platformics.test_infra.factories.base import CommonFactory +from test_infra.factories.annotation import AnnotationFactory + +Faker.add_provider(Bioseq) +Faker.add_provider(Organ) +Faker.add_provider(EnumProvider) + + +class AnnotationMethodLinkFactory(CommonFactory): + class Meta: + sqlalchemy_session = None # workaround for a bug in factoryboy + model = AnnotationMethodLink + + sqlalchemy_get_or_create = ("id",) + + annotation = factory.SubFactory( + AnnotationFactory, + ) + link_type = fuzzy.FuzzyChoice(["documentation", "models_weights", "other", "source_code", "website"]) + name = fuzzy.FuzzyText() + link = fuzzy.FuzzyText() + id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/frame.py b/apiv2/test_infra/factories/frame.py index c3d7d6c07..ced735a49 100644 --- a/apiv2/test_infra/factories/frame.py +++ b/apiv2/test_infra/factories/frame.py @@ -40,8 +40,6 @@ class Meta: acquisition_order = fuzzy.FuzzyInteger(1, 1000) dose = fuzzy.FuzzyFloat(1, 100) is_gain_corrected = factory.Faker("boolean") - s3_gain_file = fuzzy.FuzzyText() - https_gain_file = fuzzy.FuzzyText() s3_prefix = fuzzy.FuzzyText() https_prefix = fuzzy.FuzzyText() id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/frame_acquisition_file.py b/apiv2/test_infra/factories/frame_acquisition_file.py new file mode 100644 index 000000000..b7573486b --- /dev/null +++ b/apiv2/test_infra/factories/frame_acquisition_file.py @@ -0,0 +1,37 @@ +""" +Factory for generating FrameAcquisitionFile objects. + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/test_infra/factories/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + +import factory +from database.models import FrameAcquisitionFile +from factory import Faker, fuzzy +from faker_biology.bioseq import Bioseq +from faker_biology.physiology import Organ +from faker_enum import EnumProvider + +from platformics.test_infra.factories.base import CommonFactory +from test_infra.factories.run import RunFactory + +Faker.add_provider(Bioseq) +Faker.add_provider(Organ) +Faker.add_provider(EnumProvider) + + +class FrameAcquisitionFileFactory(CommonFactory): + class Meta: + sqlalchemy_session = None # workaround for a bug in factoryboy + model = FrameAcquisitionFile + + sqlalchemy_get_or_create = ("id",) + + run = factory.SubFactory( + RunFactory, + ) + s3_mdoc_path = fuzzy.FuzzyText() + https_mdoc_path = fuzzy.FuzzyText() + id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/gain_file.py b/apiv2/test_infra/factories/gain_file.py new file mode 100644 index 000000000..14d5e281d --- /dev/null +++ b/apiv2/test_infra/factories/gain_file.py @@ -0,0 +1,37 @@ +""" +Factory for generating GainFile objects. + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/test_infra/factories/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + +import factory +from database.models import GainFile +from factory import Faker, fuzzy +from faker_biology.bioseq import Bioseq +from faker_biology.physiology import Organ +from faker_enum import EnumProvider + +from platformics.test_infra.factories.base import CommonFactory +from test_infra.factories.run import RunFactory + +Faker.add_provider(Bioseq) +Faker.add_provider(Organ) +Faker.add_provider(EnumProvider) + + +class GainFileFactory(CommonFactory): + class Meta: + sqlalchemy_session = None # workaround for a bug in factoryboy + model = GainFile + + sqlalchemy_get_or_create = ("id",) + + run = factory.SubFactory( + RunFactory, + ) + s3_file_path = fuzzy.FuzzyText() + https_file_path = fuzzy.FuzzyText() + id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/per_section_alignment_parameters.py b/apiv2/test_infra/factories/per_section_alignment_parameters.py index ef4d74a20..ed5dcd9db 100644 --- a/apiv2/test_infra/factories/per_section_alignment_parameters.py +++ b/apiv2/test_infra/factories/per_section_alignment_parameters.py @@ -7,6 +7,8 @@ # ruff: noqa: E501 Line too long +import random + import factory from database.models import PerSectionAlignmentParameters from factory import Faker, fuzzy @@ -35,7 +37,9 @@ class Meta: z_index = fuzzy.FuzzyInteger(1, 1000) x_offset = fuzzy.FuzzyFloat(1, 100) y_offset = fuzzy.FuzzyFloat(1, 100) - in_plane_rotation = fuzzy.FuzzyFloat(1, 100) - beam_tilt = fuzzy.FuzzyFloat(1, 100) + volume_x_rotation = fuzzy.FuzzyFloat(1, 100) + in_plane_rotation = factory.LazyAttribute( + lambda o: [[random.uniform(1, 100) for _ in range(5)]] * random.randint(2, 5), + ) tilt_angle = fuzzy.FuzzyFloat(1, 100) id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/tiltseries.py b/apiv2/test_infra/factories/tiltseries.py index af779e57f..bd20ebe0c 100644 --- a/apiv2/test_infra/factories/tiltseries.py +++ b/apiv2/test_infra/factories/tiltseries.py @@ -40,12 +40,8 @@ class Meta: s3_mrc_file = fuzzy.FuzzyText() https_omezarr_dir = fuzzy.FuzzyText() https_mrc_file = fuzzy.FuzzyText() - s3_collection_metadata = fuzzy.FuzzyText() - https_collection_metadata = fuzzy.FuzzyText() s3_angle_list = fuzzy.FuzzyText() https_angle_list = fuzzy.FuzzyText() - s3_gain_file = fuzzy.FuzzyText() - https_gain_file = fuzzy.FuzzyText() acceleration_voltage = fuzzy.FuzzyInteger(1, 1000) spherical_aberration_constant = fuzzy.FuzzyFloat(1, 100) microscope_manufacturer = fuzzy.FuzzyChoice(["FEI", "TFS", "JEOL", "SIMULATED"]) @@ -70,5 +66,4 @@ class Meta: is_aligned = factory.Faker("boolean") pixel_spacing = fuzzy.FuzzyFloat(1, 100) aligned_tiltseries_binning = fuzzy.FuzzyInteger(1, 1000) - frames_count = fuzzy.FuzzyInteger(1, 1000) id = fuzzy.FuzzyInteger(1, 1000) diff --git a/apiv2/test_infra/factories/tomogram.py b/apiv2/test_infra/factories/tomogram.py index 776ed3515..76d433c50 100644 --- a/apiv2/test_infra/factories/tomogram.py +++ b/apiv2/test_infra/factories/tomogram.py @@ -55,7 +55,9 @@ class Meta: tomogram_version = fuzzy.FuzzyFloat(1, 100) processing_software = fuzzy.FuzzyText() reconstruction_software = fuzzy.FuzzyText() - is_canonical = factory.Faker("boolean") + is_portal_standard = factory.Faker("boolean") + is_author_submitted = factory.Faker("boolean") + is_visualization_default = factory.Faker("boolean") s3_omezarr_dir = fuzzy.FuzzyText() https_omezarr_dir = fuzzy.FuzzyText() s3_mrc_file = fuzzy.FuzzyText() @@ -70,5 +72,9 @@ class Meta: key_photo_url = fuzzy.FuzzyText() key_photo_thumbnail_url = fuzzy.FuzzyText() neuroglancer_config = fuzzy.FuzzyText() - is_standardized = factory.Faker("boolean") + publications = fuzzy.FuzzyText() + related_database_entries = fuzzy.FuzzyText() id = fuzzy.FuzzyInteger(1, 1000) + deposition_date = factory.Faker("date") + release_date = factory.Faker("date") + last_modified_date = factory.Faker("date") diff --git a/apiv2/validators/alignment.py b/apiv2/validators/alignment.py index ae9c3f442..5f52c62cf 100644 --- a/apiv2/validators/alignment.py +++ b/apiv2/validators/alignment.py @@ -11,7 +11,7 @@ import uuid from pydantic import BaseModel, ConfigDict, Field, StringConstraints -from support.enums import alignment_type_enum +from support.enums import alignment_method_type_enum, alignment_type_enum from typing_extensions import Annotated @@ -22,6 +22,7 @@ class AlignmentCreateInputValidator(BaseModel): tiltseries_id: Annotated[uuid.UUID | None, Field()] run_id: Annotated[uuid.UUID | None, Field()] alignment_type: Annotated[alignment_type_enum | None, Field()] + alignment_method: Annotated[alignment_method_type_enum | None, Field()] volume_x_dimension: Annotated[float | None, Field()] volume_y_dimension: Annotated[float | None, Field()] volume_z_dimension: Annotated[float | None, Field()] @@ -30,18 +31,25 @@ class AlignmentCreateInputValidator(BaseModel): volume_z_offset: Annotated[float | None, Field()] x_rotation_offset: Annotated[float | None, Field()] tilt_offset: Annotated[float | None, Field()] - local_alignment_file: Annotated[ + affine_transformation_matrix: Annotated[ str | None, StringConstraints( strip_whitespace=True, ), ] - affine_transformation_matrix: Annotated[ + s3_alignment_metadata: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + https_alignment_metadata: Annotated[ str | None, StringConstraints( strip_whitespace=True, ), ] + is_portal_standard: Annotated[bool | None, Field()] id: Annotated[int, Field()] @@ -52,6 +60,7 @@ class AlignmentUpdateInputValidator(BaseModel): tiltseries_id: Annotated[uuid.UUID | None, Field()] run_id: Annotated[uuid.UUID | None, Field()] alignment_type: Annotated[alignment_type_enum | None, Field()] + alignment_method: Annotated[alignment_method_type_enum | None, Field()] volume_x_dimension: Annotated[float | None, Field()] volume_y_dimension: Annotated[float | None, Field()] volume_z_dimension: Annotated[float | None, Field()] @@ -60,16 +69,23 @@ class AlignmentUpdateInputValidator(BaseModel): volume_z_offset: Annotated[float | None, Field()] x_rotation_offset: Annotated[float | None, Field()] tilt_offset: Annotated[float | None, Field()] - local_alignment_file: Annotated[ + affine_transformation_matrix: Annotated[ str | None, StringConstraints( strip_whitespace=True, ), ] - affine_transformation_matrix: Annotated[ + s3_alignment_metadata: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + https_alignment_metadata: Annotated[ str | None, StringConstraints( strip_whitespace=True, ), ] + is_portal_standard: Annotated[bool | None, Field()] id: Annotated[int | None, Field()] diff --git a/apiv2/validators/annotation.py b/apiv2/validators/annotation.py index 2d311b52d..cd7ab27f8 100644 --- a/apiv2/validators/annotation.py +++ b/apiv2/validators/annotation.py @@ -46,12 +46,6 @@ class AnnotationCreateInputValidator(BaseModel): strip_whitespace=True, ), ] - method_links: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] ground_truth_status: Annotated[bool | None, Field()] object_id: Annotated[ str, @@ -143,12 +137,6 @@ class AnnotationUpdateInputValidator(BaseModel): strip_whitespace=True, ), ] - method_links: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] ground_truth_status: Annotated[bool | None, Field()] object_id: Annotated[ str | None, diff --git a/apiv2/validators/annotation_method_link.py b/apiv2/validators/annotation_method_link.py new file mode 100644 index 000000000..f6e8227c0 --- /dev/null +++ b/apiv2/validators/annotation_method_link.py @@ -0,0 +1,55 @@ +""" +Pydantic validator for AnnotationMethodLink + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/validators/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import uuid + +from pydantic import BaseModel, ConfigDict, Field, StringConstraints +from support.enums import annotation_method_link_type_enum +from typing_extensions import Annotated + + +class AnnotationMethodLinkCreateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + annotation_id: Annotated[uuid.UUID | None, Field()] + link_type: Annotated[annotation_method_link_type_enum, Field()] + name: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + link: Annotated[ + str, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int, Field()] + + +class AnnotationMethodLinkUpdateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + annotation_id: Annotated[uuid.UUID | None, Field()] + link_type: Annotated[annotation_method_link_type_enum | None, Field()] + name: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + link: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int | None, Field()] diff --git a/apiv2/validators/frame.py b/apiv2/validators/frame.py index f0f26a2e0..fa1366876 100644 --- a/apiv2/validators/frame.py +++ b/apiv2/validators/frame.py @@ -29,18 +29,6 @@ class FrameCreateInputValidator(BaseModel): acquisition_order: Annotated[int | None, Field()] dose: Annotated[float, Field()] is_gain_corrected: Annotated[bool | None, Field()] - s3_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] s3_prefix: Annotated[ str, StringConstraints( @@ -71,18 +59,6 @@ class FrameUpdateInputValidator(BaseModel): acquisition_order: Annotated[int | None, Field()] dose: Annotated[float | None, Field()] is_gain_corrected: Annotated[bool | None, Field()] - s3_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] s3_prefix: Annotated[ str | None, StringConstraints( diff --git a/apiv2/validators/frame_acquisition_file.py b/apiv2/validators/frame_acquisition_file.py new file mode 100644 index 000000000..d8a900580 --- /dev/null +++ b/apiv2/validators/frame_acquisition_file.py @@ -0,0 +1,52 @@ +""" +Pydantic validator for FrameAcquisitionFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/validators/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import uuid + +from pydantic import BaseModel, ConfigDict, Field, StringConstraints +from typing_extensions import Annotated + + +class FrameAcquisitionFileCreateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + run_id: Annotated[uuid.UUID | None, Field()] + s3_mdoc_path: Annotated[ + str, + StringConstraints( + strip_whitespace=True, + ), + ] + https_mdoc_path: Annotated[ + str, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int, Field()] + + +class FrameAcquisitionFileUpdateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + run_id: Annotated[uuid.UUID | None, Field()] + s3_mdoc_path: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + https_mdoc_path: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int | None, Field()] diff --git a/apiv2/validators/gain_file.py b/apiv2/validators/gain_file.py new file mode 100644 index 000000000..c04cc3def --- /dev/null +++ b/apiv2/validators/gain_file.py @@ -0,0 +1,52 @@ +""" +Pydantic validator for GainFile + +Auto-generated by running 'make codegen'. Do not edit. +Make changes to the template codegen/templates/validators/class_name.py.j2 instead. +""" + +# ruff: noqa: E501 Line too long + + +import uuid + +from pydantic import BaseModel, ConfigDict, Field, StringConstraints +from typing_extensions import Annotated + + +class GainFileCreateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + run_id: Annotated[uuid.UUID | None, Field()] + s3_file_path: Annotated[ + str, + StringConstraints( + strip_whitespace=True, + ), + ] + https_file_path: Annotated[ + str, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int, Field()] + + +class GainFileUpdateInputValidator(BaseModel): + # Pydantic stuff + model_config = ConfigDict(from_attributes=True) + run_id: Annotated[uuid.UUID | None, Field()] + s3_file_path: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + https_file_path: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + ), + ] + id: Annotated[int | None, Field()] diff --git a/apiv2/validators/per_section_alignment_parameters.py b/apiv2/validators/per_section_alignment_parameters.py index f584e1ad1..33cfa6293 100644 --- a/apiv2/validators/per_section_alignment_parameters.py +++ b/apiv2/validators/per_section_alignment_parameters.py @@ -26,8 +26,8 @@ class PerSectionAlignmentParametersCreateInputValidator(BaseModel): ] x_offset: Annotated[float | None, Field()] y_offset: Annotated[float | None, Field()] - in_plane_rotation: Annotated[float | None, Field()] - beam_tilt: Annotated[float | None, Field()] + volume_x_rotation: Annotated[float | None, Field()] + in_plane_rotation: Annotated[list[list[float]] | None, Field()] tilt_angle: Annotated[float | None, Field()] id: Annotated[int, Field()] @@ -44,7 +44,7 @@ class PerSectionAlignmentParametersUpdateInputValidator(BaseModel): ] x_offset: Annotated[float | None, Field()] y_offset: Annotated[float | None, Field()] - in_plane_rotation: Annotated[float | None, Field()] - beam_tilt: Annotated[float | None, Field()] + volume_x_rotation: Annotated[float | None, Field()] + in_plane_rotation: Annotated[list[list[float]] | None, Field()] tilt_angle: Annotated[float | None, Field()] id: Annotated[int | None, Field()] diff --git a/apiv2/validators/tiltseries.py b/apiv2/validators/tiltseries.py index 79c1e7344..c45e713af 100644 --- a/apiv2/validators/tiltseries.py +++ b/apiv2/validators/tiltseries.py @@ -44,18 +44,6 @@ class TiltseriesCreateInputValidator(BaseModel): strip_whitespace=True, ), ] - s3_collection_metadata: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_collection_metadata: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] s3_angle_list: Annotated[ str | None, StringConstraints( @@ -68,18 +56,6 @@ class TiltseriesCreateInputValidator(BaseModel): strip_whitespace=True, ), ] - s3_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] acceleration_voltage: Annotated[ int, Field( @@ -221,7 +197,6 @@ class TiltseriesCreateInputValidator(BaseModel): ge=0, ), ] - frames_count: Annotated[int | None, Field()] id: Annotated[int, Field()] @@ -254,18 +229,6 @@ class TiltseriesUpdateInputValidator(BaseModel): strip_whitespace=True, ), ] - s3_collection_metadata: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_collection_metadata: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] s3_angle_list: Annotated[ str | None, StringConstraints( @@ -278,18 +241,6 @@ class TiltseriesUpdateInputValidator(BaseModel): strip_whitespace=True, ), ] - s3_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] - https_gain_file: Annotated[ - str | None, - StringConstraints( - strip_whitespace=True, - ), - ] acceleration_voltage: Annotated[ int | None, Field( @@ -431,5 +382,4 @@ class TiltseriesUpdateInputValidator(BaseModel): ge=0, ), ] - frames_count: Annotated[int | None, Field()] id: Annotated[int | None, Field()] diff --git a/apiv2/validators/tomogram.py b/apiv2/validators/tomogram.py index fbc74a7f8..0d99557e3 100644 --- a/apiv2/validators/tomogram.py +++ b/apiv2/validators/tomogram.py @@ -8,6 +8,7 @@ # ruff: noqa: E501 Line too long +import datetime import uuid from pydantic import BaseModel, ConfigDict, Field, StringConstraints @@ -68,7 +69,9 @@ class TomogramCreateInputValidator(BaseModel): strip_whitespace=True, ), ] - is_canonical: Annotated[bool | None, Field()] + is_portal_standard: Annotated[bool | None, Field()] + is_author_submitted: Annotated[bool | None, Field()] + is_visualization_default: Annotated[bool | None, Field()] s3_omezarr_dir: Annotated[ str | None, StringConstraints( @@ -133,8 +136,24 @@ class TomogramCreateInputValidator(BaseModel): strip_whitespace=True, ), ] - is_standardized: Annotated[bool, Field()] + publications: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + pattern=r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)", + ), + ] + related_database_entries: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + pattern=r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$)", + ), + ] id: Annotated[int, Field()] + deposition_date: Annotated[datetime.datetime, Field()] + release_date: Annotated[datetime.datetime, Field()] + last_modified_date: Annotated[datetime.datetime, Field()] class TomogramUpdateInputValidator(BaseModel): @@ -190,7 +209,9 @@ class TomogramUpdateInputValidator(BaseModel): strip_whitespace=True, ), ] - is_canonical: Annotated[bool | None, Field()] + is_portal_standard: Annotated[bool | None, Field()] + is_author_submitted: Annotated[bool | None, Field()] + is_visualization_default: Annotated[bool | None, Field()] s3_omezarr_dir: Annotated[ str | None, StringConstraints( @@ -255,5 +276,21 @@ class TomogramUpdateInputValidator(BaseModel): strip_whitespace=True, ), ] - is_standardized: Annotated[bool | None, Field()] + publications: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + pattern=r"(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)|(^(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+(\s*,\s*(doi:)?10\.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)*$)", + ), + ] + related_database_entries: Annotated[ + str | None, + StringConstraints( + strip_whitespace=True, + pattern=r"(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$)|(^(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8})(\s*,\s*(EMPIAR-[0-9]{5}|EMD-[0-9]{4,5}|pdb[0-9a-zA-Z]{4,8}))*$)", + ), + ] id: Annotated[int | None, Field()] + deposition_date: Annotated[datetime.datetime | None, Field()] + release_date: Annotated[datetime.datetime | None, Field()] + last_modified_date: Annotated[datetime.datetime | None, Field()]