diff --git a/src/components/BaseRadioFieldset.vue b/src/components/BaseRadioFieldset.vue index 639f6c7e1ffd3781e43f1b349c7dd86a51fdaa6c..c1bb2adb411c6148234a08fe090a46ea00de2119 100644 --- a/src/components/BaseRadioFieldset.vue +++ b/src/components/BaseRadioFieldset.vue @@ -34,18 +34,19 @@ defineEmits<{ }>() defineSlots<{ - /** Custom whole entry (input & label). */ - default(props: { - /** The data selected with the radio, in the `dataFieldPath` field of the selected entry. */ + /** Custom item appearance (input & label). */ + item: (props: { + /** The data selected with the radio, in the `dataFieldPath` field of the + * selected entry. */ selectedData: any /** The value of the entry to display. */ currentValue: T - }): any - /** Custom label for the radio button. */ - entryLabel(props: { + }) => any + /** Custom item label. */ + 'item-label': (props: { /** The value of the entry to display. */ currentValue: T - }): any + }) => any }>() /** @@ -64,13 +65,13 @@ const selectedData = ref<any>() :key="index" class="flex cursor-pointer items-center gap-2 pl-4 text-lg" > - <slot :selected-data="selectedData" :current-value="value"> + <slot name="item" :selected-data="selectedData" :current-value="value"> <RadioButton v-model="selectedData" :value="dataFieldPath ? _get(value, dataFieldPath) : value" @update:model-value="$emit('change', selectedData)" /> - <slot name="entryLabel" :current-value="value"> + <slot name="item-label" :current-value="value"> {{ labelFieldPath ? _get(value, labelFieldPath) diff --git a/src/components/InteractionBoard.vue b/src/components/InteractionBoard.vue index a5f5f5b057216f7f3cac6918403764e34480b000..a6ffd6ae5b0fea82f3ff7907dd1b2d4ba67565f4 100644 --- a/src/components/InteractionBoard.vue +++ b/src/components/InteractionBoard.vue @@ -23,6 +23,7 @@ import { formatGuideSubtype } from '@/utils/textFormatting' * Component props */ const props = defineProps<{ + /** The list of the interactions available for choice to visualise. */ interactionList: InteractionCardModel[] /** Field used to dedup `interactionList` for first selection, * must point to a primitive type */ @@ -36,6 +37,24 @@ const props = defineProps<{ selectionFieldLegend2?: string }>() +/** + * Component slots. + */ +defineSlots<{ + /** Custom item labels for first radio fieldset. */ + 'item-label-1': (props: { + /** The value of the entry to display. */ + currentValue: InteractionCardModel + }) => void + /** Custom item labels for second radio fieldset (if present). */ + 'item-label-2': (props: { + /** The value of the entry to display. */ + currentValue: InteractionCardModel + }) => void + /** Custom message to show when selection is not complete. */ + 'selection-incomplete-message': () => void +}>() + watch( () => props.selectionFieldPath1, (newSelectionField1: string) => { @@ -118,8 +137,8 @@ const selectedValue2 = ref<any>() :data-field-path="selectionFieldPath1" @change="updateSelection1" > - <template #entryLabel="{ currentValue }"> - <slot name="radioEntryLabel1" :current-value="currentValue">{{ + <template #item-label="{ currentValue }"> + <slot name="item-label-1" :current-value="currentValue">{{ _get(currentValue, props.selectionFieldPath1) }}</slot> </template> @@ -136,8 +155,11 @@ const selectedValue2 = ref<any>() :data-field-path="selectionFieldPath2" @change="updateSelection2" > - <template #entryLabel="{ currentValue }"> - <slot name="radioEntryLabel2" :current-value="currentValue"></slot> + <template #item-label="{ currentValue }"> + <slot name="item-label-2" :current-value="currentValue">{{ + props.selectionFieldPath2 && + _get(currentValue, props.selectionFieldPath2) + }}</slot> </template> </BaseRadioFieldset> </form> @@ -146,7 +168,7 @@ const selectedValue2 = ref<any>() class="col-span-2 m-auto" :interaction="selectedInteraction" > - <template v-if="selectedInteraction" #card-title> + <template v-if="selectedInteraction" #title> <div class="text-center"> {{ selectedInteraction.guide.name || selectedInteraction.guide.id }} / {{ selectedInteraction.target.name || selectedInteraction.target.id }} @@ -155,7 +177,7 @@ const selectedValue2 = ref<any>() </div> </template> - <template v-if="selectedInteraction" #card-subtitle> + <template v-if="selectedInteraction" #subtitle> <div class="text-center"> {{ formatGuideSubtype(selectedInteraction.guide.subtype) }} / {{ selectedInteraction.target.type }} : @@ -164,11 +186,12 @@ const selectedValue2 = ref<any>() </div> </template> - <template #card-content-undef-prop> + <template #undefined-interaction-message> <span class="italic text-slate-400"> <strong>←</strong> - Please select a target & modification on the left to visualise the - interaction + <slot name="selection-incomplete-message"> + Please do a selection on the left to visualise the interaction. + </slot> </span> </template> </InteractionCard> diff --git a/src/components/InteractionCard.vue b/src/components/InteractionCard.vue index 597e79b253600314a34ab2681ba260b5568a18bd..17b22d4f8e12651b79c2982f58733e6244b1997e 100644 --- a/src/components/InteractionCard.vue +++ b/src/components/InteractionCard.vue @@ -79,16 +79,26 @@ export interface InteractionCardModel { }[] } -defineSlots<{ - 'card-title': () => void - 'card-subtitle': () => void - 'card-content-undef-prop': () => void -}>() - +/** + * Component props. + */ const props = defineProps<{ + /** The interaction to visualise. */ interaction: InteractionCardModel | undefined }>() +/** + * Component slots. + */ +defineSlots<{ + /** Custom card title. */ + title: () => void + /** Custom card subtitle. */ + subtitle: () => void + /** Custom message to show when `interaction` prop is not defined. */ + 'undefined-interaction-message': () => void +}>() + const CDFormattedInteraction = computed<InteractionCDModel | undefined>(() => { const duplex = props.interaction?.duplexes[0] @@ -205,11 +215,11 @@ const HACAFormattedInteraction = computed<InteractionHACAModel | undefined>( <template> <Card> - <template v-if="$slots['card-title']" #title> - <slot name="card-title"></slot> + <template v-if="$slots['title']" #title> + <slot name="title"></slot> </template> - <template v-if="$slots['card-subtitle']" #subtitle> - <slot name="card-subtitle"></slot> + <template v-if="$slots['subtitle']" #subtitle> + <slot name="subtitle"></slot> </template> <template #content> <template v-if="interaction"> @@ -221,10 +231,16 @@ const HACAFormattedInteraction = computed<InteractionHACAModel | undefined>( v-else-if="HACAFormattedInteraction" :interaction="HACAFormattedInteraction" /> + <div + v-else + class="rounded-lg border-2 border-dashed border-slate-300 p-4 italic text-slate-400" + > + Not enough information to compute the duplex. + </div> </template> <template v-else> - <slot name="card-content-undef-prop" - >Provide a guide, modification & interaction to visualise it. + <slot name="undefined-interaction-message"> + Provide a guide, modification & interaction to visualise it. </slot> </template> </template> diff --git a/src/components/SequenceBoard.vue b/src/components/SequenceBoard.vue index 0dd450ba49abf85bc812dd87c264d6dc495a203c..ef96ffd118d1cc6bbe6671f3cfbfa912fff6e188 100644 --- a/src/components/SequenceBoard.vue +++ b/src/components/SequenceBoard.vue @@ -17,9 +17,10 @@ import IconFa6RegularCopy from '~icons/fa6-regular/copy' import { useElementBounding, useElementVisibility, + useMutationObserver, useResizeObserver } from '@vueuse/core' -import { inRange as _inRange, range as _range, find as _find } from 'lodash-es' +import { inRange as _inRange } from 'lodash-es' /** * Types imports */ @@ -28,42 +29,49 @@ import { type TailwindDefaultColorNameModel } from '@/typings/styleTypes' * Utils imports */ import { promisedWait } from '@/utils/promise' +import { range } from '@/utils/numbers' +/** + * A group of nucleotides to highlight on the sequence. + */ export interface highlightGroupModel { - /** First position to highlight (starts at 1) */ + /** First position to highlight (starts at 1). */ start: number - /** Last position to highlight (included) */ + /** Last position to highlight (included). */ end: number - /** Color(s) to use to highlight the group */ + /** Color(s) to use to highlight the group. */ color: TailwindDefaultColorNameModel } +/** + * The state of the clipboard. + */ enum ClipboardStateModel { - // Clipboard is idle + /** Clipboard is idle. */ Idle, - // Something is being copied into the clipboard + /** Something is being copied into the clipboard. */ Busy, - // Post-copy tasks are running before releasing the clipboard + /** Post-copy tasks are running before releasing the clipboard. */ PostCopy } /** - * Component props + * Component props. */ const props = defineProps<{ /** The sequence to represent. */ sequence: string - /** Groups to highlight on the sequence */ + /** Groups to highlight on the sequence. */ highlightedGroups?: { [groupId: string]: highlightGroupModel } }>() /** - * Current state of the clipboard availability + * Current state of the clipboard availability. */ const clipboardState = ref<ClipboardStateModel>(ClipboardStateModel.Idle) /** - * Copies the sequence to the clipboard, and handles the different states of it + * Copies the sequence to the clipboard, and handles the different states of it. */ const sequenceToClipboard = () => { clipboardState.value = ClipboardStateModel.Busy @@ -80,19 +88,19 @@ const sequenceToClipboard = () => { } /** - * Nucl. count size of the groups in which the sequence is split + * Size (in term of nucl.) of the groups into which the sequence is divided. */ const nucleotideGroupsSize = ref(10) /** - * Number of groups in which the sequence is to be split + * Number of groups in which the sequence is divided. */ const nucleotideGroupsCount = computed(() => Math.ceil(props.sequence.length / nucleotideGroupsSize.value) ) /** - * The sequence, split in groups of selected size, as an array + * The sequence, split in groups of selected size, as an array. */ const splitSequence = computed(() => Array.from({ length: nucleotideGroupsCount.value }, (_, i) => @@ -104,10 +112,10 @@ const splitSequence = computed(() => ) /** - * Wether a nucleotide is in a given highlighted group or not - * @param position The position of the nucleotide to check - * @param groupId The id of the group to check for - * @returns `true` if position if in the given group, `false` otherwise + * Wether a nucleotide is in a given highlighted group or not. + * @param position The position of the nucleotide to check. + * @param groupId The id of the group to check for. + * @returns `true` if position if in the given group, `false` otherwise. */ const isInHighlightedGroup = (position: number, groupId: string): boolean => { const highlightedGroup = props.highlightedGroups?.[groupId] @@ -118,9 +126,9 @@ const isInHighlightedGroup = (position: number, groupId: string): boolean => { } /** - * Gets the IDs of the highlighted groups containing a nucleotide - * @param position The position of the nucleotide for which to get group IDs - * @returns A list of the IDs of the highlighted groups containing the nucleotide + * Gets the IDs of the highlighted groups containing a nucleotide. + * @param position The position of the nucleotide for which to get group IDs. + * @returns A list of the IDs of the highlighted groups containing the nucleotide. */ const highlightedGroupIdsContaining = (position: number): string[] => props.highlightedGroups @@ -130,46 +138,45 @@ const highlightedGroupIdsContaining = (position: number): string[] => : [] /** - * Whether a nucleotide is in any highlighted group - * @param position The position of the nucleotide to check - * @returns `true` if the nucleotide is in any highlighted group, `false` otherwise + * Whether a nucleotide is in any highlighted group. + * @param position The position of the nucleotide to check. + * @returns `true` if the nucleotide is in any highlighted group, `false` otherwise. */ const isInAnyHighlightedGroup = (position: number): boolean => !!highlightedGroupIdsContaining(position).length /** - * Whether a nucleotide is the start of an highlighted group - * @param position The position of the nucleotide to check - * @returns `true` if the nucleotide is the start of an highlighted group, `false` otherwise + * Set of all the boundary positions (start & end) of all highlighted groups on + * the sequence. */ -const isHighlightedGroupStart = (position: number): boolean => - !!highlightedGroupIdsContaining(position).find( - (groupId) => props.highlightedGroups?.[groupId]?.start === position - ) +const highlightedGroupsBoundaries = computed( + () => + props.highlightedGroups && + Object.values(props.highlightedGroups).reduce( + (highlightedGroupsBoundaries, highlightedGroup) => + highlightedGroupsBoundaries + .add(highlightedGroup.start) + .add(highlightedGroup.end), + new Set<number>() + ) +) /** - * Whether a nucleotide is the end of an highlighted group - * @param position The position of the nucleotide to check - * @returns `true` if the nucleotide is the end of an highlighted group, `false` otherwise + * Whether a nucleotide is a boundary position (start or end) of an highlighted + * group. + * @param position The position of the nucleotide to check. + * @returns `true` if the nucleotide is the start of an highlighted group, `false` otherwise. */ -const isHighlightedGroupEnd = (position: number): boolean => - !!highlightedGroupIdsContaining(position).filter( - (groupId) => props.highlightedGroups?.[groupId]?.end === position - ).length +const isHighlightedGroupBoundary = (position: number): boolean => + !!highlightedGroupsBoundaries.value?.has(position) /** - * Gets the ID of the highlighted group which starts or end with a nucleotide. - * @param position The position of the nucleotide to check. - * @returns The ID of if the highlighted group which starts or end with the - * nucleotide, `undefined` if there is none. + * Composes the Tailwind color name in which to paint a nucleotide based on its + * position. + * @param position The position for which to compose the color. + * @returns `slate` if there is no or several boxes at the given position, the + * Tailwind color name of the box if there is only one. */ -const idOfGroupStartingOrEndingWith = (position: number): string | undefined => - props.highlightedGroups && - Object.entries(props.highlightedGroups).find( - ([_groupId, highlightedGroup]) => - highlightedGroup.start === position || highlightedGroup.end === position - )?.[0] - const composeHighlightedPositionColor = ( position: number ): TailwindDefaultColorNameModel => { @@ -181,37 +188,33 @@ const composeHighlightedPositionColor = ( } /** - * Sequence & the directions labels container DOM `HTMLElement` + * Sequence & the directions labels container DOM `HTMLElement`. */ const sequenceAndLabelsContainerElement = ref<HTMLElement>() /** - * Sequence container DOM `HTMLElement` + * Sequence container DOM `HTMLElement`. */ const sequenceContainerElement = ref<HTMLElement>() /** - * Split sequence groups DOM `HTMLElement` array + * Split sequence groups DOM `HTMLElement` array. */ const sequenceGroupElements = ref<HTMLElement[]>([]) /** - * Labels of the positions of the first nucleotide of each group DOM `HTMLElement` + * Labels of the positions of the first nucleotide of each group DOM `HTMLElement`. * array */ const groupsPositionsElements = ref<HTMLElement[]>([]) /** - * First nucleotide of each box DOM `HTMLElement` array - */ -const boxFirstNucleotideElements = ref<HTMLElement[]>([]) -/** - * Last nucleotide of each box DOM `HTMLElement` array + * First & last nucleotides of each box DOM `HTMLElement` array. */ -const boxLastNucleotideElements = ref<HTMLElement[]>([]) +const boxBoundaryElements = ref<HTMLElement[]>([]) /** - * Boxes DOM `HTMLElement` array + * Boxes DOM `HTMLElement` array. */ const boxElements = ref<HTMLElement[]>([]) /** - * Last split sequence group DOM `HTMLElement` + * Last split sequence group DOM `HTMLElement`. */ const lastSequenceGroupElement = computed(() => sequenceGroupElements.value.length @@ -220,7 +223,7 @@ const lastSequenceGroupElement = computed(() => ) /** - * Last nucleotide DOM `HTMLElement` + * Last nucleotide DOM `HTMLElement`. */ const lastNucleotideElement = computed( () => @@ -231,19 +234,19 @@ const lastNucleotideElement = computed( ) /** - * Bounding box of last nucleotide DOM `HTMLElement` + * Bounding box of last nucleotide DOM `HTMLElement`. */ const lastNucleotideElementBounding = useElementBounding(lastNucleotideElement) /** - * Bounding box of sequence & the directions labels container DOM `HTMLElement` + * Bounding box of sequence & the directions labels container DOM `HTMLElement`. */ const sequenceAndLabelsContainerElementBounding = useElementBounding( sequenceAndLabelsContainerElement ) /** - * Inline style of the `3'` label + * Inline style of the `3'` label. */ const threePrimeLabelStyle = computed(() => ({ left: `calc(${ @@ -258,31 +261,7 @@ const threePrimeLabelStyle = computed(() => ({ })) /** - * Updates the list of the first nucleotide of each box DOM `HTMLElement` - */ -const updateBoxFirstNucleotideElements = (): HTMLElement[] => - (boxFirstNucleotideElements.value = Array.from( - document.querySelectorAll('[data-is-highlight-start="true"]') - ) as HTMLElement[]) - -/** - * Updates the list of the last nucleotide of each box DOM `HTMLElement` - */ -const updateBoxLastNucleotideElements = (): HTMLElement[] => - (boxLastNucleotideElements.value = Array.from( - document.querySelectorAll('[data-is-highlight-end="true"]') - ) as HTMLElement[]) - -/** - * Updates all DOM `HTMLElement` - */ -const updateElements = (): void => { - updateBoxFirstNucleotideElements() - updateBoxLastNucleotideElements() -} - -/** - * Height of a line of sequence, adapted to both Chromium & Firefox + * Height of a line of sequence, adapted to both Chromium & Firefox. */ const lineHeight = computed( () => @@ -300,38 +279,37 @@ const lineHeight = computed( /** * Dictionary of the number of line on which each highlighted group spreads, - * by group ID + * by group ID. */ const highlightedGroupsLineCount = ref<{ [groupId: string]: number }>() /** - * Updates the number of line on which each highlighted group spreads - * @returns The updated number of line on which each highlighted group spreads - * @description Retrieves the line count by getting the difference between the top of the - * last nucleotide of the box and the top of the first one, and dividing by - * the line height + * Updates the number of line on which each highlighted group spreads. + * @returns The updated number of line on which each highlighted group spreads. + * @description Retrieves the line count by getting the difference between the + * top of the last nucleotide of the box and the top of the first one, and + * dividing by the line height. */ const updateHighlightedGroupsLineCount = (): typeof highlightedGroupsLineCount.value => (highlightedGroupsLineCount.value = props.highlightedGroups && - Object.keys(props.highlightedGroups).reduce( - (highlightedGroupsLineCount, groupId) => ({ + Object.entries(props.highlightedGroups).reduce( + (highlightedGroupsLineCount, [groupId, group]) => ({ ...highlightedGroupsLineCount, [groupId]: lineHeight.value && Math.round( (( - _find(boxLastNucleotideElements.value, [ - 'dataset.highlightIndex', - groupId - ])?.offsetParent as HTMLElement + boxBoundaryElements.value.find( + (element) => element.dataset.position === group.end.toString() + )?.offsetParent as HTMLElement )?.offsetTop - ( - _find(boxFirstNucleotideElements.value, [ - 'dataset.highlightIndex', - groupId - ])?.offsetParent as HTMLElement + boxBoundaryElements.value.find( + (element) => + element.dataset.position === group.start.toString() + )?.offsetParent as HTMLElement )?.offsetTop) / lineHeight.value ) + 1 @@ -340,13 +318,13 @@ const updateHighlightedGroupsLineCount = )) /** - * Number of lines over which the sequence spreads + * Number of lines over which the sequence spreads. */ const lineCount = ref<number>() /** - * Updates the number of lines over which the sequence spreads - * @returns The updated line count + * Updates the number of lines over which the sequence spreads. + * @returns The updated line count. */ const updateLineCount = (): typeof lineCount.value => (lineCount.value = @@ -356,13 +334,13 @@ const updateLineCount = (): typeof lineCount.value => )) /** - * Number of columns over which the sequence spreads + * Number of columns over which the sequence spreads. */ const columnCount = ref<number>() /** - * Updates the number of columns over which the sequence spreads - * @returns The updated column count + * Updates the number of columns over which the sequence spreads. + * @returns The updated column count. */ const updateColumnCount = (): typeof columnCount.value => { updateLineCount() @@ -371,12 +349,24 @@ const updateColumnCount = (): typeof columnCount.value => { } /** - * Width of the sequence container + * Width of the sequence container. */ const sequenceContainerContentWidth = ref<number>() +useMutationObserver( + sequenceContainerElement, + (mutations) => { + if (mutations[0]) { + console.log(mutations[0]) + } + }, + { + childList: true + } +) + /** - * Updates the width of the sequence container + * Updates the width of the sequence container. */ const updateSequenceContainerContentWidth = (): typeof sequenceContainerContentWidth.value => { @@ -398,16 +388,15 @@ const updateSequenceContainerContentWidth = } /** - * Updates all the DOM positions & sizes + * Updates all the DOM positions & sizes. */ -const updatePositions = (): void => { - updateElements() +const update = (): void => { updateHighlightedGroupsLineCount() updateSequenceContainerContentWidth() } /** - * Redraws the nucleotide positions of the start of each split sequence groups + * Redraws the nucleotide positions of the start of each split sequence groups. */ const redrawGroupNumbers = (): void => { groupsPositionsElements.value.forEach((groupNumberElement) => { @@ -429,22 +418,16 @@ const redrawGroupNumbers = (): void => { } /** - * Redraws the boxes of highlighted groups + * Redraws the boxes of highlighted groups. */ const redrawBoxes = (): void => { boxElements.value.forEach((boxElement) => { - const matchingBoxFirstNucleotideElement = - boxFirstNucleotideElements.value.find((element) => { - return ( - element.dataset.highlightIndex === boxElement.dataset.highlightIndex - ) - }) - const matchingBoxLastNucleotideElement = - boxLastNucleotideElements.value.find((element) => { - return ( - element.dataset.highlightIndex === boxElement.dataset.highlightIndex - ) - }) + const matchingBoxFirstNucleotideElement = boxBoundaryElements.value.find( + (element) => element.dataset.position === boxElement.dataset.start + ) + const matchingBoxLastNucleotideElement = boxBoundaryElements.value.find( + (element) => element.dataset.position === boxElement.dataset.end + ) if ( !matchingBoxFirstNucleotideElement?.offsetParent || @@ -500,35 +483,35 @@ const redrawBoxes = (): void => { } /** - * Redraws every absolutely positioned objects + * Redraws every absolutely positioned objects. */ -const redrawObjects = (): void => { +const redraw = (): void => { redrawGroupNumbers() redrawBoxes() } /** - * Updates values then redraws every absolutely positioned objects + * Updates values then redraws every absolutely positioned objects. */ const updateAndRedraw = (): void => { - updatePositions() - redrawObjects() + update() + redraw() } /** - * Whether the sequence is visible or not + * Whether the sequence is visible or not. */ const isSequenceContainerElementVisible = useElementVisibility( sequenceContainerElement ) /** - * Sets hook to update and (re)draw on component mount + * Sets hook to update and (re)draw on component mount. */ onMounted(updateAndRedraw) /** - * Sets an observer to update and redraw on container resize + * Sets an observer to update and redraw on container resize. */ useResizeObserver(sequenceContainerElement, () => { updateAndRedraw() @@ -538,7 +521,7 @@ useResizeObserver(sequenceContainerElement, () => { }) /** - * Sets an observer to update and redraw when resuming sequence visibility + * Sets an observer to update and redraw when resuming sequence visibility. */ watch(isSequenceContainerElementVisible, (visibility) => { if (visibility) { @@ -610,20 +593,15 @@ watch(isSequenceContainerElementVisible, (visibility) => { <span v-for="(nucleotide, nucleotideIndex) in sequenceGroup" :key="nucleotideIndex" - :data-is-highlight-start=" - isHighlightedGroupStart( + :ref=" + isHighlightedGroupBoundary( nucleotideIndex + groupIndex * nucleotideGroupsSize + 1 ) + ? 'boxBoundaryElements' + : '' " - :data-is-highlight-end=" - isHighlightedGroupEnd( - nucleotideIndex + groupIndex * nucleotideGroupsSize + 1 - ) - " - :data-highlight-index=" - idOfGroupStartingOrEndingWith( - nucleotideIndex + groupIndex * nucleotideGroupsSize + 1 - ) + :data-position=" + nucleotideIndex + groupIndex * nucleotideGroupsSize + 1 " :class="[ 'mx-[.0625rem] border-2 border-transparent px-0.5 pt-0.5', @@ -655,11 +633,12 @@ watch(isSequenceContainerElementVisible, (visibility) => { )" :key="highlightedGroupId" ref="boxElements" - :data-highlight-index="highlightedGroupId" + :data-start="highlightedGroup.start" + :data-end="highlightedGroup.end" class="highlight-group" > <span - v-for="highlightedGroupLine in _range( + v-for="highlightedGroupLine in range( highlightedGroupsLineCount?.[highlightedGroupId] || 0 )" :key="highlightedGroupLine" @@ -669,11 +648,13 @@ watch(isSequenceContainerElementVisible, (visibility) => { `!border-${highlightedGroup.color}-600`, `bg-${highlightedGroup.color}-100` ], - highlightedGroupLine === 0 && 'rounded-l-xl border-l-2', - (highlightedGroupsLineCount && - highlightedGroupLine === - highlightedGroupsLineCount[highlightedGroupId]) || - (0 - 1 && 'rounded-r-xl border-r-2') + { + 'rounded-l-xl border-l-2': highlightedGroupLine === 0, + 'rounded-r-xl border-r-2': + highlightedGroupsLineCount && + highlightedGroupLine + 1 === + highlightedGroupsLineCount[highlightedGroupId] + } ]" ></span> </span> diff --git a/src/gql/codegen/gql.ts b/src/gql/codegen/gql.ts index 52351f8a355c3ef5b39c941d0ca909670d060b0f..6334799a58f48d3f289001cf0b01b4f1103fdc98 100644 --- a/src/gql/codegen/gql.ts +++ b/src/gql/codegen/gql.ts @@ -15,11 +15,11 @@ import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document- const documents = { "\n query speciesListQuery {\n manySpecies {\n id\n name\n shortname\n }\n }\n": types.SpeciesListQueryDocument, "\n query tableEntriesQuery {\n tableEntries {\n id\n modification {\n id\n name\n position\n result\n type\n target {\n id\n name\n type\n length\n genome {\n species {\n id\n name\n }\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n }\n }\n }\n }\n }\n guide {\n id\n name\n type\n subtype\n length\n seq\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n }\n }\n }\n }\n }\n }\n": types.TableEntriesQueryDocument, - "\n query speciesByIdQuery(\n $where: SpeciesWhere\n $modificationsWhere: ModificationWhere\n $targetsWhere: TargetWhere\n $guidesWhere: GuideWhere\n ) {\n manySpecies(where: $where) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: $modificationsWhere) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n": types.SpeciesByIdQueryDocument, - "\n query modificationByIdQuery(\n $where: ModificationWhere\n $guidesWhere: GuideWhere\n $interactionsWhere: InteractionWhere\n ) {\n modifications(where: $where) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n interactions(where: $interactionsWhere) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n": types.ModificationByIdQueryDocument, - "\n query guideByIdQuery($where: GuideWhere, $targetsWhere: TargetWhere) {\n guides(where: $where) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n }\n }\n": types.GuideByIdQueryDocument, - "\n query targetByIdQuery($where: TargetWhere, $guidesWhere: GuideWhere) {\n targets(where: $where) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n }\n": types.TargetByIdQueryDocument, - "\n query clusterByIdQuery($where: ClusterWhere) {\n clusters(where: $where) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n": types.ClusterByIdQueryDocument, + "\n query speciesByIdQuery($id: Int) {\n manySpecies(where: { id: $id }) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: { target: { genome: { species: { id: $id } } } }) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n": types.SpeciesByIdQueryDocument, + "\n query modificationByIdQuery($id: ID) {\n modifications(where: { id: $id }) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: { modifications_SOME: { id: $id } }) {\n id\n name\n type\n }\n interactions(where: { modification: { id: $id } }) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n": types.ModificationByIdQueryDocument, + "\n query guideByIdQuery($id: ID) {\n guides(where: { id: $id }) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n featuresConnection(where: { NOT: { node: { type: DuplexFragment } } }) {\n edges {\n start\n end\n node {\n id\n type\n }\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: { modifications_SOME: { guides_SOME: { id: $id } } }) {\n id\n name\n type\n }\n }\n": types.GuideByIdQueryDocument, + "\n query targetByIdQuery($id: ID) {\n targets(where: { id: $id }) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: { modifications_SOME: { target: { id: $id } } }) {\n id\n name\n type\n }\n }\n": types.TargetByIdQueryDocument, + "\n query clusterByIdQuery($id: ID) {\n clusters(where: { id: $id }) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n": types.ClusterByIdQueryDocument, }; /** @@ -47,23 +47,23 @@ export function graphql(source: "\n query tableEntriesQuery {\n tableEntries /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query speciesByIdQuery(\n $where: SpeciesWhere\n $modificationsWhere: ModificationWhere\n $targetsWhere: TargetWhere\n $guidesWhere: GuideWhere\n ) {\n manySpecies(where: $where) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: $modificationsWhere) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n"): (typeof documents)["\n query speciesByIdQuery(\n $where: SpeciesWhere\n $modificationsWhere: ModificationWhere\n $targetsWhere: TargetWhere\n $guidesWhere: GuideWhere\n ) {\n manySpecies(where: $where) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: $modificationsWhere) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n"]; +export function graphql(source: "\n query speciesByIdQuery($id: Int) {\n manySpecies(where: { id: $id }) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: { target: { genome: { species: { id: $id } } } }) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n"): (typeof documents)["\n query speciesByIdQuery($id: Int) {\n manySpecies(where: { id: $id }) {\n id\n name\n shortname\n genomes {\n sequences(where: { featureType: Chromosome }) {\n id\n name\n length\n featureType\n featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: { target: { genome: { species: { id: $id } } } }) {\n id\n name\n result\n type\n guidesAggregate {\n count\n }\n }\n targets(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n modificationsAggregate {\n count\n }\n }\n guides(where: { genome: { species: { id: $id } } }) {\n id\n name\n type\n subtype\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n node {\n id\n }\n }\n }\n modificationsAggregate {\n count\n }\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query modificationByIdQuery(\n $where: ModificationWhere\n $guidesWhere: GuideWhere\n $interactionsWhere: InteractionWhere\n ) {\n modifications(where: $where) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n interactions(where: $interactionsWhere) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n"): (typeof documents)["\n query modificationByIdQuery(\n $where: ModificationWhere\n $guidesWhere: GuideWhere\n $interactionsWhere: InteractionWhere\n ) {\n modifications(where: $where) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n interactions(where: $interactionsWhere) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n"]; +export function graphql(source: "\n query modificationByIdQuery($id: ID) {\n modifications(where: { id: $id }) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: { modifications_SOME: { id: $id } }) {\n id\n name\n type\n }\n interactions(where: { modification: { id: $id } }) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n"): (typeof documents)["\n query modificationByIdQuery($id: ID) {\n modifications(where: { id: $id }) {\n id\n name\n type\n result\n position\n target {\n id\n name\n type\n genome {\n species {\n id\n name\n }\n }\n }\n # chebi_id\n # so_id\n }\n guides(where: { modifications_SOME: { id: $id } }) {\n id\n name\n type\n }\n interactions(where: { modification: { id: $id } }) {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n guide {\n id\n name\n subtype\n type\n }\n target {\n id\n name\n type\n }\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query guideByIdQuery($where: GuideWhere, $targetsWhere: TargetWhere) {\n guides(where: $where) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n }\n }\n"): (typeof documents)["\n query guideByIdQuery($where: GuideWhere, $targetsWhere: TargetWhere) {\n guides(where: $where) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n }\n }\n"]; +export function graphql(source: "\n query guideByIdQuery($id: ID) {\n guides(where: { id: $id }) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n featuresConnection(where: { NOT: { node: { type: DuplexFragment } } }) {\n edges {\n start\n end\n node {\n id\n type\n }\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: { modifications_SOME: { guides_SOME: { id: $id } } }) {\n id\n name\n type\n }\n }\n"): (typeof documents)["\n query guideByIdQuery($id: ID) {\n guides(where: { id: $id }) {\n id\n name\n length\n subtype\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n id\n name\n length\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n featuresConnection(where: { NOT: { node: { type: DuplexFragment } } }) {\n edges {\n start\n end\n node {\n id\n type\n }\n }\n }\n modifications {\n id\n name\n target {\n id\n name\n type\n }\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n target {\n id\n name\n type\n }\n }\n cluster {\n id\n }\n clusterAggregate {\n count\n }\n isoform {\n guides {\n id\n name\n }\n guidesAggregate {\n count\n }\n }\n isoformAggregate {\n count\n }\n chebi_id\n so_id\n }\n targets(where: { modifications_SOME: { guides_SOME: { id: $id } } }) {\n id\n name\n type\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query targetByIdQuery($where: TargetWhere, $guidesWhere: GuideWhere) {\n targets(where: $where) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n }\n"): (typeof documents)["\n query targetByIdQuery($where: TargetWhere, $guidesWhere: GuideWhere) {\n targets(where: $where) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: $guidesWhere) {\n id\n name\n type\n }\n }\n"]; +export function graphql(source: "\n query targetByIdQuery($id: ID) {\n targets(where: { id: $id }) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: { modifications_SOME: { target: { id: $id } } }) {\n id\n name\n type\n }\n }\n"): (typeof documents)["\n query targetByIdQuery($id: ID) {\n targets(where: { id: $id }) {\n id\n name\n length\n type\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n strand\n node {\n name\n featureType\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n result\n type\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n primaryStrandsConnection: strandsConnection(\n where: { edge: { primary: true } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n secondaryStrandsConnection: strandsConnection(\n where: { edge: { primary: false } }\n ) {\n edges {\n start\n end\n primary\n node {\n seq\n parentConnection {\n edges {\n start\n end\n }\n }\n }\n }\n }\n index\n }\n modification {\n id\n name\n position\n result\n type\n }\n guide {\n id\n name\n subtype\n type\n }\n }\n chebi_id\n so_id\n url\n secondary_struct_file\n }\n guides(where: { modifications_SOME: { target: { id: $id } } }) {\n id\n name\n type\n }\n }\n"]; /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query clusterByIdQuery($where: ClusterWhere) {\n clusters(where: $where) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query clusterByIdQuery($where: ClusterWhere) {\n clusters(where: $where) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n"]; +export function graphql(source: "\n query clusterByIdQuery($id: ID) {\n clusters(where: { id: $id }) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query clusterByIdQuery($id: ID) {\n clusters(where: { id: $id }) {\n id\n guides {\n id\n name\n type\n subtype\n modificationsAggregate {\n count\n }\n parentConnection(where: { node: { featureType: Chromosome } }) {\n edges {\n start\n end\n }\n }\n }\n guidesAggregate {\n count\n }\n referenceGuide: guides(options: { limit: 1 }) {\n parent {\n id\n name\n }\n genome {\n species {\n name\n id\n }\n }\n }\n }\n }\n"]; export function graphql(source: string) { return (documents as any)[source] ?? {}; diff --git a/src/gql/codegen/graphql.ts b/src/gql/codegen/graphql.ts index f8d94779458ef79437850d18b9d0bd8838247caf..5a115848f6e32bd61893c96b62d85ea051fad3ee 100644 --- a/src/gql/codegen/graphql.ts +++ b/src/gql/codegen/graphql.ts @@ -6094,42 +6094,35 @@ export type TableEntriesQueryQueryVariables = Exact<{ [key: string]: never; }>; export type TableEntriesQueryQuery = { __typename?: 'Query', tableEntries: Array<{ __typename?: 'TableEntry', id: string, modification?: { __typename?: 'Modification', id: string, name: string, position: number, result: string, type?: ModifType | null, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType, length: number, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null, parentConnection: { __typename?: 'TargetParentConnection', edges: Array<{ __typename?: 'TargetParentRelationship', start: number, end: number, strand?: Strand | null, node: { __typename?: 'Chromosome', id: string, name?: string | null } | { __typename?: 'FeatureSequence', id: string, name?: string | null } | { __typename?: 'Guide', id: string, name?: string | null } | { __typename?: 'Target', id: string, name?: string | null } }> } } } | null, guide?: { __typename?: 'Guide', id: string, name?: string | null, type: SequenceType, subtype: GuideType, length: number, seq?: string | null, parentConnection: { __typename?: 'GuideParentConnection', edges: Array<{ __typename?: 'GuideParentRelationship', start: number, end: number, strand?: Strand | null, node: { __typename?: 'Chromosome', id: string, name?: string | null, length: number } | { __typename?: 'FeatureSequence', id: string, name?: string | null, length: number } | { __typename?: 'Guide', id: string, name?: string | null, length: number } | { __typename?: 'Target', id: string, name?: string | null, length: number } }> } } | null }> }; export type SpeciesByIdQueryQueryVariables = Exact<{ - where?: InputMaybe<SpeciesWhere>; - modificationsWhere?: InputMaybe<ModificationWhere>; - targetsWhere?: InputMaybe<TargetWhere>; - guidesWhere?: InputMaybe<GuideWhere>; + id?: InputMaybe<Scalars['Int']['input']>; }>; export type SpeciesByIdQueryQuery = { __typename?: 'Query', manySpecies: Array<{ __typename?: 'Species', id: number, name: string, shortname: string, genomes: Array<{ __typename?: 'Genome', sequences: Array<{ __typename?: 'Chromosome', id: string, name?: string | null, length: number, featureType: FeatureType, featuresConnection: { __typename?: 'SequenceFeaturesConnection', totalCount: number } } | { __typename?: 'FeatureSequence', id: string, name?: string | null, length: number, featureType: FeatureType, featuresConnection: { __typename?: 'SequenceFeaturesConnection', totalCount: number } } | { __typename?: 'Guide', id: string, name?: string | null, length: number, featureType: FeatureType, featuresConnection: { __typename?: 'SequenceFeaturesConnection', totalCount: number } } | { __typename?: 'Target', id: string, name?: string | null, length: number, featureType: FeatureType, featuresConnection: { __typename?: 'SequenceFeaturesConnection', totalCount: number } }> }> }>, modifications: Array<{ __typename?: 'Modification', id: string, name: string, result: string, type?: ModifType | null, guidesAggregate?: { __typename?: 'ModificationGuideGuidesAggregationSelection', count: number } | null }>, targets: Array<{ __typename?: 'Target', id: string, name?: string | null, type: SequenceType, modificationsAggregate?: { __typename?: 'TargetModificationModificationsAggregationSelection', count: number } | null }>, guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, type: SequenceType, subtype: GuideType, parentConnection: { __typename?: 'GuideParentConnection', edges: Array<{ __typename?: 'GuideParentRelationship', start: number, end: number, node: { __typename?: 'Chromosome', id: string } | { __typename?: 'FeatureSequence', id: string } | { __typename?: 'Guide', id: string } | { __typename?: 'Target', id: string } }> }, modificationsAggregate?: { __typename?: 'GuideModificationModificationsAggregationSelection', count: number } | null }> }; export type ModificationByIdQueryQueryVariables = Exact<{ - where?: InputMaybe<ModificationWhere>; - guidesWhere?: InputMaybe<GuideWhere>; - interactionsWhere?: InputMaybe<InteractionWhere>; + id?: InputMaybe<Scalars['ID']['input']>; }>; export type ModificationByIdQueryQuery = { __typename?: 'Query', modifications: Array<{ __typename?: 'Modification', id: string, name: string, type?: ModifType | null, result: string, position: number, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null } }>, guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, type: SequenceType }>, interactions: Array<{ __typename?: 'Interaction', duplexes: Array<{ __typename?: 'Duplex', index: number, primaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> }, secondaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> } }>, guide: { __typename?: 'Guide', id: string, name?: string | null, subtype: GuideType, type: SequenceType }, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType } }> }; export type GuideByIdQueryQueryVariables = Exact<{ - where?: InputMaybe<GuideWhere>; - targetsWhere?: InputMaybe<TargetWhere>; + id?: InputMaybe<Scalars['ID']['input']>; }>; -export type GuideByIdQueryQuery = { __typename?: 'Query', guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, length: number, subtype: GuideType, type: SequenceType, seq?: string | null, chebi_id?: string | null, so_id?: string | null, parentConnection: { __typename?: 'GuideParentConnection', edges: Array<{ __typename?: 'GuideParentRelationship', start: number, end: number, strand?: Strand | null, node: { __typename?: 'Chromosome', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'FeatureSequence', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'Guide', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'Target', id: string, name?: string | null, length: number, featureType: FeatureType } }> }, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null, modifications: Array<{ __typename?: 'Modification', id: string, name: string, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType } }>, modificationsAggregate?: { __typename?: 'GuideModificationModificationsAggregationSelection', count: number } | null, interactions: Array<{ __typename?: 'Interaction', duplexes: Array<{ __typename?: 'Duplex', index: number, primaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> }, secondaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> } }>, modification: { __typename?: 'Modification', id: string, name: string, position: number, result: string, type?: ModifType | null }, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType } }>, cluster?: { __typename?: 'Cluster', id: string } | null, clusterAggregate?: { __typename?: 'GuideClusterClusterAggregationSelection', count: number } | null, isoform?: { __typename?: 'Isoform', guides: Array<{ __typename?: 'Guide', id: string, name?: string | null }>, guidesAggregate?: { __typename?: 'IsoformGuideGuidesAggregationSelection', count: number } | null } | null, isoformAggregate?: { __typename?: 'GuideIsoformIsoformAggregationSelection', count: number } | null }>, targets: Array<{ __typename?: 'Target', id: string, name?: string | null, type: SequenceType }> }; +export type GuideByIdQueryQuery = { __typename?: 'Query', guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, length: number, subtype: GuideType, type: SequenceType, seq?: string | null, chebi_id?: string | null, so_id?: string | null, parentConnection: { __typename?: 'GuideParentConnection', edges: Array<{ __typename?: 'GuideParentRelationship', start: number, end: number, strand?: Strand | null, node: { __typename?: 'Chromosome', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'FeatureSequence', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'Guide', id: string, name?: string | null, length: number, featureType: FeatureType } | { __typename?: 'Target', id: string, name?: string | null, length: number, featureType: FeatureType } }> }, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null, featuresConnection: { __typename?: 'SequenceFeaturesConnection', edges: Array<{ __typename?: 'SequenceFeaturesRelationship', start: number, end: number, node: { __typename?: 'Chromosome', id: string, type: SequenceType } | { __typename?: 'FeatureSequence', id: string, type: SequenceType } | { __typename?: 'Guide', id: string, type: SequenceType } | { __typename?: 'Target', id: string, type: SequenceType } }> }, modifications: Array<{ __typename?: 'Modification', id: string, name: string, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType } }>, modificationsAggregate?: { __typename?: 'GuideModificationModificationsAggregationSelection', count: number } | null, interactions: Array<{ __typename?: 'Interaction', duplexes: Array<{ __typename?: 'Duplex', index: number, primaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> }, secondaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> } }>, modification: { __typename?: 'Modification', id: string, name: string, position: number, result: string, type?: ModifType | null }, target: { __typename?: 'Target', id: string, name?: string | null, type: SequenceType } }>, cluster?: { __typename?: 'Cluster', id: string } | null, clusterAggregate?: { __typename?: 'GuideClusterClusterAggregationSelection', count: number } | null, isoform?: { __typename?: 'Isoform', guides: Array<{ __typename?: 'Guide', id: string, name?: string | null }>, guidesAggregate?: { __typename?: 'IsoformGuideGuidesAggregationSelection', count: number } | null } | null, isoformAggregate?: { __typename?: 'GuideIsoformIsoformAggregationSelection', count: number } | null }>, targets: Array<{ __typename?: 'Target', id: string, name?: string | null, type: SequenceType }> }; export type TargetByIdQueryQueryVariables = Exact<{ - where?: InputMaybe<TargetWhere>; - guidesWhere?: InputMaybe<GuideWhere>; + id?: InputMaybe<Scalars['ID']['input']>; }>; export type TargetByIdQueryQuery = { __typename?: 'Query', targets: Array<{ __typename?: 'Target', id: string, name?: string | null, length: number, type: SequenceType, seq?: string | null, chebi_id?: string | null, so_id?: string | null, url?: string | null, secondary_struct_file?: string | null, parentConnection: { __typename?: 'TargetParentConnection', edges: Array<{ __typename?: 'TargetParentRelationship', start: number, end: number, strand?: Strand | null, node: { __typename?: 'Chromosome', name?: string | null, featureType: FeatureType } | { __typename?: 'FeatureSequence', name?: string | null, featureType: FeatureType } | { __typename?: 'Guide', name?: string | null, featureType: FeatureType } | { __typename?: 'Target', name?: string | null, featureType: FeatureType } }> }, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null, modifications: Array<{ __typename?: 'Modification', id: string, name: string, position: number, result: string, type?: ModifType | null }>, modificationsAggregate?: { __typename?: 'TargetModificationModificationsAggregationSelection', count: number } | null, interactions: Array<{ __typename?: 'Interaction', duplexes: Array<{ __typename?: 'Duplex', index: number, primaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> }, secondaryStrandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', seq?: string | null, parentConnection: { __typename?: 'FeatureSequenceParentConnection', edges: Array<{ __typename?: 'FeatureSequenceParentRelationship', start: number, end: number }> } } }> } }>, modification: { __typename?: 'Modification', id: string, name: string, position: number, result: string, type?: ModifType | null }, guide: { __typename?: 'Guide', id: string, name?: string | null, subtype: GuideType, type: SequenceType } }> }>, guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, type: SequenceType }> }; export type ClusterByIdQueryQueryVariables = Exact<{ - where?: InputMaybe<ClusterWhere>; + id?: InputMaybe<Scalars['ID']['input']>; }>; @@ -6138,8 +6131,8 @@ export type ClusterByIdQueryQuery = { __typename?: 'Query', clusters: Array<{ __ export const SpeciesListQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"speciesListQuery"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"manySpecies"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"shortname"}}]}}]}}]} as unknown as DocumentNode<SpeciesListQueryQuery, SpeciesListQueryQueryVariables>; export const TableEntriesQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"tableEntriesQuery"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"tableEntries"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"modification"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guide"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode<TableEntriesQueryQuery, TableEntriesQueryQueryVariables>; -export const SpeciesByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"speciesByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"SpeciesWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modificationsWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ModificationWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"targetsWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"GuideWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"manySpecies"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"shortname"}},{"kind":"Field","name":{"kind":"Name","value":"genomes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"sequences"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}},{"kind":"Field","name":{"kind":"Name","value":"featuresConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Guide"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modificationsWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"targetsWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}}]}}]} as unknown as DocumentNode<SpeciesByIdQueryQuery, SpeciesByIdQueryQueryVariables>; -export const ModificationByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"modificationByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ModificationWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"GuideWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"interactionsWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"InteractionWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"modifications"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"interactionsWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guide"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]}}]} as unknown as DocumentNode<ModificationByIdQueryQuery, ModificationByIdQueryQueryVariables>; -export const GuideByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"guideByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"GuideWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"targetsWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modification"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cluster"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"clusterAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"isoform"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"guides"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"isoformAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"chebi_id"}},{"kind":"Field","name":{"kind":"Name","value":"so_id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"targetsWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]} as unknown as DocumentNode<GuideByIdQueryQuery, GuideByIdQueryQueryVariables>; -export const TargetByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"targetByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"TargetWhere"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"GuideWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modification"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guide"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"chebi_id"}},{"kind":"Field","name":{"kind":"Name","value":"so_id"}},{"kind":"Field","name":{"kind":"Name","value":"url"}},{"kind":"Field","name":{"kind":"Name","value":"secondary_struct_file"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"guidesWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]} as unknown as DocumentNode<TargetByIdQueryQuery, TargetByIdQueryQueryVariables>; -export const ClusterByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"clusterByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"where"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ClusterWhere"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"clusters"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"Variable","name":{"kind":"Name","value":"where"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"referenceGuide"},"name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"IntValue","value":"1"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"parent"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode<ClusterByIdQueryQuery, ClusterByIdQueryQueryVariables>; \ No newline at end of file +export const SpeciesByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"speciesByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"manySpecies"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"shortname"}},{"kind":"Field","name":{"kind":"Name","value":"genomes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"sequences"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}},{"kind":"Field","name":{"kind":"Name","value":"featuresConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Guide"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"target"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"genome"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"species"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"genome"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"species"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"genome"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"species"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}}]}}]} as unknown as DocumentNode<SpeciesByIdQueryQuery, SpeciesByIdQueryQueryVariables>; +export const ModificationByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"modificationByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"modifications"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"modifications_SOME"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"modification"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guide"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]}}]} as unknown as DocumentNode<ModificationByIdQueryQuery, ModificationByIdQueryQueryVariables>; +export const GuideByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"guideByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"featuresConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"NOT"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"type"},"value":{"kind":"EnumValue","value":"DuplexFragment"}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modification"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"target"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"cluster"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"clusterAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"isoform"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"guides"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"isoformAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"chebi_id"}},{"kind":"Field","name":{"kind":"Name","value":"so_id"}}]}},{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"modifications_SOME"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"guides_SOME"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]} as unknown as DocumentNode<GuideByIdQueryQuery, GuideByIdQueryQueryVariables>; +export const TargetByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"targetByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"targets"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"length"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"strand"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"featureType"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"modifications"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"interactions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"duplexes"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","alias":{"kind":"Name","value":"primaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":true}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","alias":{"kind":"Name","value":"secondaryStrandsConnection"},"name":{"kind":"Name","value":"strandsConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"edge"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"primary"},"value":{"kind":"BooleanValue","value":false}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}},{"kind":"Field","name":{"kind":"Name","value":"primary"}},{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"seq"}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"index"}}]}},{"kind":"Field","name":{"kind":"Name","value":"modification"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"position"}},{"kind":"Field","name":{"kind":"Name","value":"result"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guide"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"chebi_id"}},{"kind":"Field","name":{"kind":"Name","value":"so_id"}},{"kind":"Field","name":{"kind":"Name","value":"url"}},{"kind":"Field","name":{"kind":"Name","value":"secondary_struct_file"}}]}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"modifications_SOME"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"target"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}}]}}]}}]} as unknown as DocumentNode<TargetByIdQueryQuery, TargetByIdQueryQueryVariables>; +export const ClusterByIdQueryDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"clusterByIdQuery"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"clusters"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"guides"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"subtype"}},{"kind":"Field","name":{"kind":"Name","value":"modificationsAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","name":{"kind":"Name","value":"parentConnection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"where"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"node"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"featureType"},"value":{"kind":"EnumValue","value":"Chromosome"}}]}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"start"}},{"kind":"Field","name":{"kind":"Name","value":"end"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"guidesAggregate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"count"}}]}},{"kind":"Field","alias":{"kind":"Name","value":"referenceGuide"},"name":{"kind":"Name","value":"guides"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"IntValue","value":"1"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"parent"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"genome"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"species"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode<ClusterByIdQueryQuery, ClusterByIdQueryQueryVariables>; \ No newline at end of file diff --git a/src/gql/queries.ts b/src/gql/queries.ts index c946404656d216215cff7f128f7794570ed65fd0..85e3c31d2386d2db7f7b418d4c421eaf6e24fdb1 100644 --- a/src/gql/queries.ts +++ b/src/gql/queries.ts @@ -81,13 +81,8 @@ export const tableEntriesQuery = graphql(/* GraphQL */ ` * Get data about a species by its ID */ export const speciesByIdQuery = graphql(/* GraphQL */ ` - query speciesByIdQuery( - $where: SpeciesWhere - $modificationsWhere: ModificationWhere - $targetsWhere: TargetWhere - $guidesWhere: GuideWhere - ) { - manySpecies(where: $where) { + query speciesByIdQuery($id: Int) { + manySpecies(where: { id: $id }) { id name shortname @@ -103,7 +98,7 @@ export const speciesByIdQuery = graphql(/* GraphQL */ ` } } } - modifications(where: $modificationsWhere) { + modifications(where: { target: { genome: { species: { id: $id } } } }) { id name result @@ -112,7 +107,7 @@ export const speciesByIdQuery = graphql(/* GraphQL */ ` count } } - targets(where: $targetsWhere) { + targets(where: { genome: { species: { id: $id } } }) { id name type @@ -120,7 +115,7 @@ export const speciesByIdQuery = graphql(/* GraphQL */ ` count } } - guides(where: $guidesWhere) { + guides(where: { genome: { species: { id: $id } } }) { id name type @@ -145,12 +140,8 @@ export const speciesByIdQuery = graphql(/* GraphQL */ ` * Get data about a modification by its ID */ export const modificationByIdQuery = graphql(/* GraphQL */ ` - query modificationByIdQuery( - $where: ModificationWhere - $guidesWhere: GuideWhere - $interactionsWhere: InteractionWhere - ) { - modifications(where: $where) { + query modificationByIdQuery($id: ID) { + modifications(where: { id: $id }) { id name type @@ -170,12 +161,12 @@ export const modificationByIdQuery = graphql(/* GraphQL */ ` # chebi_id # so_id } - guides(where: $guidesWhere) { + guides(where: { modifications_SOME: { id: $id } }) { id name type } - interactions(where: $interactionsWhere) { + interactions(where: { modification: { id: $id } }) { duplexes { primaryStrandsConnection: strandsConnection( where: { edge: { primary: true } } @@ -234,8 +225,8 @@ export const modificationByIdQuery = graphql(/* GraphQL */ ` * Get data about a guide by its ID */ export const guideByIdQuery = graphql(/* GraphQL */ ` - query guideByIdQuery($where: GuideWhere, $targetsWhere: TargetWhere) { - guides(where: $where) { + query guideByIdQuery($id: ID) { + guides(where: { id: $id }) { id name length @@ -261,6 +252,16 @@ export const guideByIdQuery = graphql(/* GraphQL */ ` name } } + featuresConnection(where: { NOT: { node: { type: DuplexFragment } } }) { + edges { + start + end + node { + id + type + } + } + } modifications { id name @@ -347,7 +348,7 @@ export const guideByIdQuery = graphql(/* GraphQL */ ` chebi_id so_id } - targets(where: $targetsWhere) { + targets(where: { modifications_SOME: { guides_SOME: { id: $id } } }) { id name type @@ -359,8 +360,8 @@ export const guideByIdQuery = graphql(/* GraphQL */ ` * Get data about a target by its ID */ export const targetByIdQuery = graphql(/* GraphQL */ ` - query targetByIdQuery($where: TargetWhere, $guidesWhere: GuideWhere) { - targets(where: $where) { + query targetByIdQuery($id: ID) { + targets(where: { id: $id }) { id name length @@ -452,7 +453,7 @@ export const targetByIdQuery = graphql(/* GraphQL */ ` url secondary_struct_file } - guides(where: $guidesWhere) { + guides(where: { modifications_SOME: { target: { id: $id } } }) { id name type @@ -464,8 +465,8 @@ export const targetByIdQuery = graphql(/* GraphQL */ ` * Get data about a cluster by its ID */ export const clusterByIdQuery = graphql(/* GraphQL */ ` - query clusterByIdQuery($where: ClusterWhere) { - clusters(where: $where) { + query clusterByIdQuery($id: ID) { + clusters(where: { id: $id }) { id guides { id diff --git a/src/typings/typeUtils.ts b/src/typings/typeUtils.ts index 0ee441470e769332edd5bc990484e889c66b391f..3829cb31292e5ce03623a12cd5f4c731654ce811 100644 --- a/src/typings/typeUtils.ts +++ b/src/typings/typeUtils.ts @@ -35,3 +35,8 @@ export type DeepDefined<T> = T extends object export const isDefined = <T>(value: T): value is Exclude<T, undefined> => typeof value !== 'undefined' + +export const isIn = <T extends object>( + value: any, + object: T +): value is keyof T => value in object diff --git a/src/utils/colors.ts b/src/utils/colors.ts index f6b36dd4a43857e9f47e43bbb5bc1e84974e3924..2346ae9bc784055156eabbc023b535ba23ac5c3a 100644 --- a/src/utils/colors.ts +++ b/src/utils/colors.ts @@ -1,17 +1,45 @@ /** * Types imports */ -import { ModifType } from '@/gql/codegen/graphql' +import { ModifType, SequenceType } from '@/gql/codegen/graphql' import type { TailwindDefaultColorNameModel, TailwindDefaultColorShadeModel } from '@/typings/styleTypes' -import type { RNANucleotideModel } from '@/typings/typeUtils' +import { isIn, type RNANucleotideModel } from '@/typings/typeUtils' /** * Assets imports */ import tailwindDefaultColors from 'tailwindcss/colors' +/** + * Constant associating nucleotide letter with corresponding Tailwind color. + */ +const NUCLEOTIDE_TAILWIND_COLORS = { + A: 'lime', + U: 'red', + C: 'orange', + G: 'yellow' +} satisfies { [k: string]: TailwindDefaultColorNameModel } + +/** + * Constant associating modification type with corresponding Tailwind color. + */ +const MODIFICATION_TAILWIND_COLORS = { + [ModifType.TwoPOMe]: 'sky', + [ModifType.Psi]: 'violet', + [ModifType.Other]: 'slate' +} satisfies { [k: string]: TailwindDefaultColorNameModel } + +/** + * Constant associating box type with corresponding Tailwind color. + */ +const BOX_TAILWIND_COLORS = { + [SequenceType.CBox]: 'yellow', + [SequenceType.DBox]: 'amber', + [SequenceType.Other]: 'slate' +} satisfies { [k: string]: TailwindDefaultColorNameModel } + /** * Gets the color code of a Tailwind color name with a given shade. * @param colorName The Tailwind color of which to get the color code. @@ -20,18 +48,19 @@ import tailwindDefaultColors from 'tailwindcss/colors' * color in the given shade, otherwise, the Tailwind color name without * modification (i.e. `colorName`). */ -export const getColorWithOptionalShade = ( +export function getColorWithOptionalShade( + colorName: TailwindDefaultColorNameModel +): TailwindDefaultColorNameModel +export function getColorWithOptionalShade( + colorName: TailwindDefaultColorNameModel, + shade: TailwindDefaultColorShadeModel +): string +export function getColorWithOptionalShade( colorName: TailwindDefaultColorNameModel, shade?: TailwindDefaultColorShadeModel -): TailwindDefaultColorNameModel | string => - shade ? tailwindDefaultColors[colorName][shade] : colorName - -const nucleotideTailwindColors = { - A: 'lime', - U: 'red', - C: 'orange', - G: 'yellow' -} satisfies { [k: string]: TailwindDefaultColorNameModel } +) { + return shade ? tailwindDefaultColors[colorName][shade] : colorName +} /** * Gets the color code or Tailwind color name corresponding to a nucleotide. @@ -40,20 +69,77 @@ const nucleotideTailwindColors = { * @returns If a shade is asked for, the HEX color code, otherwise, * the Tailwind color name. */ -export const getNucleotideColor = ( +export function getNucleotideColor( + nucleotide: RNANucleotideModel +): TailwindDefaultColorNameModel +export function getNucleotideColor( + nucleotide: RNANucleotideModel, + shade: TailwindDefaultColorShadeModel +): string +export function getNucleotideColor( nucleotide: RNANucleotideModel, shade?: TailwindDefaultColorShadeModel -): TailwindDefaultColorNameModel | string => - getColorWithOptionalShade(nucleotideTailwindColors[nucleotide], shade) +) { + return shade + ? getColorWithOptionalShade(NUCLEOTIDE_TAILWIND_COLORS[nucleotide], shade) + : getColorWithOptionalShade(NUCLEOTIDE_TAILWIND_COLORS[nucleotide]) +} -const modificationTailwindColors = { - [ModifType.TwoPOMe]: 'sky', - [ModifType.Psi]: 'violet', - [ModifType.Other]: 'slate' -} satisfies { [k: string]: TailwindDefaultColorNameModel } - -export const getModificationColor = ( +/** + * Gets the color code or Tailwind color name corresponding to a type of + * modification. + * @param modificationType The modification type of which to get the color. + * @param shade The shade in which to get the color. + * @returns If a shade is asked for, the HEX color code, otherwise, + * the Tailwind color name. + */ +export function getModificationColor( + modificationType: ModifType +): TailwindDefaultColorNameModel +export function getModificationColor( modificationType: ModifType, + shade: TailwindDefaultColorShadeModel +): string +export function getModificationColor( + modificationType: ModifType, + shade?: TailwindDefaultColorShadeModel +) { + return shade + ? getColorWithOptionalShade( + MODIFICATION_TAILWIND_COLORS[modificationType], + shade + ) + : getColorWithOptionalShade(MODIFICATION_TAILWIND_COLORS[modificationType]) +} + +/** + * Gets the color code or Tailwind color name corresponding to a type of box. + * @param boxType The box type of which to get the color. + * @param shade The shade in which to get the color. + * @returns If a shade is asked for, the HEX color code, otherwise, + * the Tailwind color name. + */ +export function getBoxColor( + boxType: SequenceType +): TailwindDefaultColorNameModel +export function getBoxColor( + boxType: SequenceType, + shade: TailwindDefaultColorShadeModel +): string +export function getBoxColor( + boxType: SequenceType, shade?: TailwindDefaultColorShadeModel -): TailwindDefaultColorNameModel | string => - getColorWithOptionalShade(modificationTailwindColors[modificationType], shade) +) { + return shade + ? getColorWithOptionalShade( + BOX_TAILWIND_COLORS[ + isIn(boxType, BOX_TAILWIND_COLORS) ? boxType : SequenceType.Other + ], + shade + ) + : getColorWithOptionalShade( + BOX_TAILWIND_COLORS[ + isIn(boxType, BOX_TAILWIND_COLORS) ? boxType : SequenceType.Other + ] + ) +} diff --git a/src/utils/numbers.ts b/src/utils/numbers.ts new file mode 100644 index 0000000000000000000000000000000000000000..d4e130922466b28db504f92641b628b3b6e10120 --- /dev/null +++ b/src/utils/numbers.ts @@ -0,0 +1,34 @@ +/** + * Creates an array of numbers (positive and/or negative) progressing from start + * up to, but not including, end. If provided, a custom step can be used. + * @param start The start of the range. + * @param end The end of the range. + * @param step The value to increment or decrement by. + * @returns + */ +export function range(start: number, end: number, step?: number): number[] +/** + * Creates an array of numbers (positive and/or negative) progressing from 0 + * up to, but not including, end. + * @param end The end of the range. + * @returns + */ +export function range(end: number): number[] +export function range( + startOrEnd: number, + optionalEnd?: number, + optionalStep?: number +): number[] { + const start = optionalEnd ? startOrEnd : 0 + const end = optionalEnd || startOrEnd + const rangeLength = end - start + const rangeDirection = rangeLength / Math.abs(rangeLength) + const step = optionalStep || rangeDirection + if (rangeDirection * step < 0) { + return [] + } + return Array.from( + { length: Math.floor((end - start) / step) }, + (_, i) => start + i * step + ) +} diff --git a/src/views/ClusterView.vue b/src/views/ClusterView.vue index a4c3df60bc48b55308614713b2f499bea7eddbbc..9105aee3b7561501b85de13daaebb6f11d660a0f 100644 --- a/src/views/ClusterView.vue +++ b/src/views/ClusterView.vue @@ -49,7 +49,7 @@ const props = defineProps<{ const gqlQuery = useQuery({ query: clusterByIdQuery, variables: toRef(() => ({ - where: { id: props.clusterId } + id: props.clusterId })) }) diff --git a/src/views/GuideView.vue b/src/views/GuideView.vue index 7d65bc94c11ac3ea723e75eb215777f0d0792c57..5287bf469d3b5bfd49fcd7e6140e7d3add89c48b 100644 --- a/src/views/GuideView.vue +++ b/src/views/GuideView.vue @@ -47,9 +47,10 @@ import { } from '@/utils/textFormatting' import { guideByIdQuery } from '@/gql/queries' import { isDefined } from '@/typings/typeUtils' +import { getBoxColor } from '@/utils/colors' /** - * Utility constant to get the icon component corresponding to each strand value + * Utility constant to get the icon component corresponding to each strand value. */ const STRAND_CODE_TO_ICON_COMPONENT = { [Strand.Negative]: IconFa6SolidCircleMinus, @@ -59,42 +60,35 @@ const STRAND_CODE_TO_ICON_COMPONENT = { } /** - * Component props + * Component props. */ const props = defineProps<{ - // The ID of the guide to display + /** The ID of the guide to display. */ guideId: string }>() /** - * Reactive urql GraphQL query object, updated with query state & response + * Reactive urql GraphQL query object, updated with query state & response. */ const gqlQuery = useQuery({ query: guideByIdQuery, variables: toRef(() => ({ - where: { id: props.guideId }, - targetsWhere: { - modifications_SOME: { - guides_SOME: { - id: props.guideId - } - } - } + id: props.guideId })) }) /** - * The guide to display, reactively updated when fetched + * The guide to display, reactively updated when fetched. */ const guide = computed(() => gqlQuery.data.value?.guides[0]) /** - * The targets with which the guide is interacting + * The targets with which the guide is interacting. */ const linkedTargets = computed(() => gqlQuery.data.value?.targets) /** - * Title of the page, reactively updated when data is fetched + * Title of the page, reactively updated when data is fetched. */ const pageTitle = computed(() => guide.value ? `${guide.value.name} • Guide | SnoBoard` : 'Guide | SnoBoard' @@ -102,19 +96,6 @@ const pageTitle = computed(() => // Bind actual page title to computed one useTitle(pageTitle) -// const convertedInteractionList = computed<InteractionCardModel[] | undefined>( -// () => -// guide.value?.interactions.map((interaction) => ({ -// ...interaction, -// guide: { -// id: guide.value?.id, -// name: guide.value?.name || undefined, -// seq: guide.value?.seq, -// subtype: guide.value?.subtype -// } -// })) -// ) - /** * The list of the interaction, formatted for display. If some mandatory fields * for display (mainly sequences) are missing, the corresponding interaction @@ -181,7 +162,7 @@ const interactionList = computed<InteractionCardModel[] | undefined>(() => { }) /** - * Positions of the modifications, on the guide instead of on the target + * Positions of the modifications, relative to the guide sequence. */ const onGuideModificationPositions = computed(() => interactionList.value?.reduce( @@ -214,10 +195,23 @@ const onGuideModificationPositions = computed(() => ) /** - * Sequence chunks to highlight on the sequence of the guide + * Sequence chunks to highlight on the sequence of the guide. */ -const sequenceChunks = computed(() => - onGuideModificationPositions.value +const sequenceChunks = computed(() => ({ + ...guide.value?.featuresConnection.edges.reduce<{ + [groupId: string]: highlightGroupModel + }>( + (boxes, featureEdge) => ({ + ...boxes, + [featureEdge.node.id]: { + start: Math.max(featureEdge.start, 1), + end: Math.min(featureEdge.end, guide.value?.length || featureEdge.end), + color: getBoxColor(featureEdge.node.type) + } + }), + {} + ), + ...(onGuideModificationPositions.value ? Object.entries(onGuideModificationPositions.value).reduce( ( sequenceChunks: { [groupId: string]: highlightGroupModel }, @@ -232,25 +226,26 @@ const sequenceChunks = computed(() => }), {} ) - : undefined -) + : undefined) +})) /** - * Guide subtype, formatted for display + * Guide subtype, formatted for display. */ const formattedGuideSubtype = computed(() => formatGuideSubtype(guide.value?.subtype || GuideType.Other) ) /** - * Species name, formatted for display + * Species name, formatted for display. */ const formattedSpeciesName = computed(() => formatSpeciesName(guide.value?.genome?.species?.name || '') ) /** - * Number of modifications linked to the guide, equals to `'...'` if not fetched yet + * Number of modifications linked to the guide, + * equals to `'...'` if not fetched yet. */ const linkedModificationsCount = computed(() => guide.value?.modificationsAggregate == null @@ -273,7 +268,7 @@ const linkedModificationsFieldName = computed( ) /** - * Number of targets linked to the guide, equals to `'...'` if not fetched yet + * Number of targets linked to the guide, equals to `'...'` if not fetched yet. */ const linkedTargetsCount = computed(() => linkedTargets.value === undefined ? '...' : linkedTargets.value.length @@ -327,7 +322,7 @@ const isoformsFieldName = computed( /** * Link between the guide and its parent chromosome, also containing the - * chromosome object + * chromosome object. */ const guideParentChromosomeConnection = computed(() => guide.value?.parentConnection.edges.find( @@ -336,14 +331,14 @@ const guideParentChromosomeConnection = computed(() => ) /** - * The guide parent chromosome + * The guide parent chromosome. */ const guideParentChromosome = computed( () => guideParentChromosomeConnection.value?.node ) /** - * The location of the guide on its parent chromosome + * The location of the guide on its parent chromosome. */ const guideParentChromosomeLocation = computed( () => @@ -352,7 +347,7 @@ const guideParentChromosomeLocation = computed( ) /** - * The various ontology IDs, cleaned from their prefix + * The various ontology IDs, cleaned from their prefix. */ const ontologyIdsCleaned = computed(() => ({ SO: guide.value?.so_id?.match(/SO_(\d+)/)?.[1], @@ -360,7 +355,7 @@ const ontologyIdsCleaned = computed(() => ({ })) /** - * The various ontology links + * The various ontology links. */ const ontologyLinks = computed(() => ({ SO: `http://www.sequenceontology.org/browser/current_release/term/SO:${ontologyIdsCleaned.value.SO}`, @@ -660,14 +655,14 @@ const ontologyLinks = computed(() => ({ selection-field-path2="modification.id" selection-field-legend2="Modifications" > - <template #radioEntryLabel1="{ currentValue }"> + <template #item-label-1="{ currentValue }"> <strong>{{ currentValue.target.name }}</strong> <em class="italic text-slate-400"> {{ ` - ${currentValue.target.type}` }} </em> </template> - <template #radioEntryLabel2="{ currentValue }"> + <template #item-label-2="{ currentValue }"> <strong>{{ currentValue.modification.name }}</strong> <em class="italic text-slate-400"> {{ ' - ' }} @@ -676,6 +671,11 @@ const ontologyLinks = computed(() => ({ /> </em> </template> + + <template #selection-incomplete-message> + Please select a target & modification on the left to visualise the + interaction. + </template> </InteractionBoard> </TabPanel> </TabView> diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 746d8cb02bd5a247665ce70b6afc6ff00d0f74fa..75b81a14f4be1be23b29d9d4a5242f0c674383a8 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -89,9 +89,9 @@ const selectedSpeciesId = ref<number>() :values="speciesList" data-field-path="id" label-field-path="name" - @change="(speciesId) => (selectedSpeciesId = speciesId)" + @change="(speciesId: number) => (selectedSpeciesId = speciesId)" > - <template #entryLabel="{ currentValue }"> + <template #item-label="{ currentValue }"> <span class="italic"> {{ formatSpeciesName(currentValue.name) }} </span> diff --git a/src/views/ModificationView.vue b/src/views/ModificationView.vue index 851d864da6a49cc3d7b4c86833618b0c81a84dc2..d8e6936ffc4b9f48a3244a1d2b11774ee15301dc 100644 --- a/src/views/ModificationView.vue +++ b/src/views/ModificationView.vue @@ -49,17 +49,7 @@ const props = defineProps<{ const gqlQuery = useQuery({ query: modificationByIdQuery, variables: toRef(() => ({ - where: { id: props.modificationId }, - guidesWhere: { - modifications_SOME: { - id: props.modificationId - } - }, - interactionsWhere: { - modification: { - id: props.modificationId - } - } + id: props.modificationId })) }) @@ -382,12 +372,16 @@ const linkedGuidesFieldName = computed( selection-field-path1="guide.id" selection-field-legend1="Guides" > - <template #radioEntryLabel1="{ currentValue }"> + <template #item-label-1="{ currentValue }"> <strong>{{ currentValue.guide.name }}</strong> <em class="italic text-slate-400"> {{ ` - ${currentValue.guide.type}` }} </em> </template> + + <template #selection-incomplete-message> + Please select a guide on the left to visualise the interaction. + </template> </InteractionBoard> </TabPanel> </TabView> diff --git a/src/views/StatisticsView.vue b/src/views/StatisticsView.vue index dcbbe7abccda6c479f9d9c57f59fc2018334bbcb..701976aa2ac6e18b0155d37fee88ff643648fbf6 100644 --- a/src/views/StatisticsView.vue +++ b/src/views/StatisticsView.vue @@ -57,30 +57,7 @@ const props = defineProps<{ const gqlQuery = useQuery({ query: speciesByIdQuery, variables: toRef(() => ({ - where: { id: props.speciesId }, - modificationsWhere: { - target: { - genome: { - species: { - id: props.speciesId - } - } - } - }, - targetsWhere: { - genome: { - species: { - id: props.speciesId - } - } - }, - guidesWhere: { - genome: { - species: { - id: props.speciesId - } - } - } + id: props.speciesId })) }) diff --git a/src/views/TargetView.vue b/src/views/TargetView.vue index 8fdb0961326f4e9098da4b77f681c3dee6a7d076..a0d5414f730822791462697430f862a7a4293f6f 100644 --- a/src/views/TargetView.vue +++ b/src/views/TargetView.vue @@ -70,14 +70,7 @@ const props = defineProps<{ const gqlQuery = useQuery({ query: targetByIdQuery, variables: toRef(() => ({ - where: { id: props.targetId }, - guidesWhere: { - modifications_SOME: { - target: { - id: props.targetId - } - } - } + id: props.targetId })) }) @@ -610,7 +603,7 @@ const ontologyLinks = computed(() => ({ selection-field-path2="guide.id" selection-field-legend2="Guides" > - <template #radioEntryLabel1="{ currentValue }"> + <template #item-label-1="{ currentValue }"> <strong>{{ currentValue.modification.name }}</strong> <em class="italic text-slate-400"> {{ ' - ' }} @@ -620,12 +613,17 @@ const ontologyLinks = computed(() => ({ </em> </template> - <template #radioEntryLabel2="{ currentValue }"> + <template #item-label-2="{ currentValue }"> <strong>{{ currentValue.guide.name }}</strong> <em class="italic text-slate-400"> {{ ` - ${currentValue.guide.type}` }} </em> </template> + + <template #selection-incomplete-message> + Please select a modification & guide on the left to visualise the + interaction. + </template> </InteractionBoard> </TabPanel>