diff --git a/README.md b/README.md index b6445721d7b8f9222c0d2b958566eb25def6bae2..cc713158fe8e91a8049a9c8715fb4b68e96ce8fb 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,9 @@ npm run dev ### Test ```sh -# unit testing (Vitest) : +# unit testing (Vitest): npm run test:unit -# end-to-end testing (Cypress) : +# end-to-end testing (Cypress): npm run test:e2e ``` @@ -111,7 +111,7 @@ import ... from '@/assets/path/to/asset' ### Tailwind classes with Vue -Vue has several ways to define classes, including an [object syntax](https://vuejs.org/guide/essentials/class-and-style.html#binding-to-objects) and an [array syntax](https://vuejs.org/guide/essentials/class-and-style.html#binding-to-arrays). To deal with Tailwind's classes in a consistent way, the following guidelines should be observed : +Vue has several ways to define classes, including an [object syntax](https://vuejs.org/guide/essentials/class-and-style.html#binding-to-objects) and an [array syntax](https://vuejs.org/guide/essentials/class-and-style.html#binding-to-arrays). To deal with Tailwind's classes in a consistent way, the following guidelines should be observed: - Write predetermined classes inline: ```ts class="class-1 class-2..." diff --git a/package-lock.json b/package-lock.json index 63d740aab6b1a963108bf2c57d98492d875cf0f9..eb2405660d9b86f3e1b789bea4de007b052dd9ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "@graphql-codegen/client-preset": "^4.1.0", "@graphql-eslint/eslint-plugin": "^3.20.1", "@iconify-json/carbon": "^1.1.18", + "@iconify-json/emojione": "^1.1.10", "@iconify-json/fa": "^1.1.4", "@iconify-json/fa-regular": "^1.1.5", "@iconify-json/fa6-regular": "^1.1.13", @@ -3962,6 +3963,15 @@ "@iconify/types": "*" } }, + "node_modules/@iconify-json/emojione": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@iconify-json/emojione/-/emojione-1.1.10.tgz", + "integrity": "sha512-gzv5tbkbyoJFArWmmtGDmhvKjCcpa9a+qEFbW35IlKHc9LBL5lluRccP+BckCoYcoi5qi1VCPxzz6QL/UYW5VQ==", + "dev": true, + "dependencies": { + "@iconify/types": "*" + } + }, "node_modules/@iconify-json/fa": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@iconify-json/fa/-/fa-1.1.4.tgz", diff --git a/package.json b/package.json index c2c49c10ed7b48b6f60e7ad975d565ea61762d89..0139b28b9c24886526b71662db92792815a167ff 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@graphql-codegen/client-preset": "^4.1.0", "@graphql-eslint/eslint-plugin": "^3.20.1", "@iconify-json/carbon": "^1.1.18", + "@iconify-json/emojione": "^1.1.10", "@iconify-json/fa": "^1.1.4", "@iconify-json/fa-regular": "^1.1.5", "@iconify-json/fa6-regular": "^1.1.13", diff --git a/src/components/BaseLinkListCard.vue b/src/components/BaseLinkListCard.vue index 9ab290e07a743898a04784cc98e1ea81c29890c2..7cf161c8dfd6425f8caf3f21f9dff505db34dc8a 100644 --- a/src/components/BaseLinkListCard.vue +++ b/src/components/BaseLinkListCard.vue @@ -32,6 +32,7 @@ const props = defineProps<{ listTitle?: string linkItems: LinkListItemModel[] color?: TailwindBaseColorModel + outlined?: boolean disabled?: boolean hoverEvent?: boolean }>() @@ -70,9 +71,11 @@ defineExpose({ scrollToListTop }) <template> <Card - :class="['!border', `!border-${color || 'slate'}-600`]" + :class=" + outlined ? ['!border', `!border-${color || 'slate'}-600`] : '!shadow-none' + " :pt="{ - body: { class: '!pr-0' }, + body: { class: outlined ? '!pr-0' : '!p-0' }, content: { class: '!py-0' } diff --git a/src/gql/codegen/gql.ts b/src/gql/codegen/gql.ts index c4bbfe4d1e65b79026683ade1450386a58284f69..251b4d7db639ea81279304cb2f128e10733c92a5 100644 --- a/src/gql/codegen/gql.ts +++ b/src/gql/codegen/gql.ts @@ -17,8 +17,9 @@ const documents = { "\n query tableEntriesQuery {\n tableEntries {\n id\n modification {\n id\n name\n position\n result\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 featuresConnection(where: { node: { featureType: Guide } }) {\n totalCount\n }\n }\n }\n }\n modifications(where: $modificationsWhere) {\n id\n name\n result\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 }\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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 chebi_id\n so_id\n }\n targets(where: $targetsWhere) {\n id\n name\n type\n }\n }\n": types.GuideByIdQueryDocument, + "\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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 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 ... on Chromosome {\n name\n }\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n strandsConnection {\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 }\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, }; /** @@ -54,11 +55,15 @@ export function graphql(source: "\n query modificationByIdQuery(\n $where: M /** * 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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 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($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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 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 ... on Chromosome {\n id\n name\n length\n }\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 strandsConnection {\n edges {\n start\n end\n primary\n node {\n id\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 chebi_id\n so_id\n }\n targets(where: $targetsWhere) {\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 ... on Chromosome {\n name\n }\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n strandsConnection {\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 }\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 ... on Chromosome {\n name\n }\n }\n }\n }\n seq\n genome {\n species {\n id\n name\n }\n }\n modifications {\n id\n name\n position\n }\n modificationsAggregate {\n count\n }\n interactions {\n duplexes {\n strandsConnection {\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 }\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"]; +/** + * 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: string) { return (documents as any)[source] ?? {}; diff --git a/src/gql/codegen/graphql.ts b/src/gql/codegen/graphql.ts index d0cc0dd7b5e8ceab84e4f812116e57124631c576..11bbc0d31d14615c6fd8436cb7b7a8587782aa6a 100644 --- a/src/gql/codegen/graphql.ts +++ b/src/gql/codegen/graphql.ts @@ -5870,7 +5870,7 @@ export type GuideByIdQueryQueryVariables = Exact<{ }>; -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 } | { __typename?: 'FeatureSequence' } | { __typename?: 'Guide' } | { __typename?: 'Target' } }> }, 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, strandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', id: string, 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 } }> }>, 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 } | { __typename?: 'FeatureSequence' } | { __typename?: 'Guide' } | { __typename?: 'Target' } }> }, 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, strandsConnection: { __typename?: 'DuplexStrandsConnection', edges: Array<{ __typename?: 'DuplexStrandsRelationship', start: number, end: number, primary?: boolean | null, node: { __typename?: 'FeatureSequence', id: string, 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 }>, targets: Array<{ __typename?: 'Target', id: string, name?: string | null, type: SequenceType }> }; export type TargetByIdQueryQueryVariables = Exact<{ where?: InputMaybe<TargetWhere>; @@ -5880,10 +5880,18 @@ export type TargetByIdQueryQueryVariables = Exact<{ 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 } | { __typename?: 'FeatureSequence' } | { __typename?: 'Guide' } | { __typename?: 'Target' } }> }, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', id: number, name: string } | null } | null, modifications: Array<{ __typename?: 'Modification', id: string, name: string, position: number }>, modificationsAggregate?: { __typename?: 'TargetModificationModificationsAggregationSelection', count: number } | null, interactions: Array<{ __typename?: 'Interaction', duplexes: Array<{ __typename?: 'Duplex', index: number, strandsConnection: { __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 } }> }>, guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, type: SequenceType }> }; +export type ClusterByIdQueryQueryVariables = Exact<{ + where?: InputMaybe<ClusterWhere>; +}>; + + +export type ClusterByIdQueryQuery = { __typename?: 'Query', clusters: Array<{ __typename?: 'Cluster', id: string, guides: Array<{ __typename?: 'Guide', id: string, name?: string | null, type: SequenceType, subtype: GuideType, modificationsAggregate?: { __typename?: 'GuideModificationModificationsAggregationSelection', count: number } | null, parentConnection: { __typename?: 'GuideParentConnection', edges: Array<{ __typename?: 'GuideParentRelationship', start: number, end: number }> } }>, guidesAggregate?: { __typename?: 'ClusterGuideGuidesAggregationSelection', count: number } | null, referenceGuide: Array<{ __typename?: 'Guide', parent?: { __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, genome?: { __typename?: 'Genome', species?: { __typename?: 'Species', name: string, id: number } | null } | null }> }> }; + 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":"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":"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":"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","name":{"kind":"Name","value":"strandsConnection"},"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":"id"}},{"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":"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":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","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":"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","name":{"kind":"Name","value":"strandsConnection"},"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":"id"}},{"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":"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":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Chromosome"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}},{"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":"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","name":{"kind":"Name","value":"strandsConnection"},"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":"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>; \ No newline at end of file +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":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","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":"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","name":{"kind":"Name","value":"strandsConnection"},"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":"id"}},{"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":"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":"InlineFragment","typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Chromosome"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}}]}}]}}]}},{"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":"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","name":{"kind":"Name","value":"strandsConnection"},"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":"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 diff --git a/src/gql/queries.ts b/src/gql/queries.ts index 7fa9bd911c70db8adc8dd13d1ccb41988107c8cf..7efed875cde7f2b120c2a3caa8fee9f7f64fc41a 100644 --- a/src/gql/queries.ts +++ b/src/gql/queries.ts @@ -285,6 +285,12 @@ export const guideByIdQuery = graphql(/* GraphQL */ ` type } } + cluster { + id + } + clusterAggregate { + count + } chebi_id so_id } @@ -378,3 +384,44 @@ 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) { + id + guides { + id + name + type + subtype + modificationsAggregate { + count + } + parentConnection(where: { node: { featureType: Chromosome } }) { + edges { + start + end + } + } + } + guidesAggregate { + count + } + referenceGuide: guides(options: { limit: 1 }) { + parent { + id + name + } + genome { + species { + name + id + } + } + } + } + } +`) diff --git a/src/router/index.ts b/src/router/index.ts index 3fd97b04f4ead989ba4a10d6d059921695858fdd..9e13883c7c6672685e1c2aa7b07961dd80963060 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -87,6 +87,17 @@ const router = createRouter({ router.replace({ name: 'lost' }) } } + }, + { + path: 'cluster/:id', + name: 'clusterDetails', + component: () => import('@/views/ClusterView.vue'), + props: (to) => ({ clusterId: to.params.id }), + beforeEnter: async (to) => { + if (typeof to.params.id !== 'string') { + router.replace({ name: 'lost' }) + } + } } ] }, diff --git a/src/views/ClusterView.vue b/src/views/ClusterView.vue new file mode 100644 index 0000000000000000000000000000000000000000..688924d055f1a05322e6ab7849d389175a266650 --- /dev/null +++ b/src/views/ClusterView.vue @@ -0,0 +1,274 @@ +<script setup lang="ts"> +/** + * Vue imports + */ +import { computed } from 'vue' +/** + * Components imports + */ +import MainLayout from '@/layouts/MainLayout.vue' +import BaseLinkListCard from '@/components/BaseLinkListCard.vue' +import Divider from 'primevue/divider' +import Panel from 'primevue/panel' +import IconFa6SolidCircleInfo from '~icons/fa6-solid/circle-info' +import IconFa6SolidArrowUpRightFromSquare from '~icons/fa6-solid/arrow-up-right-from-square' +import IconFa6SolidList from '~icons/fa6-solid/list' +import IconEmojioneThinkingFace from '~icons/emojione/thinking-face' +/** + * Other 3rd-party imports + */ +import { omit as _omit, minBy as _minBy, maxBy as _maxBy } from 'lodash-es' +import { useQuery } from '@urql/vue' +import { useTitle } from '@vueuse/core' +/** + * Types imports + */ + +import type { LinkListItemModel } from '@/components/BaseLinkListCard.vue' +/** + * Utils imports + */ +import { + formatGuideSubtype, + formatSpeciesName, + separateThousands +} from '@/utils/format' +import { clusterByIdQuery } from '@/gql/queries' + +/** + * Component props + */ +const props = defineProps<{ + // The ID of the cluster to display + clusterId: string +}>() + +/** + * Reactive urql GraphQL query object, updated with query state & response + */ +const gqlQuery = useQuery({ + query: clusterByIdQuery, + variables: { + where: { id: props.clusterId } + } +}) + +/** + * The cluster to display, reactively updated when fetched + */ +const cluster = computed(() => + _omit( + { + ...gqlQuery.data.value?.clusters[0], + ...gqlQuery.data.value?.clusters[0].referenceGuide[0] + }, + ['referenceGuide'] + ) +) + +/** + * Title of the page, reactively updated when data is fetched + */ +const pageTitle = computed(() => + cluster.value + ? `${cluster.value.id} • Cluster | SnoBoard` + : 'Cluster | SnoBoard' +) +// Bind actual page title to computed one +useTitle(pageTitle) + +/** + * Species name, formatted for display + */ +const formattedSpeciesName = computed(() => + formatSpeciesName(cluster.value?.genome?.species?.name || '') +) + +/** + * First guide in the cluster + */ +const firstGuide = computed(() => + _minBy(cluster.value.guides, 'parentConnection.edges[0].start') +) + +/** + * First guide in the cluster + */ +const lastGuide = computed(() => + _maxBy(cluster.value.guides, 'parentConnection.edges[0].end') +) + +/** + * Guides of the cluster, formatted for use in a link list + */ +const linkListGuides = computed<LinkListItemModel[]>( + () => + cluster.value.guides?.map((guide) => ({ + id: guide.id, + link: { + name: 'guideDetails', + params: { id: guide.id } + }, + title: guide.name || guide.id, + subtitle: guide.id, + details: [ + guide.type, + formatGuideSubtype(guide.subtype), + `${guide.modificationsAggregate?.count} guided modification${ + (guide.modificationsAggregate?.count || 0) > 1 ? 's' : '' + }` + ] + })) || [] +) +</script> + +<template> + <MainLayout> + <h1 class="mb-4 text-center text-3xl">Cluster</h1> + <h2 class="mb-8 text-center text-xl italic text-slate-400"> + {{ cluster.id }} + </h2> + + <Panel + toggleable + class="mx-auto mb-8 max-w-6xl text-center 2xl:max-w-7xl" + :pt="{ + header: { class: '!bg-slate-50' }, + toggler: { class: 'hover:!bg-slate-100' } + }" + > + <template #header="scope"> + <icon-fa6-solid-circle-info :class="scope.class" /> + <span :id="scope.id" class="p-panel-title">Informations</span> + </template> + <div class="gap grid grid-cols-3"> + <div + class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" + > + Chromosome: + <em class="text-lg font-bold italic text-slate-700"> + {{ cluster.parent?.name }} + </em> + </div> + <div + class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" + > + Guide count in cluster: + <em class="text-lg font-bold italic text-slate-700"> + {{ cluster?.guidesAggregate?.count }} + </em> + </div> + <div class="italic text-slate-400"> + Species: + <RouterLink + v-if="cluster?.genome?.species?.name" + :to="{ + name: 'statistics', + params: { id: cluster.genome.species.id } + }" + class="text-lg font-bold italic text-slate-700 underline transition-all duration-300 ease-in-out hover:text-indigo-600" + > + {{ formattedSpeciesName }} + <sup> + <icon-fa6-solid-arrow-up-right-from-square class="inline" /> + </sup> + </RouterLink> + </div> + + <Divider class="col-span-3" /> + + <div class="col-span-3 grid grid-cols-2"> + <div + class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" + > + <span v-tooltip.top="firstGuide?.name || '...'">First guide</span> + location: + <span v-if="firstGuide" class="not-italic text-slate-700"> + <em + v-tooltip.top=" + `Start position: ${separateThousands( + firstGuide.parentConnection.edges[0].start + )}` + " + class="text-lg font-bold not-italic" + > + {{ + separateThousands(firstGuide.parentConnection.edges[0].start) + }} + </em> + – + <em + v-tooltip.top=" + `End position: ${separateThousands( + firstGuide.parentConnection.edges[0].end + )}` + " + class="text-lg font-bold not-italic" + > + {{ + separateThousands(firstGuide.parentConnection.edges[0].end) + }} + </em> + </span> + <em v-else>?</em> + </div> + <div class="italic text-slate-400"> + <span v-tooltip.top="lastGuide?.name || '...'">Last guide</span> + location: + <span v-if="lastGuide" class="not-italic text-slate-700"> + <em + v-tooltip.top=" + `Start position: ${separateThousands( + lastGuide.parentConnection.edges[0].start + )}` + " + class="text-lg font-bold not-italic" + > + {{ + separateThousands(lastGuide.parentConnection.edges[0].start) + }} + </em> + – + <em + v-tooltip.top=" + `End position: ${separateThousands( + lastGuide.parentConnection.edges[0].end + )}` + " + class="text-lg font-bold not-italic" + > + {{ separateThousands(lastGuide.parentConnection.edges[0].end) }} + </em> + </span> + <em v-else>?</em> + </div> + </div> + + <Divider class="col-span-3" /> + + <div class="col-span-3 text-left italic text-slate-400"> + Reference genome: + <em class="text-lg font-bold not-italic text-slate-700">??</em> + </div> + </div> + </Panel> + + <Panel toggleable class="mx-auto max-w-6xl"> + <template #header="scope"> + <icon-fa6-solid-list :class="scope.class" /> + <span :id="scope.id" class="p-panel-title" + >Guides in cluster ({{ + cluster.guidesAggregate?.count || '...' + }})</span + > + </template> + <BaseLinkListCard :link-items="linkListGuides"> + <template #disabled> + No guide in this cluster ? Hmmm... + <icon-emojione-thinking-face /></template + ></BaseLinkListCard> + </Panel> + </MainLayout> +</template> + +<style></style> diff --git a/src/views/GuideView.vue b/src/views/GuideView.vue index ed5869558cf30ea70a565449232ffd39ede5d17b..acd6adcce68617f79de803630b41b8ec145b6649 100644 --- a/src/views/GuideView.vue +++ b/src/views/GuideView.vue @@ -350,13 +350,13 @@ const ontologyLinks = computed(() => ({ <div class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" > - Guide type : + Guide type: <em class="text-lg font-bold italic text-slate-700" >{{ formattedGuideSubtype }} {{ guide?.type }}</em > </div> <div class="italic text-slate-400"> - Species : + Species: <RouterLink v-if="guide?.genome?.species?.name" :to="{ @@ -374,8 +374,16 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-2" /> - <div class="col-span-2 text-left italic text-slate-400"> - Location : + <div + :class="[ + guide?.cluster + ? 'relative after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200' + : 'col-span-2', + + 'text-left italic text-slate-400' + ]" + > + Location: <span v-if="guideParentChromosome && guideParentChromosomeLocation" class="not-italic text-slate-700" @@ -408,7 +416,7 @@ const ontologyLinks = computed(() => ({ > {{ separateThousands(guideParentChromosomeLocation.end) }} </em> - (strand : + (strand: <em class="inline-block font-bold not-italic" ><span class="flex items-center gap-2"> {{ guideParentChromosomeLocation.strand }} @@ -425,17 +433,34 @@ const ontologyLinks = computed(() => ({ <em v-else>?</em> </div> + <div v-if="guide?.cluster" class="italic text-slate-400"> + Cluster: + <RouterLink + :key="guide.cluster.id" + :to="{ + name: 'clusterDetails', + params: { id: guide.cluster.id } + }" + > + <Chip + class="ml-2 border-2 !border-slate-600 !bg-slate-100 !font-semibold !text-slate-600" + > + {{ guide.cluster.id }} + </Chip> + </RouterLink> + </div> + <Divider class="col-span-2" /> <div class="col-span-2 text-left italic text-slate-400"> - Reference genome : + Reference genome: <em class="text-lg font-bold not-italic text-slate-700">??</em> </div> <Divider class="col-span-2" /> <div class="col-span-2 text-left italic text-slate-400"> - Guided modifications ({{ linkedModificationsCount }}) : + Guided modifications ({{ linkedModificationsCount }}): <RouterLink v-for="modification in guide?.modifications" :key="modification.id" @@ -455,7 +480,7 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-2" /> <div class="col-span-2 text-left italic text-slate-400"> - Targets ({{ linkedTargetsCount }}) : + Targets ({{ linkedTargetsCount }}): <RouterLink v-for="target in linkedTargets" :key="target.id" @@ -476,7 +501,7 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-2" /> <div class="col-span-2 text-left italic text-slate-400"> - Ontologies : + Ontologies: <a :href="ontologyLinks.SO"> <Chip class="ml-2 border-2 !border-red-600 !bg-red-100 !pl-0 !font-semibold !text-red-600" diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index bb5ae7f7304913cd2134ded45429cbe4ff904358..b6d88936c02f89b00f2ff06f90516162a8831bda 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -72,7 +72,7 @@ const selectedSpeciesId = ref<number>() </template> <template #hint> - <span>Examples : ...</span> + <span>Examples: ...</span> </template> <template #button> diff --git a/src/views/ModificationView.vue b/src/views/ModificationView.vue index 9d447de4cc78feb3fa28f6e05c978b57e2b0a06c..92f92f4fc303d0769dbef0404c51657798d03331 100644 --- a/src/views/ModificationView.vue +++ b/src/views/ModificationView.vue @@ -228,7 +228,7 @@ const linkedGuidesCount = computed(() => <div class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" > - Modification type : + Modification type: <em class="text-lg font-bold not-italic text-slate-700"> <FormattedModificationType v-if="modification?.type" @@ -250,7 +250,7 @@ const linkedGuidesCount = computed(() => <div class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" > - Target : + Target: <RouterLink :to="{ name: 'targetDetails', @@ -266,7 +266,7 @@ const linkedGuidesCount = computed(() => </RouterLink> </div> <div class="italic text-slate-400"> - Species : + Species: <RouterLink v-if="modification?.target.genome?.species?.name" :to="{ @@ -294,7 +294,7 @@ const linkedGuidesCount = computed(() => <Divider class="col-span-3" /> <div class="col-span-3 text-left italic text-slate-400"> - Reference genome : + Reference genome: <em class="text-lg font-bold not-italic text-slate-700">??</em> </div> @@ -302,7 +302,7 @@ const linkedGuidesCount = computed(() => <div class="col-span-3 flex gap-2 text-left italic text-slate-400"> <span class="whitespace-nowrap" - >Guides ({{ linkedGuidesCount }}) :</span + >Guides ({{ linkedGuidesCount }}):</span > <div class="flex flex-wrap justify-between gap-x-2 gap-y-1"> <RouterLink @@ -324,7 +324,7 @@ const linkedGuidesCount = computed(() => <!-- <Divider class="col-span-3" /> <div class="col-span-3 text-left italic text-slate-400"> - References : + References: <a :href="referenceLinks.SO"> <Chip class="ml-2 border-2 !border-red-600 !bg-red-100 !pl-0 !font-semibold !text-red-600" diff --git a/src/views/StatisticsView.vue b/src/views/StatisticsView.vue index e7f74eb0b4441b751471813892097c739087612d..34206a0a45546f07374f326321570fad25b03427 100644 --- a/src/views/StatisticsView.vue +++ b/src/views/StatisticsView.vue @@ -446,6 +446,7 @@ const coverages = computed(() => ({ <BaseLinkListCard ref="linkListCardComponent" :color="colorByField[selectedField]" + outlined :link-items="itemsByField[selectedField] || []" :disabled="selectedField === 'none'" > @@ -491,7 +492,7 @@ const coverages = computed(() => ({ }" > <div class="mb-8 text-center italic text-slate-400"> - Length : + Length: <em class="text-lg font-bold not-italic text-slate-700">{{ chromosome.length }}</em> @@ -500,6 +501,7 @@ const coverages = computed(() => ({ list-title="Guides list" :link-items="guidesByKaryotypeChromosome[chromosome.id]" color="sky" + outlined :hover-event="true" @enter-item="highlightObject" @leave-item="unhighlightObject" diff --git a/src/views/TargetView.vue b/src/views/TargetView.vue index db8b063f640879f95cf871d1247b72738279e2ce..4a76c44191ad327847a580ca32c6ba77e6534421 100644 --- a/src/views/TargetView.vue +++ b/src/views/TargetView.vue @@ -303,7 +303,7 @@ const ontologyLinks = computed(() => ({ <div class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" > - Target type : + Target type: <em class="text-lg font-bold not-italic text-slate-700">{{ target?.type }}</em> @@ -311,13 +311,13 @@ const ontologyLinks = computed(() => ({ <div class="relative italic text-slate-400 after:absolute after:-right-[1px] after:h-full after:rounded after:border-l-[1px] after:border-slate-200" > - Target length : + Target length: <em class="text-lg font-bold not-italic text-slate-700">{{ target?.length }}</em> </div> <div class="italic text-slate-400"> - Species : + Species: <RouterLink v-if="target?.genome?.species?.name" :to="{ @@ -336,7 +336,7 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-3" /> <div class="col-span-3 text-left italic text-slate-400"> - Location : + Location: <span v-if="targetParentChromosome && targetParentChromosomeLocation" class="not-italic text-slate-700" @@ -369,7 +369,7 @@ const ontologyLinks = computed(() => ({ > {{ separateThousands(targetParentChromosomeLocation.end) }} </em> - (strand : + (strand: <em class="inline-block font-bold not-italic" ><span class="flex items-center gap-2"> {{ targetParentChromosomeLocation.strand }} @@ -389,7 +389,7 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-3" /> <div class="col-span-3 text-left italic text-slate-400"> - Reference genome : + Reference genome: <em class="text-lg font-bold not-italic text-slate-700">??</em> </div> @@ -397,7 +397,7 @@ const ontologyLinks = computed(() => ({ <div class="col-span-3 flex gap-2 text-left italic text-slate-400"> <span class="whitespace-nowrap" - >Modifications ({{ linkedModificationsCount }}) :</span + >Modifications ({{ linkedModificationsCount }}):</span > <div class="flex flex-wrap justify-between gap-x-2 gap-y-1"> <RouterLink @@ -422,7 +422,7 @@ const ontologyLinks = computed(() => ({ <div class="col-span-3 flex gap-2 text-left italic text-slate-400"> <span class="whitespace-nowrap" - >Guides ({{ linkedGuidesCount }}) :</span + >Guides ({{ linkedGuidesCount }}):</span > <div class="flex flex-wrap justify-between gap-x-2 gap-y-1"> <RouterLink @@ -444,7 +444,7 @@ const ontologyLinks = computed(() => ({ <Divider class="col-span-3" /> <div class="col-span-3 text-left italic text-slate-400"> - Ontologies : + Ontologies: <a :href="ontologyLinks.SO"> <Chip class="ml-2 border-2 !border-red-600 !bg-red-100 !pl-0 !font-semibold !text-red-600"