Linear Viewer
Example
example
example
example
Pos: 0
| 0
G
| 0
.
| 1
C
| 1
.
| 2
A
| 2
.
| 3
T
| 3
.
| 4
G
| 4
.
| 5
C
| 5
.
Code
"use client";
import { useState } from "react";
import {
Annotation,
AriadneSelection,
CircularViewer,
LinearViewer,
} from "@nitro-bio/sequence-viewers";
export const InternalLinearViewer = () => {
const [selection, setSelection] = useState<AriadneSelection | null>({
start: 14,
end: 20,
direction: "forward",
});
const annotations: Annotation[] = [
{
text: "example",
type: "CDS",
direction: "forward",
start: 10,
end: 200,
className:
"mt-2 pl-1 dark:text-amber-800 dark:bg-amber-400 bg-amber-600 text-white",
},
{
text: "example",
type: "foo",
direction: "reverse",
start: 300,
end: 20,
className:
"mt-2 pl-12 dark:text-rose-800 dark:bg-rose-400 bg-rose-600 text-white",
},
];
const classNameBySequenceIdx = (sequenceIdx: number) => {
if (sequenceIdx === 0) {
return "dark:text-brand-300 text-brand-600";
} else {
return "dark:text-blue-300 text-blue-600";
}
};
return (
<LinearViewer
containerClassName="text-brand-400 "
sequences={["ATGC".repeat(100), "ATGC".repeat(20)]}
annotations={annotations}
selection={selection}
setSelection={setSelection}
selectionClassName={() => "bg-blue-500 fill-blue-500 text-blue-500"}
sequenceClassName={classNameBySequenceIdx}
/>
);
};
Installation
This component requires the @nitro-bio/sequence-viewers
package. Install it via:
npm i @nitro-bio/sequence-viewers@latest
And either add it to your tailwind config
const colors = require("tailwindcss/colors");
export default {
darkMode: "class",
content: [
...
"./node_modules/@nitro-bio/sequence-viewers/dist/nitro-sequence-viewers.es.js",
],
theme: {
...
extend: {
...
colors: {
...
brand: colors.emerald,
noir: colors.zinc,
},
},
},
plugins: [],
};
or import the css file
import "path/to/node_modules/@nitro-bio/sequence-viewers/dist/nitro-sequence-viewers.css";