
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
variant
Advanced tools
pip install variant
variant motif subcommand can fetch motif sequence around given site. Usage: variant motif [OPTIONS]
Fetch genomic motif.
╭─ Options ─────────────────────────────────────────────────────────────────╮
│ --input -i TEXT Input position file. │
│ --output -o TEXT Output annotation file. │
│ * --fasta -f TEXT reference fasta file. [required] │
│ --npad -n TEXT Number of padding base to call motif. If you │
│ want to set different left and right pads, │
│ use comma to separate them. (eg. 2,3) │
│ --padding -p TEXT Padding base to use for motif. 'N' by default │
│ but can be set to any single letter │
│ --with-header -H With header line in input file. │
│ --columns -c TEXT Sets columns for site info. │
│ (Chrom,Pos,Strand) │
│ [default: 1,2,3] │
│ --to-upper -u Convert motif to upper case. │
│ --wrap-site -w Wrap motif site. │
│ --help -h Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────╯
demo:
I would like to get the 2 bases before the given sites, and 3 bases after the given sites, meanwhile, wrap the give sites with bracket. Moreover, the strand information should be taken into account.
use -n 2,3 -w
variant effect subcommand can infer the effect of a mutation Usage: variant effect [OPTIONS]
Annotation genomic variant effect.
╭─ Options ────────────────────────────────────────────────────────────────╮
│ --input -i TEXT Input position file. │
│ --output -o TEXT Output annotation file │
│ --reference -r TEXT reference species │
│ --reference-gtf TEXT Customized reference gtf file. │
│ --reference-transcript TEXT Customized reference transcript │
│ fasta file. │
│ --reference-protein TEXT Customized reference protein fasta │
│ file. │
│ --release -e INTEGER ensembl release │
│ --strandness -s Use strand infomation or not? │
│ --pU-mode -u Make rRNA, tRNA, snoRNA into top │
│ priority. │
│ --npad -n INTEGER Number of padding base to call │
│ motif. │
│ --all-effects -a Output all effects. │
│ --with-header -H With header line in input file. │
│ --columns -c TEXT Sets columns for site info. │
│ (Chrom,Pos,Strand,Ref,Alt) │
│ [default: 1,2,3,4,5] │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────╯
demo:
Store the following table in file (sites.tsv).
| Chrom | Position | Strand | Ref | Alt |
|---|---|---|---|---|
| chr1 | 230703034 | - | C | T |
| chr12 | 69353439 | + | A | T |
| chr14 | 23645352 | + | G | T |
| chr2 | 215361150 | - | A | T |
| chr2 | 84906537 | + | C | T |
| chr22 | 39319077 | - | T | A |
| chr22 | 39319095 | - | T | A |
| chr22 | 39319098 | - | T | A |
Run command:
variant-effect -i sites.tsv -H -r human -e 108 -t RNA -H -c 1,2,3
-i specify the input file-H means the file is with header line, and the first row will be skipped;-r use the specific genome, default is human-e specify the Ensembl release version-c means only use some of the columns in the input file. default will use the first 5 columns.You will have this output
| Chrom | Position | Strand | Ref | Alt | mut_type | gene_type | gene_name | gene_pos | transcript_name | transcript_pos | transcript_motif | coding_pos | codon_ref | aa_pos | aa_ref | distance2splice |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| chr1 | 230703034 | - | C | T | ThreePrimeUTR | protein_coding | ENSG00000135744(AGT) | 42543 | ENST00000680041(AGT-208) | 1753 | TGTGTCACCCCCAGTCTCCCA | None | None | None | None | 295 |
| chr12 | 69353439 | + | A | T | ThreePrimeUTR | protein_coding | ENSG00000090382(LYZ) | 5059 | ENST00000261267(LYZ-201) | 695 | TAGAACTAATACTGGTGAAAA | None | None | None | None | 286 |
| chr14 | 23645352 | + | G | T | ThreePrimeUTR | protein_coding | ENSG00000100867(DHRS2) | 15238 | ENST00000344777(DHRS2-202) | 1391 | CTGCCATTCTGCCAGACTAGC | None | None | None | None | 210 |
| chr2 | 215361150 | - | A | T | ThreePrimeUTR | protein_coding | ENSG00000115414(FN1) | 74924 | ENST00000323926(FN1-201) | 8012 | GGCCCGCAATACTGTAGGAAC | None | None | None | None | 476 |
| chr2 | 84906537 | + | C | T | ThreePrimeUTR | protein_coding | ENSG00000034510(TMSB10) | 882 | ENST00000233143(TMSB10-201) | 327 | CCTGGGCACTCCGCGCCGATG | None | None | None | None | 148 |
| chr22 | 39319077 | - | T | A | Intronic | protein_coding | ENSG00000100316(RPL3) | 1313 | ENST00000216146(RPL3-201) | None | None | None | None | None | None | None |
| chr22 | 39319095 | - | T | A | Intronic | protein_coding | ENSG00000100316(RPL3) | 1295 | ENST00000216146(RPL3-201) | None | None | None | None | None | None | None |
| chr22 | 39319098 | - | T | A | Intronic | protein_coding | ENSG00000100316(RPL3) | 1292 | ENST00000216146(RPL3-201) | None | None | None | None | None | None | None |
variant coordinate subcommand can mapping chrom name and positions between different reference coordinate Usage: variant coordinate [OPTIONS]
Fetch genomic motif.
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ --input -i TEXT Input position file. │
│ --output -o TEXT Output annotation file. │
│ --reference-mapping -m TEXT Mapping file for chrom name, first column is │
│ chrom in the input, second column is chrom │
│ in the reference db (sep by tab) │
│ --buildin-mapping -M TEXT Build-in mapping for chrom name: U2E (UCSC │
│ to Ensembl), E2U (Ensembl to UCSC) │
│ --with-header -H With header line in input file. │
│ --columns -c TEXT Sets columns for site info. (Chrom) │
│ [default: 1] │
│ --help -h Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────╯
FAQs
annotate variant
We found that variant demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.