← LeaderboardThe Skill Leaderboard

syntenet

Skill file skills/genomics/syntenet/SKILL.md in bioMate-AI/biomate-bioconductor-kb. Read the publisher’s upstream source.

Description awaits a fresh source check.

Published by bioMate-AI ↗bioMate-AI/biomate-bioconductor-kb

Try your first task

bioconductor-syntenet

Start a fresh conversation. Replace the highlighted placeholders.

Use bioconductor-syntenet to Plan the preparation of input data for a synteny network analysis using [proteome_sequences], [gene_annotations], and [similarity_search_results]. Ensure the plan addresses R  4.2 and Bioconductor  3.16 requirements, verifies that only primary transcripts are used to avoid isoform duplication, and describes how to standardize sequence headers and gene IDs using process_input().

Required inputs

  • [proteome_sequences]
  • [gene_annotations]
  • [similarity_search_results]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: bioconductor-syntenetdescription: syntenet can be used to infer synteny networks from whole-genome protein sequences and analyze them. Anchor pairs are detected with the MCScanX algorithm, which was ported to this package with the Rcpp framework for R and C++ integration. Anchor pairs from synteny analyses are treated as an undirected unweighted graph (i.e., a synteny network), and users can perform: i. network clustering; ii. phylogenomic profiling (by identifying which species contain which clusters) and; iii. microsynteny-baswhen_to_use: Use when: Inference and Analysis of Synteny Networks. Not for: Requires R ≥ 4.2 and Bioconductor ≥ 3.16user-invocable: false

syntenet

Workflows

Standard Workflow

Infer a global synteny network from multiple proteomes, cluster it, perform phylogenomic profiling, and reconstruct a microsynteny-based phylogeny.

library(syntenet)
data(proteomes)
data(annotation)
data(blast_list)

# Check and process input data
check_input(proteomes, annotation)
pdata <- process_input(proteomes, annotation)

# Infer synteny network
net <- infer_syntenet(blast_list, pdata$annotation)

# Cluster network and perform phylogenomic profiling
data(network)
clusters <- cluster_network(network)
profiles <- phylogenomic_profile(clusters)

Input: Proteome sequences as a list of AAStringSet objects and gene annotations as a GRangesList. Output: A synteny network edge list and a matrix of phylogenomic profiles.

Pairwise Synteny Detection

Detect and parse intra- and inter-species syntenic blocks and anchor pairs.

library(syntenet)
data(proteomes)
data(annotation)
data(blast_list)

# Preprocess input data
pdata <- process_input(proteomes, annotation)

# Detect synteny and infer anchor pairs
net <- infer_syntenet(blast_list, pdata$annotation)

Input: Preprocessed proteome sequences and gene annotations along with BLAST/DIAMOND tabular similarity search results. Output: A 2-column data frame representing anchor pairs.

When to Use

  • Inference and Analysis of Synteny Networks: Use when you need to detect conserved gene content and order across multiple genomes from protein sequences and gene annotations.
  • Network Clustering: Use cluster_network() to group synteny networks into clusters using algorithms like Infomap.
  • Phylogenomic Profiling: Use phylogenomic_profile() to identify which species contain which synteny clusters, revealing highly conserved or taxon-specific gene groups.
  • Visualizing Synteny Profiles: Use plot_profiles() to generate highly customizable heatmaps of phylogenomic profiles.

When NOT to Use

  • Overlapping Communities (e.g., Tandem Arrays): Do not use the default Infomap algorithm in cluster_network() if genes must belong to multiple clusters; use an alternative like the clique percolation algorithm instead.
  • Simple Sequence Similarity Searches: Do not use infer_syntenet() for simple sequence alignment or similarity searches without genomic coordinate context; use run_diamond() or run_last() directly.

Data Requirements

  • Sequence Data (seq): A list of AAStringSet objects containing translated primary transcripts for each species. Can be imported from FASTA files using fasta2AAStringSetlist().
  • Annotation Data (annotation): A GRangesList or CompressedGRangesList containing gene coordinates. Can be imported from GFF/GTF files using gff2GRangesList().
  • Similarity Search Results: A list of data frames containing tabular outputs of all-vs-all searches (e.g., from DIAMOND or BLASTp), which can be loaded using read_diamond() or read_last().

Key Parameters

  • gene_field ("gene_id"): The column name in the GRanges metadata containing gene IDs, used in check_input() and process_input().
  • clust_function (stats::hclust): The clustering function used to group columns in plot_profiles().
  • clust_params (list(method = "ward.D")): Additional parameters passed to the column clustering function in plot_profiles().
  • dist_function (stats::dist): The distance function used to compute the distance matrix in plot_profiles().
  • dist_params (list(method = "euclidean")): Additional parameters passed to the distance function in plot_profiles().
  • cluster_species (NULL): A character vector defining the custom display order of species in plot_profiles().

Best Practices

  • Run check_input() before processing to verify that sequence names match gene annotations and that isoform sequences are not duplicated.
  • Standardize sequence headers and add unique species identifiers to gene and chromosome names using process_input().
  • Check if DIAMOND is installed and available in your system PATH using diamond_is_installed() before calling run_diamond().
  • Pass a named character vector matching a species tree to the cluster_species parameter in plot_profiles() to visualize synteny patterns in a phylogenetic context.

Common Pitfalls

  • Isoform Duplication: Inputting multiple isoforms of the same gene will fail input checks; ensure only primary transcripts are included in the input sequences.
  • Mismatched Gene IDs: If gene IDs are stored in a non-default column in the GFF/GTF files, you must specify the correct column name using the gene_field parameter in check_input() and process_input().

Alternatives

  • MCScanX: The original C++ command-line tool for synteny detection (syntenet implements a native version of this algorithm in R via Rcpp).
  • igraph: For alternative network clustering methods that can be passed directly to cluster_network().
  • CliquePercolation: For clustering algorithms that allow community overlap.

Citations

  • Zhao and Schranz (2017). Network-based approach to analyze synteny. Scientific Reports.
  • Wang et al. (2012). MCScanX: a toolkit for detection and evolutionary analysis of gene synteny and collinearity. Nucleic Acids Research.

References