Skip to content

NMR

NMRBlock

NMRBlock(item_id: str | None = None, collection_id: str | None = None, init_data: dict | None = None, unique_id: str | None = None)

Bases: DataBlock

Parameters:

Name Type Description Default
item_id str | None

The item to which the block is attached, or

None
collection_id str | None

The collection to which the block is attached.

None
init_data dict | None

A dictionary of data to initialise the block with.

None
unique_id str | None

A unique id for the block, used in the DOM and database.

None

Attributes:

Name Type Description
accepted_file_extensions

A list of file extensions that the block will attempt to read.

block_db_model
block_id
blocktype

A short (unique) string key specifying the type of block.

data
defaults

Any default values that should be set if they are not

description

A longer description outlining the purpose and capability

name

The human-readable block name specifying which technique

plot_functions

A list of methods that will generate plots for this block.

processed_data dict | None
version str

The implementation version of this particular block.

accepted_file_extensions

accepted_file_extensions = BRUKER_FILE_EXTENSIONS + JCAMP_FILE_EXTENSIONS

A list of file extensions that the block will attempt to read.

block_db_model

block_db_model = DataBlockResponse

block_id

block_id = unique_id or generate_random_id()

blocktype

blocktype = 'nmr'

A short (unique) string key specifying the type of block.

data

data = {'item_id': item_id, 'collection_id': collection_id, 'blocktype': blocktype, 'block_id': block_id, None: defaults}

defaults

defaults = {'process number': 1}

Any default values that should be set if they are not supplied during block init.

description

description = 'A data block for loading and visualizing 1D NMR data from Bruker projects or JCAMP-DX files.'

A longer description outlining the purpose and capability of the block.

name

name = 'NMR'

The human-readable block name specifying which technique or file format it pertains to.

plot_functions

plot_functions

A list of methods that will generate plots for this block.

processed_data

processed_data: dict | None = None

version

version: str = __version__

The implementation version of this particular block.

event_names

event_names() -> set[str]

Return a list of event names supported by this block.

events_by_name

events_by_name() -> dict[str, Callable]

Returns a dict of registered events for this block.

from_web

from_web(data: dict)

Initialise the block state from data passed via web request with a given item, collection and block ID.

Parameters:

Name Type Description Default
data dict

The block data to initialiaze the block with.

required

generate_nmr_plot

generate_nmr_plot(parse: bool = True)

Generate an NMR plot and store processed data for the data files attached to this block.

load_nmr_data

load_nmr_data(file_info: dict)

make_nmr_plot

make_nmr_plot(df: DataFrame, metadata: dict[str, Any]) -> str

Create a Bokeh plot for the NMR data stored in the dataframe and metadata.

null_event

null_event(**kwargs)

A null debug event that does nothing but logs its kwargs and overwrites the data dict with the args.

process_events

process_events(events: list[dict] | dict)

Handle any supported events passed to the block.

read_bruker_nmr_data

read_bruker_nmr_data(filename: str | Path | None = None, file_info: dict | None = None) -> tuple[dict | None, dict]

Loads a Bruker project from the passed or attached zip file and parses it into a serialized dataframe and metadata dictionary.

Parameters:

Name Type Description Default
filename str | Path | None

Optional local file to use instead of the database lookup.

None
file_info dict | None

Optional file information dictionary to use for the database lookup.

None

Returns:

Type Description
tuple[dict | None, dict]

A tuple of the dataframe (serialized as dictionary) and the metadata dictionary, or None if no compatible data is available.

read_jcamp_nmr_data

read_jcamp_nmr_data(filename: str | Path | None = None, file_info: dict | None = None)

to_db

to_db() -> dict

returns a dictionary with the data for this block, ready to be input into mongodb

to_web

to_web() -> dict[str, Any]

Returns a JSON serializable dictionary to render the data block on the web.

update_from_web

update_from_web(data: dict)

Update the block with validated data received from a web request. Will strip any fields that are "computed" or otherwise not controllable by the user.

Parameters:

Name Type Description Default
data dict

A dictionary of data to update the block with.

required