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>&larr;</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>