← LeaderboardThe Skill Leaderboard
lintind
Skill file skills/genomics/lintind/SKILL.md in bioMate-AI/biomate-bioconductor-kb. Read the publisher’s upstream source.
Description awaits a fresh source check.
Try your first task
bioconductor-lintind
Start a fresh conversation. Replace the highlighted placeholders.
Use bioconductor-lintind to prepare an indel-scar profiling script for [sequencing reads], [matching reference FASTA and cut-site table], and [scar-consensus method, core limit, and output paths], ending with cell scar identities and an indel-distribution plot.
Required inputs
- [sequencing reads]
- [matching reference FASTA and cut-site table]
- [scar-consensus method, core limit, and output paths]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: bioconductor-lintinddescription: When we combine gene-editing technology and sequencing technology, we need to reconstruct a lineage tree from alleles generated and calculate the similarity between each pair of groups. FindIndel() and IndelForm() function will help you align each read to reference sequence and generate scar form strings respectively. IndelIdents() function will help you to define a scar form for each cell or read. IndelPlot() function will help you to visualize the distribution of deletion and insertion. TagProwhen_to_use: Use when: When we combine gene-editing technology and sequencing technology, we need to reconstruct a lineage tree from alleles ge; find indels and generate array using FindIndel, IndelForm; IndelIdents using IndelIdents; IndelPlot using IndelPlot; TagProcess using TagProcess; BuildTree using BuildTree. Not for: Requires R ≥ 4.0 and Bioconductor ≥ 3.16user-invocable: falseLinTInd
Workflows
Standard Workflow
Reconstruct a lineage tree and visualize indel patterns from CRISPR-edited amplicon sequencing data.
library(LinTInd)
# Define paths to package raw data
data_path <- paste0(system.file("extdata", package = 'LinTInd'), "/CB_UMI")
fafile <- paste0(system.file("extdata", package = 'LinTInd'), "/V3.fasta")
cutsite_path <- paste0(system.file("extdata", package = 'LinTInd'), "/V3.cutSites")
celltype_path <- paste0(system.file("extdata", package = 'LinTInd'), "/celltype.tsv")
# Read input files
data <- read.table(data_path, sep="\t", header=TRUE)
ref <- ReadFasta(fafile)
cutsite <- read.table(cutsite_path, col.names = c("indx", "start", "end"))
celltype <- read.table(celltype_path, header=TRUE, stringsAsFactors=FALSE)
# Align reads and identify indels
scarinfo <- FindIndel(data=data, scarfull=ref, scar=cutsite, indel.coverage="All", type="test", cln=1)
# Generate array-form scar strings
scarinfo <- IndelForm(scarinfo, cln=1)
# Define final scar form for each cell
cellsinfo <- IndelIdents(scarinfo, method.use="umi.num", cln=1)
# Visualize indel distribution
IndelPlot(cellsinfo = cellsinfo)
# Extract indels and calculate group similarity
tag <- TagProcess(cellsinfo$info, Cells=celltype)
tag_dist <- TagDist(tag, method = "Jaccard")
# Reconstruct and plot the lineage tree
treeinfo <- BuildTree(tag)
plotinfo <- PlotTree(treeinfo = treeinfo, data.extract = "TRUE", annotation = "TRUE")
plotinfo$p
Note on inputs/outputs:
- Input: A data frame of sequencing reads (with optional cell barcodes and UMIs), a reference FASTA file, a cut site position table, and an optional cell type annotation table.
- Output: A reconstructed lineage tree object and visualization plots of indels and tree structure.
When to Use
- CRISPR Lineage Tracing: Reconstructing lineage trees from alleles generated by CRISPR-mediated gene editing using
BuildTree(). - Indel Identification: Aligning sequencing reads to a reference sequence and identifying insertions/deletions using
FindIndel(). - Scar Profiling: Generating standardized array-form scar strings for each read or single cell using
IndelForm()andIndelIdents(). - Group Similarity Analysis: Quantifying similarity (e.g., Jaccard, Spearman, or hypergeometric test) between cell groups/clusters using
TagDist().
When NOT to Use
- General Single-Cell Analysis: For standard single-cell RNA-seq clustering or cell-type annotation, use
SeuratorscranbecauseLinTIndis specialized for lineage tracing via CRISPR-induced scars. - Phylogenetics from SNPs: For standard phylogenetic tree reconstruction from natural genomic mutations (e.g., SNPs) without CRISPR-induced scars, use
apebecauseLinTIndrelies on specific cut-site and indel array structures.
Data Requirements
- Sequence Data: A data frame containing a column of read sequences (
Read.Seq), with optional columns for cell barcodes (Cell.BC) and UMIs (UMI). - Reference Sequence: A FASTA file containing the reference sequence, loaded using
ReadFasta(). - Cut Sites: A table containing cut site indices, start positions, and end positions.
- Cell Type Annotation (optional): A tab-separated file mapping cell barcodes (
Cell.BC) to cell types (Cell.type).
Key Parameters
- indel.coverage ("All"): Parameter in
FindIndel()specifying which indels to cover. - type ("test"): Parameter in
FindIndel()specifying the run type. - cln (1): Number of cores/threads to use in
FindIndel(),IndelForm(), andIndelIdents(). - method.use ("reads.num"): Method to define the scar form per cell in
IndelIdents(); options include "reads.num", "umi.num", and "consensus". - method ("Jaccard"): Similarity calculation method in
TagDist(); options include "Jaccard", "P", and "spearman". - data.extract ("TRUE"): Logical parameter in
PlotTree()to extract data. - annotation ("TRUE"): Logical parameter in
PlotTree()to annotate the tree plot.
Best Practices
- Verify that the reference sequence and cut sites match the experimental design before running
FindIndel(). - Use
IndelForm()immediately afterFindIndel()to convert identified indels into standardized array-form strings. - For single-cell data with UMIs, use
method.use="umi.num"inIndelIdents()to define cell scar forms based on UMI consensus rather than raw read counts. - Provide cell type annotations to
TagProcess()to enable group-level similarity calculations withTagDist().
Common Pitfalls
- Missing Sequence Columns: Missing or mismatched column names in the input sequence data frame (e.g., missing
Read.Seq). Fix: Ensure the sequence column is present and correctly named before runningFindIndel(). - Missing Annotations in TagDist: Running
TagDist()without cell type annotations. Fix: Pass a valid cell type data frame toTagProcess()via theCellsparameter before computing distances. - High Computational Time: High computational time when processing large datasets. Fix: Increase the
clnparameter inFindIndel(),IndelForm(), andIndelIdents()to utilize multiple cores.
Alternatives
- Seurat for general single-cell analysis and clustering.
- scater for single-cell quality control and visualization.
- scran for single-cell expression data normalization and variance modeling.
- ape for general phylogenetic tree reconstruction and analysis.
Citations
- Wang L. (2021). LinTInd: Reconstruction of lineage trees from CRISPR-mediated gene editing. R package.