Skip to main content

beambusters library to refine the detector center for crystallography data processing.

Project description

beambusters library

PyPI pyversions

The beambusters library (bblib) is a library that contains methods to determine the detector center directly from still diffraction patterns collected in serial crystallography experiments.

Installation

To install bblib, run the following command in a terminal:

pip install bblib

Usage

Configuration dictionaries

To utilize the methods CenterOfMass, FriedelPairs, MinimizePeakFWHM and CircleDetection it is required to have two configuration dictionaries, one for PeakFinder8 and another one for this library itself. The following snippet shows the general structure for both (parameters not used in your case can be omitted):

config = {
    "plots_flag": ...,
	"search_radius": ...,
	"pf8": {
		"max_num_peaks": ...,
		"adc_threshold": ...,
		"minimum_snr": ...,
		"min_pixel_count": ...,
		"max_pixel_count": ...,
		"local_bg_radius": ...,
		"min_res": ...,
		"max_res": ...
		},
	"peak_region":{
		"min": ...,
		"max": ...
		},
	"grid_search_radius": ...,
	"canny":{
		"sigma": ...,
		"low_threshold": ...,
		"high_threshold": ...
		},
	"hough_rank": ...,
	"bragg_peaks_for_center_of_mass_calculation": ...,
	"pixels_for_mask_of_bragg_peaks": ...,
	"polarization": {
		"apply_polarization_correction": ...,
		"axis": ...,
		"value": ...
		}
}

PF8Info = {
	"max_num_peaks":
	"adc_threshold":
	"minimum_snr": ...,
	"min_pixel_count": ...,
	"max_pixel_count": ...,
	"local_bg_radius": ...,
	"min_res": ...,
	"max_res": ...,
	"pf8_detector_info": ...,
	"bad_pixel_map_filename": ...,
	"bad_pixel_map_hdf5_path": ...,
	"pixel_maps": ...,
	"pixel_resolution": ...,
	"_shifted_pixel_maps":...
}

The pf8_detector_info parameter is a dictionary containing the detector layout information:

pf8_detector_info =  {
	"asic_nx": ...,
	"asic_ny": ...,
	"nasics_x": ...,
	"nasics_y": ...
}

The pixel_maps parameter is a dictionary containing the pixel maps numpy array:

pixel_maps =  {
	"x": ...,
	"y": ...,
	"z": ...,
	"radius": ...,
	"phi": ...
}

The methods FriedelPairs, MinimizePeakFWHM and CircleDetection need a plots_info parameter if you want to save plots:

plots_info =  {
	"filename": ...,
	"folder_name": ...,
	"root_path": ...,
	"value_auto": ...,
	"value_max": ...,
	"value_min": ...,
	"axis_lim_auto": ...,
	"xlim_min": ...,
	"xlim_max": ...,
	"ylim_min": ...,
	"ylim_max": ...,
	"color_map": ...,
	"marker_size": ...
}

Calling the methods

To calculate the refined detector center of raw data frame as a numpy array using the following methods:

from bblib.methods import CenterOfMass
center_of_mass_method = CenterOfMass(config=config, PF8Config=PF8Config, plots_info=plots_info)
center_coordinates_from_center_of_mass = center_of_mass_method(
                        data = ...
                    )

from bblib.methods import CircleDetection
circle_detection_method = CircleDetection(config=config, PF8Config=PF8Config, plots_info=plots_info)
center_coordinates_from_circle_detection = circle_detection_method(
                        data = ...
                    )

The FriedelPairs and MinimizePeakFWHMmethod need an initial guess for the refined detector center coordinates initial_guess = [x_0, y_0]

from bblib.methods import MinimizePeakFWHM
minimize_peak_fwhm_method = MinimizePeakFWHM(
                        config=config, PF8Config=PF8Config, plots_info=plots_info
                    )
center_coordinates_from_minimize_peak_fwhm = minimize_peak_fwhm_method(
                        data = ..., initial_guess = ...
                    )


from bblib.methods import FriedelPairs
friedel_pairs_method = FriedelPairs(
                        config=config, PF8Config=PF8Config, plots_info=plots_info
                    )
center_coordinates_from_friedel_pairs = friedel_pairs_method(
                        data = ..., initial_guess= ...
                    )

Contact

Ana Carolina Rodrigues led the development of bblib from 2021 to 2025 at the Deutsches Elektronen-Synchrotron (DESY) in Hamburg, Germany.

For questions, please contact:

Email: sc.anarodrigues@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bblib-3.0.0.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bblib-3.0.0-py3-none-any.whl (30.2 kB view details)

Uploaded Python 3

File details

Details for the file bblib-3.0.0.tar.gz.

File metadata

  • Download URL: bblib-3.0.0.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for bblib-3.0.0.tar.gz
Algorithm Hash digest
SHA256 2eed6afff7d86bdce40d4e37b28920180499564878e7b0cf030413e0c664a9a6
MD5 045c2d1c9dfb8730eef08163d0436b27
BLAKE2b-256 3be3bcdb3640a09b5dde8167ea7a082e2d23835b9542b7906492cfa8c9c12297

See more details on using hashes here.

File details

Details for the file bblib-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: bblib-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 30.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.10.18 Linux/6.11.0-1018-azure

File hashes

Hashes for bblib-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4c994fa628a0fd7abfa59e41222d7d43167be387b98b7a665d0fa1f77a06849
MD5 0534bd17baf2094a4af3cc7c564d8682
BLAKE2b-256 aca2e2b6b2e68ca946c45053bc05dee49c08bf4c8a4d37f631da81e83d56b0ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page