Crate sevensense_analysis

Crate sevensense_analysis 

Source
Expand description

§sevensense-analysis

Analysis bounded context for 7sense bioacoustic analysis platform.

This crate provides clustering, motif detection, sequence analysis, and anomaly detection capabilities for bioacoustic embeddings.

§Features

  • Clustering: HDBSCAN and K-means clustering for grouping similar vocalizations
  • Prototype Extraction: Identify representative embeddings (exemplars) for each cluster
  • Motif Detection: Discover recurring patterns in vocalization sequences
  • Sequence Analysis: Markov chain analysis, transition matrices, entropy computation
  • Anomaly Detection: Identify unusual or novel vocalizations

§Architecture

This crate follows Domain-Driven Design (DDD) with hexagonal architecture:

  • domain/ - Core domain entities, value objects, and repository traits
  • application/ - Application services orchestrating domain operations
  • infrastructure/ - Concrete implementations (HDBSCAN, Markov chains, etc.)

§Example

use sevensense_analysis::{
    application::ClusteringService,
    domain::{ClusteringConfig, ClusteringMethod},
};

let service = ClusteringService::new(ClusteringConfig::default());
let embeddings = vec![/* ... */];
let clusters = service.run_hdbscan(&embeddings).await?;

Re-exports§

pub use domain::entities::Anomaly;
pub use domain::entities::AnomalyType;
pub use domain::entities::Cluster;
pub use domain::entities::ClusterId;
pub use domain::entities::EmbeddingId;
pub use domain::entities::Motif;
pub use domain::entities::MotifOccurrence;
pub use domain::entities::Prototype;
pub use domain::entities::RecordingId;
pub use domain::entities::SegmentId;
pub use domain::entities::SequenceAnalysis;
pub use domain::repository::ClusterRepository;
pub use domain::repository::MotifRepository;
pub use domain::repository::SequenceRepository;
pub use domain::events::AnalysisEvent;
pub use domain::events::ClusterAssigned;
pub use domain::events::ClustersDiscovered;
pub use domain::events::MotifDetected;
pub use domain::events::SequenceAnalyzed;
pub use domain::value_objects::ClusteringConfig;
pub use domain::value_objects::ClusteringMethod;
pub use domain::value_objects::ClusteringParameters;
pub use domain::value_objects::MotifConfig;
pub use domain::value_objects::SequenceMetrics;
pub use domain::value_objects::TransitionMatrix;
pub use application::services::AnomalyDetectionService;
pub use application::services::ClusteringService;
pub use application::services::MotifDetectionService;
pub use application::services::SequenceAnalysisService;
pub use metrics::ClusteringMetrics;
pub use metrics::SequenceEntropy;
pub use metrics::SilhouetteScore;
pub use metrics::VMeasure;

Modules§

application
Application layer for the Analysis bounded context.
domain
Domain layer for the Analysis bounded context.
infrastructure
Infrastructure layer for the Analysis bounded context.
metrics
Clustering quality metrics and evaluation.
prelude
Prelude module for convenient imports

Constants§

VERSION
Crate version information