2 releases

0.1.1 Jul 13, 2023
0.1.0 Apr 23, 2021

#55 in #toolbox

Download history 1/week @ 2024-07-18 7/week @ 2024-07-25 7/week @ 2024-09-19 7/week @ 2024-09-26 2/week @ 2024-10-03

108 downloads per month
Used in tttr-toolbox

MIT license

7KB
122 lines

TTTR Toolbox

The fastest streaming algorithms for your TTTR data.

TTTR Toolbox can be used as a standalone Rust library. If you do most of your data analysis in Python you may prefer to check Trattoria, a wrapper library for this crate.

Project Goals

  • Single threaded performance
  • Ease of extensibility

Algorithms available

  • second order autocorrelation (g2)
    • Supports record range selection
  • third order autocorrelation (g3)
  • synced third order autocorrelation (synced g3)
  • intensity time trace
  • record number time trace
  • zero delay finder
  • lifetimes

Supported file and record formats

  • PicoQuant PTU
    • PHT2
    • HHT2_HH1
    • HHT2_HH2
    • HHT3_HH2

If you want support for more record formats and file formats please ask for it. At the very least we will need the file format specification and a file with some discernible features to test the implementation.

Examples

pub fn main() {
    let filename = PathBuf::from("/Users/garfield/Downloads/20191205_Xminus_0p1Ve-6_CW_HBT.ptu");
    let ptu_file = File::PTU(PTUFile::new(filename).unwrap());
    // Unwrap the file so we can print the header
    let File::PTU(f) = &ptu_file;
    println!("{}", f);

    let params = G2Params {
        channel_1: 0,
        channel_2: 1,
        correlation_window: 50_000e-12,
        resolution: 600e-12,
        record_ranges: None,
    };
    let g2_histogram = g2(&ptu_file, &params).unwrap();
    println!("{:?}", g2_histogram.hist);
}

Dependencies

~1.5MB
~37K SLoC