Release notes - NMR Software - NMRFx 11.4.14

New Feature

NMR-8270 Add Peak Network matching tool

Description

Add code from the NMRViewJ peak network matching tool for performing bipartite matching optimized genetic algorithm for assigning peaks

Improvement

NMR-4518 Should initialize phases in processing script from any present in original dataset

Description

Phases can be present in the original dataset (in procs for Bruker etc.).
We should initialize the process script phases to those values. This may entail some conversion as different vendors have different phasing conventions.

NMR-6591 Add preferences for FID load modes

Description

A section should be added to the Preferences to control what should happen when opening an FID.
Including:,
1) Whether to auto process (current default for 1D/2D)

2) Whether to use any saved (and non-zero) phases, or whether to do an autophase
3) Possibly whether to use other parameters (apodization, linear prediction, zero filling) that are in the file.

4) Whether to open and display molecule file if present in fid directory

NMR-8896 Clear auto peak pick on region add

Description

If you’ve peak picked an 1D spectrum and shown the multiplet tool you’ll have a mode set where any addition of regions will result in peak picking those regions. If you clear a peak analysis and do a region add it will still do the peak picking. This mode should be cleared when the analysis is cleared.

NMR-8897 Don't show dataset name selector on jcamp files

Description

When opening FID files users are prompted for a name to save the processed data in. We should skip that when opening a .dx file and just use an output name (for FID file.dx) of file.nv.

NMR-8898 Set a default scale value for spectra from JCAMP

Description

Benchtop spectra come in with intensities around 1e6 . Should set a scale value to put them in a more friendly range.

NMR-8900 Improve peak pick by dragging

Description

Peaks can be picked by dragging the cursor (in Peak mode) across the 1D spectrum. Doing this over a region with existing peaks can delete other peaks. Also, the limit on how low the threshold can go is too high, preventing the user from picking small peaks.

NMR-8902 Only load active rows to plot tool

NMR-8909 Set proper entity id on SMILES molecules

Description

Molecules generated from SMILES string don’t get a correct entity number which creates problems when reading/writing STAR files

NMR-8911 Add more x column possibilities to TRACT tool

Description

The TRACT tool currently requires that the x axis data come from a column named etime. We should add more possibilities (value and delay)

NMR-8919 Allow inactivating scanner table rows for fitting

Description

Users should be able to deactivate individual rows in the scanner table so the data from that row is not displayed or used in the fitting in the plot tool.

NMR-8920 Lvl up/down and autoscale should only apply to selected scanner table rows

Description

If you have the scanner table opened it would be more convenient to adjust the levels for individual rows if the normal up/down scale and autoscale buttons only acted on selected rows (or all rows if none selected)

Bug

NMR-8910 Saving projects with journal annotation on spectrum

Description

Spectra with journal annotations aren’t properly written or read from .yaml files used for saving the spectrum display

Release notes - NMR Software - NMRFx 11.4.13

New Feature

NMR-6050 Prompt for filename should be simpler

Description

Before processing the user is prompted for a filename. At present a full file dialog is displayed.
Change this to just a smaller prompt for the filename.
Clicking the File... button could be used to get full file dialog

NMR-8828 Add Diffusion Tool

Description

Add a version of the scanners plot tool that has specific features for diffusion analysis

NMR-8829 Add RNA scoring tools

Description

Add tool to calculate score of predicted spectra with experimental spectra and new layout tool to read a layout from .yaml file

NMR-8831 Fetch RNA Secondary Structure Model from nmrfx.org

Description

NMRFx Analyst can predict RNA secondary structures using a deep learning model, but the model is not distributed with NMRFx (to minimize size of installer). We should add the ability to fetch the model from nmrfx.org

NMR-8870 Add support for unaliasing protein chemical shifts

Description

Experiments like HCCH Tocsy are often aliased in the carbon dimension. We should support automatic unaliasing of these based on expected chemical shift ranges.

NMR-8872 New RNA features

Description

Add scoring of RNA predictions against experimental data and ability to define spectrum layouts.

NMR-8876 Add quantum prediction interface

Description

Add GUI commands for adjusting shift and coupling constants in quantum prediction data (from GISSMO)

Improvement

NMR-6470 Load dataset values to scanner table

Description

When doing “Load from Dataset in the Scanner table the code should check to see if the dataset has associated values (for example, ones loaded from Bruker vdlist or vclist or Varian array parameters). A column should be added with those values so they can be used in relaxation or diffusion analysis.

NMR-8824 Improve 1D picking and display

Description

Do volume calculation when picking 1D peaks, allow selecting peaks when label is empty, default to Atom Label mode in Analyzer

NMR-8873 Improve integral display

Description

Improve the display of integral values on 1D spectra. By default show the integral value as horizontal text at bottom of integral region. Illustrate the range of region with a horizontal bar above the text. Dynamically offset text and range bar vertically to prevent overlap with adjacent values.

NMR-8874 Use lowercase when searching for solvent names

Description

Solvent names can have different cases. We should put and get them in hash map with lower case names

NMR-8875 Fix multiplet volume norm

Description

Use pascal triangle sum to calculate norm value for multiplet volume

Bug

NMR-8825 Pick in box mode not working

Description

Picking in box mode picks entire window, not just the region within crosshair box

NMR-8826 Autoscale happens even if lvl saved

Description

When loading a spectrum with a valid lvl value in .par file autoscale should not be done

NMR-8886 Reference parameters aren't cleared

Description

When you load a new dataset some reference parameters aren’t cleared from previous dataset

NMRFx 11.4.12


Improvement

NMR-8777 Improve scanner table 1D features

Description

Lvl and offset behaviour is not correct

NMR-8778 Add Flat Coordinates to Atoms

Description

When converting a 2D flat molecule to 3D it would be good to retain the original 2D (flat) coordinates for display on spectrum and 2D viewer.

NMR-8783 Add undo/redo to Peak Tool

Description

Add undo/redo to the edit menu so actions like compress, Degas, mirror etc. can be undone

NMR-8795 Improve scanner table 2D features

Description

Improve ability to switch chart display between overlay and grid and have scanner table work.

NMR-8800 Set refValue_r when loading par file

Bug

NMR-8776 SMILE molecules aren't stored

Description

Molecules created via SMILE strings aren’t stored in project so can’t be used

NMR-8780 Concurrent access errors during structure calc in gut

Description

Exceptions are thrown during structure calculation in the GUI because the collection storing active structures is accessed by both the structure calculation and GUI threads

NMRFx 11.4.11


Improvement

NMR-8768 Update to use Java 21

Description

Move from Java 17 to Java 21

NMR-8770 Allow filtering vendor parameters table

Description

Add a filter entry to the Vendor Pars table view so that only parameters whose name matches the filter text will be displayed.

Bug

NMR-8769 Fix display of extracted vectors

Description

Extracted vectors don’t display until mode is changed from Contours to Trace

NMRFx 11.4.10


New Feature

NMR-8648 Move slice checkbox to spectrum status bar

Description

Move the slice checkbox back to the spectrum status bar (from the attributes panel) so it is more convenient for users. Leave the slice controls (colors etc.) in the Slice pane of attributes panel

NMR-8649 Use tensorflow 1.0rc1

Description

Switch from tensorflow snapshot to 1.0rc1

NMR-8653 Allow setting plot limits from cursor position text boxes

Description

Typing a number into the cursor position text boxes currently can be used to set crosshair positions. In cursor Selector mode it should be possible to set the plot limits in the same way

NMR-8655 Add more key bindings

Description

Add more key bindings (based on ones in NMRViewJ)

NMR-8656 Add peak font and peak planes to attributes

Description

The peak attributes section should have controls for the peak font size and for the range of planes to use for drawing peaks

NMR-8661 Improvements to Dataset Browser

Description

Add buttons for FID/Dataset (its not obvious that double-clicking opens datasets, and that control-clicking opens FIDs. Allow sorting by columns. Add column for text (title). Default dataset should be the most recently modified one. Position browser at top left of window and set to stay on top.

NMR-8743 Improve RNA Secondary Structure Loading and Viewing

Description

Allow loading RNA secondary structure from files and allow selecting from a list of predicted and loaded secondary structures. Also show map of base pair predictions

NMR-8744 Add COMPLEX, ZIMAG, ZREAL operations

Description

Add operations to convert a real vector to complex and to zero the imaginary or real parts of complex vectors.

NMR-8747 Improve use of RNA suites

Description

Currently we skip some angles that could be constrained by suite parameters

NMR-8756 Use atom names for ResonanceSource hash

Description

Use just the atom names, not peak ids, for ResonanceSource hash code, ,so that resonance sources from multiple peak lists have same hash code

NMR-8757 Detect dataset scan dimension

Description

If the dataset dimension that is arrayed (as in relaxation experiments) isn’t set, detect it by finding the smallest dimension

NMR-8758 Add button to assign current attributes to dataset

Description

After setting up attributes like contour levels, positive and negative drawing status, and colors, the user should be able to set those attributes on to the dataset and then save the parameter file. This allows the user to reload the dataset in another project and have appropriate attributes. This is a feature that was in NMRViewJ.

NMR-8760 Add text field for aspect ratio

Description

Add a text field, bound to the slider, for setting the aspect ratio attribute.

Improvement

NMR-8518 Activate a molecule if none active

Description

getActive should activate a molecule if none are currently active

NMR-8519 Add XEASY peak file loading

Description

Loading XEASY peak files is useful for testing

NMR-8546 Molecular viewer should show all structures

Description

If a structure is read with multiple models it should be possible to see all the models (and select which ones are shown) in the viewer.

NMR-8567 Add peaked tool and tables

Description

Add peakid tool (like in NvJ) and improve peak id tools in noe table

NMR-8569 Various minor fixes for structure calculation

Description

Various small fixes for structure calculation including fix for superimposing after calcs, dropping ambiguous restraints inappropriately (if in fixed group

NMR-8605 Improve distance constraint tools

Description

Fixes for distance constraint tables and viewer

Bug

NMR-8683 Error loading NEF files with chain code set to "."

Description

Some NEF files have a chain code “.” (meaning there is no set value) in the chemical shift assignment save frame. NMRFx throws an exception when trying to open these.

Version - NMRFx 11.4.9


New Feature

NMR-8388 Incorporate negateImag and negatePairs in GRINs

Description

GRINS requires appropriately phased data. It has been possible to specify phases for the indirect dimensions before now, but there wasn't support for negatePairs or negateImag, which often has to be done to the TD data before FT and phasing.

NMR-8389 Improve RunAbout controls

Description

Improve display of clusters and sequence in RunAbout and add other general RunAbout improvements

NMR-8467 Add GUI for interacting with Git

Description

NMRFx incorporates git for project management, but needs a GUI for interacting with it

Improvement

NMR-8324 Reduce video memory use

Description

Creating and destroying top-level windows eventually exhausts video memory. This can happen after even 10 times depending on how large the windows are and the screen resolution. When stages are removed the canvas objects are not properly garbage collected so video memory used by the canvas is not released.

NMR-8330 Allow plugins in right side tool pane

Description

Allow adding plugins whose controls are in the right side tool pane

NMR-8447 Auto saving of projects

NMR-8466 BMRB Fetch and store

Description

Add tools to fetch search BMRB, fetch entries and upload depositions

NMR-8468 Fix open star without molecule

NMR-8478 Set grid layout properties

Description

Allow setting chart position (row/column) and span in grids


Version - NMRFx 11.4.8

New Feature

NMR-8258 Update tensorflow to 1.0-SNAPSHOT

Description

Tensorflow Java 1.0-SNAPSHOT supports Mac Silicon processors so by updating to this release we won’t have to build the Mac Silicon (ARM) version of tensorflow ourself, and will get support for tensorflow 2.16.1

NMR-8264 Fetch NMR-STAR from BMRB

Description

Add menu entry and code to fetch NMR-STAR files from the BMRB.

Improvement

NMR-8296 Menu entry for NEF Reading

NMR-8304 Add plugin listener for commands from RING

Description

Add method for RING to request peaks to be displayed in NMRFx

NMR-8306 More control over annealing

Description

Add more menu options for controlling structure refinement with annealing

Bug

NMR-8271 Refine 3D structure more than once

Description

You can currently only do Refine or Calc Structure (from Molecule Viewer Calculate menu) once. A second try will corrupt the structure if the energy is 0.0

NMR-8295 Fix repeated RNA refinement

NMR-8297 Fix saving dataset to project map

Description

Regression introduced in recent commit

NMR-8305 Project datasets not stored

Task

NMR-8285 Pass File rather than String when opening FID data

Description

Currently methods and constructors for finding and creating NMRData classes (BrukerData etc.) receive the file path as a string. It would be better to pass File objects.

NMR-8288 Add constraints in molecule viewer

Description

Allow selecting atoms and adding constraints in 3D mol viewer. This will be useful for testing, demonstration and use with small molecules.


Version - NMRFx 11.4.7

New Feature

Features

NMR-8162 Extract assigned peaks to NOEs

Description

Currently only unassigned peaks are extracted as constraints. Should extract assigned peaks also.

NMR-8163 Support SpinIt NUS files

Description

Spinit uses NUS files that have entries for each phase increment. These should be supported

NMR-8164 Improve navigation slider

NMR-8165 Improvements in RunAbout

Description

Updates to spectrum adjuster, parameter saving and add more methods

NMR-8166 Support fitting two-state titration models

Description

Add fitting of titration data to a model with two independent sites

NMR-8168 Read/write annotation poly lines

Description

Reading annotation polylines is not currently supported, but they are used in RunAbout. Should add support for them.

NMR-8169 Pick 3D spectra with intermediate non-frequency dims

Description

Allow peak pick of 3D datasets where the 1st and 3rd dimensions are frequency dimensions, but the 2nd is an arrayed experiment. This happens often with relaxation experiments.


NMRFx 11.4.6

New Feature

NMR-8043 Add Tilt45 for J-resolved spectra

Description

Add an operation for tilting j-resolved spectra

Improvement

NMR-6632 Add region with cursor should add column in scanner mode

Description

Adding region columns to the scanner table is currently done with the Regions menu after positioning crosshairs. It would be easier if dragging the cursor in Region mode would add these regions if a scanner table is present. Currently the regions are added to dataset, but don’t appear as a table column

NMR-8025 Allow adding REGION op

Description

The REGION operation is in the Baseline Correction operation group. That means that you can’t add a separate instance of it (which is useful for other actions like autophase)

NMR-8027 CSHIFT with shift larger than vector size

Description

CSHIFT operations with shifts less than the vector size currently do nothing. They should shift with an amount = (shift % vecSize) and adjust the reference by the full shift amount

NMR-8028 Update script when indirect dim ref changes

Description

Typing a value in the reference field (of Parameter panel) doesn’t trigger an update of the processing for indirect dimensions.

NMR-8031 Set show dataset titles on spectra as default

Description

Users often want to be able to see what dataset is displayed in the windows. Make show title the default.

NMR-8036 Increase precision in order parameter output

Description

Increase precision (number of digits) in OrderPar output (toString) from 2 to 5.

NMR-8056 Reformat modelfree and spectral density files

Description

Add chain and residue name and move frequencies to a column rather than in header

NMR-8077 User control over GRINS noiseRatio

Description

GRINS terminates iterations when the max intensity is less than the noise estimate times a noiseRatio. That ratio is currently hard-coded, but should be user definable (from script/GUI)

NMR-8078 Allow CSV in order parameter and spectral density out

Description

Default to csv in order parameter and spectral density output

Bug

NMR-8026 Support older Bruker files without LOCKPPM par

NMR-8037 Fix autoscale with empty dataset

Description

Clicking process with no operations results in an error

Version

NMRFx 11.4.5

New Feature

NMR-7678 Add Peak Picking Tool

Description

Add a Tool for more control over peak picking. Include features that were present in NvJ including controlling mode (New, Replace, Append), region (Box or Window), local noise calculation, and filtered picking (based on another list)

NMR-7696 Create Molecule from SMILES

Description

Add menu items etc. to allow creating a molecule from a SMILES string

NMR-7697 Autolink by Label when simulating peaks

Description

Automatically link peaks by labels when the peak list is generated with peak simulator. This will make it so users don’t have to explicitly call “Link By Labels” when generating peaks for use in peak slider. Only link peaks from peak lists that were generated with peak simulator

NMR-7768 Changing phase text fields doesn't update phase

Description

Changing phase values by typing into the text field (next to sliders in phase operation) doesn’t have any effect.

NMR-7850 Return only standard nuclei in findNucleiInLabel

Description

When searching for a nuclei in an axis label we should only return commonly used nuclei. So if you find an N, return 15N, not 14N.

NMR-7930 Optimize GRINS

Description

Improve performance of GRINS (NUS processing)

NMR-7932 Display shift probability on RNA secondary structure display

Description

Display shift probability (relative to prediction) and secondary structure prediction probability on RNA secondary structure viewer

Improvement

NMR-7668 Allow zooming RNA secondary structure viewer

Description

Add zooming to secondary structure viewer so for large RNAs the user can zoom in on a region of the secondary structure

NMR-7669 Display peak lists with residue prefix on secondary structure plot

Description

Connection lines between atoms can be drawn on secondary structure plot for each peak in a peak list, but this doesn’t work if the assignment labels have a residue name prefix. 32.H2 will display bug U32.H2 will not.

NMR-7681 Warn if reading molecule when one exists

Description

When reading in a new molecule (from file or Sequence Editor) the user should be warned if a molecule already exists. A common mistake is to read in a molecule twice. There should also be a way to clear existing molecules.

NMR-7682 Detect NUS mode for Bruker files using FnTYPE par

Description

Bruker files have an FnTYPE parameters that is set to 2 for NUS files. Currently we assume its NUS if there is a file named nusfule, but it is possible for that file to exist, but the data to have been collected with uniform sampling. Using the FnType parameter should be more reliable

NMR-7690 Preserve atom names when doing small molecule to3D

NMR-7751 Consolidate Resonance classes

Description

Simplify Resonance, SimpleResonance and AtomResonance to just AtomResonance

NMR-7753 Consolidate Project classes

Description

Simplify Project classes to ProjectBase, StructureProject and GUIProject

NMR-7770 ThreeD molecules should initialize with appropriate scale

Description

The scale for 3D viewer (camera position) should be initialized to an appropriate value so molecule mostly fills window.

NMR-7771 Allow extracting indirect plane to file for NUS testing etc.

Description

Add ability to extract indirect plane to a .nv file and then read and use NUS processing on just that plane. This would be useful for optimizing NUS processing etc.

NMR-7773 Support attached schedule in GRINS (for testing)

Description

GRINS should be able to get NUS schedule from the matrix object (same way as NESTA now does. Useful for optimizing NUS processing.

NMR-7849 Integer axis labels on xy-bar chart

Description

The x axes of XYCanvasBarCharts often have fractional tic axis labels which can be inappropriate (for an axis representing residue numbers, for example). It should be possible to set an axis so the axis labels are always integers.

NMR-7858 Change mailing list url in Help menu to groups.io/g/nmrfx

NMR-7859 Increase sig figures in SF parameter display

Description

SF currently rounds to 1 significant digit which can result in incorrect SF in script. Also, when loading script the parameters that are set in script should be unlocked so they get written out to new scripts.

NMR-7860 Improve internal managing of dimension operations

NMR-7861 Improve scrolling planes using spinners

Description

Adjusting planes to display a range of planes requires holding shift key down while adjusting spinners. This is not obvious to user. Should change so that left spinner moves the planes together, and the right spinner changes the second plane independently

NMR-7872 Calculate threshold for 1D peak pick from new tool

Description

Peak picking 1D spectra from the new Peak Pick tool should calculate a threshold based on estimate of noise level.

NMR-7879 Save RunAbout state in window yaml file

Description

When Windows used for RunAbout are reloaded from .yaml file the RunAbout controls should be set up.

NMR-7936 Update NUS parameters

Description

Update default options for NUS algorithms

NMR-7937 Pick multiple datasets in window

Description

If multiple datasets are displayed in a window they should all be picked from the new peak pick tool

NMR-7938 Improvements to Peak Path tool

Description

Add Goto Peak, display Atom in table, fix starting from scanner table without loading table file first

NMR-7942 Remove unnecessary add-opens in shell scripts

Description

nmrfxa and nmrfxs have add-opens (used by JavaFX) but they don’t need javafx to run.

NMR-7950 More optimization of GRINS parameters

Description

Optimize GRINS options based on nuscon tool analysis

NMR-7952 Update RNA prediction data

Description

Add new RNA data (BMRB/PDB) and update training of the prediction models

NMR-7955 Allow loading weighted acquisition files with vclist

Description

Bruker weighted acquisition experiments use a vclist file. Loading this can prevent saving parameter file

Bug

NMR-7857 Scanning for corrupted rows fails

Description

Scanning for corrupted rows fails with an OutOfRangeException

Version - NMRFx 11.4.4

New Feature

NMR-7616 Use active atom (isotopes) with simulated NOESY

Bug

NMR-7617 Clean resonances before writing peak lists

Description

A previous commit added a resFactory.cleanResonances to the NMRStarWriter class. It should be placed before writing the peak lists out. Otherwise the resonances in peak save frames and resonance save frames are inconsistent.

NMR-7618 Peak label types aren't loaded from windows .yaml file

Description

Loading a .yaml window file give this error and peak label types aren’t set properly:

2023-11-01 15:47:14,184 o.n.p.gui.spectra.PeakListAttributes lambda$setPublicPropertyValue$19

[WARN] Trying to set peakLabelType to Cluster but property isn't publicly exposed

NMR-7619 Add back NOE range slider to Peak Simulator

Description

Distance limit slider is missing from NOESY section of Peak Simulator

Version - NMRFx 11.4.3

New Feature

NMR-7614 Add RNA secondary structure prediction

Description

RNA secondary structure prediction is important to several NMRFx actions with RNA (structure calculation, shift prediction etc.). It would be useful to be able to predict the secondary structure inside NMRFx. This is a test feature and requires a model file that is not yet included in the release.

Initially, this will be an experimental feature dependent on a separate download of a trained tensor flow model

Version - NMRFx 11.4.2

New Feature

NMR-6459 Add undo for peak actions

Description

You should be able to undo most interactive peak actions (moving peak, adding peaks, changing multiplicities etc.)

NMR-6492 Open FID from datasets

Description

If a user has an open dataset they should be able to open the FID that the dataset comes from (assuming it is present and can be located) and be able to reprocess the FID. This is facilitated by the fact that .par files (for NMRFx format datasets) now contain the location (in absolute and relative formats) of the FID they were derived from

NMR-7581 Improvements for RNA peak gen

Description

Fix RNA peak generation with labeling scheme and allow selecting intensity of RNA peaks to be displayed on SS plot

NMR-7583 Only use frozen peaks for NOE restraints

Description

When using the slider to assign NOE lists one should be able to specify that only frozen peaks are to be used in generating constraint lists

NMR-7590 Allow closing last stage on MacOS

Description

It should be possible to close the last stage on MacOS and keep the app open (as the screenmenubar still exists to give access to creating new spectrum windows and other GUI windows).

Improvement

NMR-7584 Support A/B exchange in ZZ fitting

Description

The ZZ exchange tool should also support A-B exchange (like folding/unfolding) besides the current protein-ligand binding

NMR-7585 Add support for NvJ style mouse scrolling

Description

Some NvJ users new to NMRFx would much prefer the mouse scrolling behaviour of NvJ, where scroll would pan the view vertically, shift-scroll would pan it horizontally, control-scroll changes vertical scale, and option-scroll zooms. This behaviour is consistent with some graphic design programs. We should add a preference to switch between the old style and new style (which was chosen for consistency with SpinIt)

NMR-7589 Add Dataset Combine to Scan Table

Description

The ScanTable allows you to process to multiple datasets, and process and combine to one dataset. You should also be able to assemble already processed datatasets into a single (pseudo-2D or pseudo-3D) dataset

Bug

NMR-7587 Using EXTEND in simulated FID fails

Description

Can’t use EXTEND operations in simulated FID

Version - NMRFx 11.4.1

New Feature

NMR-6473 Add support for fillOval in PDFGraphicsContext

Description

The fillOval operation is not currently supported in PDFGraphicsContext. It can be used by Symbol.draw and its lack prevents exporting graphics with filled circles.

For example, Residue Order Value in the sequence canvas uses filled circles and can’t be exported.

NMR-7495 Process and analyze ZZ exchange data

Description

Add support for fitting ZZ exchange data

Improvement

NMR-7463 Ensure peak content display is updated

Description

The peak content display isn’t always consistent with current peak lists

NMR-7471 Update scan table when dataset is added to chart

Description

If you add a dataset to a chart with scanner table open the table does not get updated to include the new dataset

NMR-7472 Fix main split pane resizing

Description

When resizing a spectrum window the split pane adjusts so that the lower pane is visible, even when there is no content in it. The size should remain constant (whether it is empty or when occupied with something like the scanner table)

NMR-7473 Widths of simulated peaks are too small for larger molecules

Description

The peak simulator generates peaks with widths that look tiny on typical spectra. We should make them larger and related to the size of molecule so larger molecules get wider peaks

NMR-7474 Initial stage sizes should be based on screen size

Description

In the current release the initial stage is an appropriate size on some platforms, but too large on others. The size of screen should be detected and the stage size set based on that.

NMR-7478 Add GUI controls for adding annotations

Description

Users want to be able to add simple annotations, lines, arrows with text labels, text, rectangles etc. A GUI should be added that allows creating the annotations and controlling attributes (colors, line widths etc.)

NMR-7498 Add control to reload ScannerTable

Description

Add button trigger reloading of scanner table. Currently the table can be reloaded automatically which sometimes removes dataset rows inappropriately. The user should have control over when it is reloaded.

NMR-7505 Support use of spectrum drawing immediate mode

Description

NMRFx has a complex method of drawing spectra that exists to so that drawing complex and multiple spectra uses multiple threads. This prevents the program from hanging while drawing big datasets and speeds drawing multiple datasets. But the overhead of the current implementation causes flickering when drawing even simple spectra. An immediate mode exists which doesn’t flicker, but there is no way to activate it. We should add a preference to allow turning it on. Ultimately it may become the default mode.

Bug

NMR-7475 Loading favorites window fails

Description

Opening a favorite doesn’t work (nothing happens

Release notes

NMRFx 11.4.0

New Feature

NMR-6471 Auto load scanner table

Description

The scanner table File menu has a “Load from Dataset” item. The code for this item should execute automatically when you open a scanner table and the active chart has an arrayed experiment in it. If the chart has multiple datasets in it then the table should load with a row for each dataset.

NMR-7337 Reference pane should be in accordion and show info for all dimensions

Description

Currently you can’t see the reference info (sw, sf etc.) for all dimensions at once. You have to switch dimension and look at each one individually. There should be a single pane (in accordion) for reference info and it should show standard parameters for all the dimensions, and additional experiment specific info like solvent and temperature.
We should also add a parameter for acquisition mode (hypercomplex, echo-anti echo) so it can be set in the reference pane, rather than as a Dim1 operation

Improvement

NMR-4514 Add more annotations

Description

Current annotations inlcue lines, polylines and text. We should add more (squares, arrows, ellipses etc.)

NMR-5725 Run natively on Apple Silicon processors

Description

Supporting native execution on Apple Silicon processors will lead to improved performance.
JDKs for Apple Silicon processors exist, but some of our dependencies use C code compiled for specific processors which may not include versions for Apple Silicon (macos-arm64).

NMR-7132 Replace operation list with accordion menu

Description

Change the list of operations to an accoridion with one operation for each titled pane. Prepopulate accordion with commonly used operations (which may be disabled initially).

NMR-7339 Phaser should only work in dataset mode

Description

Currently, the phaser (on right side of spectrum) works in both processing mode and on processed datasets. Phasing in processing mode is now done in the Phase accordion pane, so the phaser should be changed to only work in dataset mode. Ultimately, it may be moved to another location.

NMR-7376 Add control for line width for traces

Description

The attributes controller doesn’t currently allow setting the line width for traces

NMR-7409 Scanner tool improvements

Description

Continue improvements to scanner tool including, row selection should load FID if no dataset in row, highlighting should work for arrayed datasets, and selecting chart should not replace scanner table if it is currently active

NMR-7410 support Bruker fq2list

Description

Bruker datasets can have various types of lists of values (vdlist, vocalist etc.). One type is a list of frequencies. We currently support reading an fq3list file, but should also support fq2list

NMR-7413 Add script method for dataset row differences

Description

A common technique is to collect an arrayed experiment and then calculate the difference of rows. There should be an nd script method (like nd.diffRows()) to calculate a difference spectrum

NMR-7415 Support Bruker 3D datasets with no increment in 2nd dim

Description

Three dimensional experiments where the second dimension has TD size = 1, so it isn’t incremented are not currently supported. These are used in making filtered NOE experiments.

NMR-7417 Filter atom table by residue name

Description

The atom table can be filtered by residue number and atom name. It should also be possible to filter by residue name (like K.CA to show CA atoms of all lysines)

Bug

NMR-7355 Baseline correction for small vectors

Description

Small vectors may have insufficient numbers of regions identified as baseline causing a failure to identify any baseline regions and NaN values after baseline correction

NMRFx 11.3.3

Add menu item to load and execute python script

Description

A menu item should be added in console window to give ability to load and run user scripts in the GUI

Copy peaks to clipboard from Peak Table

Description

You should be able to do Commd or Control-C in Peak Table, and use a Copy from an Edit menu to copy the table of peaks to the clipboard in a format that can be pasted into Excel

Add Peak List Table

Description

A table of peak lists should be added, similar to this one in NMRViewJ:

Add filter on peak status to Peak Tool

Description

NMRViewJ allowed filtering the peaks displayed in the Peak Inspector/Tool by various criteria such as whether they are deleted or assigned. This should be added to NMRFx

Add Go (to peak) button to Peak Inspector and Table

Description

Add a Go button (like NMRViewJ has) that sets the active chart to display the current peak (in inspector) or selected peak (in table).

Add 1D peak generator controls to peak simulator

Description

The Peak Simulator can do many types of multidimensional experiments, but doesn’t do simple 1D proton and carbon experiments. This should be added.

PyStructureTest fails sometimes

Description

The rnalinks test in PyStructureTest generates a structure of an RNA molecule and checks that the energy of the structure is below a threshold. The calculated structure can depend on random starting values so the energy can vary such that sometimes the test fails. We should raise the threshold energy so that failures are unlikely to happen, but major errors in the calculation are still caught.

Scanner Tool control of display attributes

Description

Currently, the scanner tool (when working with multiple datasets, rather than arrayed experiments) controls the display of datasets on charts by adding and removing them from the chart. Instead, it should add all datasets to the chart and control what is displayed by turning visibility attributes on off. This will allow datasets to retain display attributes (especially color), as you add and remove them)

Add peak matcher to move predicted peaks to actual positions

Description

The slider tool should have the capability to of using a bipartite match to shift peaks from their predicted positions to the positions of peak maxima. Peaks should only be moved if they are in a specified tolerance and no ambiguity. Shifted peaks should be frozen so it is clear which peaks have been moved and which haven’t

TOCSY Prediction misses many 1H-1H crosspeaks

Description

Prediction of cross peaks in the TOCSY simulation misses many cross peaks even at the maximum number of transfers selected.

Better error reporting in Scanner scanning

Description

Improvements in scanner table loading. Show more error information if fid files can’t be loaded, allow grouping upper case names in table headers and avoid NPE in table that doesn’t yet have dataset entries

Initialize 3D RNA structure from common secondary structures

Description

Use linkers to allow generating fragments of larger RNA molecules. Initialize angles for some standard RNA motifs (stem loops, simple bulges etc.)

Basic NOE table functions

Description

Add basic NOE constraint calibration and export

Peak shapes should support non-lorentzian shapes

Description

Current peak fitting algorithms in NMRFx only properly work with Lorentzian line shapes. We should add support for non-lorentzian (perhaps a generalized lorentzian which can emulate gaussian shapes)

Improvement

Add ability to delete peaks in the Peak Table

Description

NMRViewJ supports selecting one or more rows in the peak table and clicking a delete button (and possibly delete key) and deleting the selected peaks. We should add this to the NMRFx peak table.

Indexing for non-phase sensitive files

Description

Non-phase sensitive files still index in groups of 2, like phase-sensitive files, which prevents use of NUS lists for them.

Sort pressure and titration input

Description

The input data (pressure values and ligand concentrations) should be sorted so that peak paths can be followed properly

Add more structure types to RNA angles.txt

Description

Add more RNA secondary structure types for initializing 3D structures.

Bug

IllegalArgumentException when all operations are deleted

Description

It used to be possible to delete all operations but now deleting all operations results in an IllegalArgumentException.

FID with apodization is reveresed in spectrum view.

Description

If the only operation applied to the FID is apodization, it is reversed between FID w/ Spectrum and Dataset views.

Fix autophase from phase menu in spectrum mode

Description

Autophase from doesn’t do anything in Spectrum mode

X-Axis always defaults to H when displaying FID w/ OPs

Description

The xaxis is always H for FID w/ OPs when there is a FT operations (without it, the axis is time).

GRINS can fail with 2D datasets

Description

The GRINS method can fail for 2D datasets because the dataInfo.curDims variable hasn’t been set. This variable is unused so should be removed.

Check varian arraydim parameter

Description

It’s possible to have a Varian experiment where a parameter is arrayed, but the arraydim parameter is set to one. In this case the array of data won’t have been collected (only the first row). We should check the arraydim parameter and if it is less than or equal to 1, assume the experiment isn’t actually arrayed

HMBC Prediction misses many 1H-13C crosspeaks

Description

The HMBC chemical shift predictions (Peak Tool → Simulate tab → Experiment type → Basic ->HMBC with transfers set to 5) leave out many expected cross peaks. The lack of expected cross peaks makes using the Slider Tool difficult for completely assigning the spectra.

Endless loop when editing peak label in Peak Inspector

Description

Changes in NMR-6326_delete_peaks_in_peak_table resulted in an endless loop when you edit a peak label in the Peak Inspector

Version - NMRfx 11.3.2

New Feature

NMR-6445 Add support for N chemical shift prediction

Description

We currently support predicting carbon and hydrogen chemical shifts using a hose-code like predictor. We should add support for N shifts.

Improvement

NMR-4777 Mutualize the keybind / mousebind action between spinit and NMRFx.

Description

Scroll wheel now changes level, not offset. Offset can be changed by scrolling in left border area of 1D spectra

NMR-6392 Make grid fine & dashed

Description

Make the grid lines more fine as well as change the lines to dashed lines

NMR-6458 Varian array data isn't currently supported.

Description

Arrayed varian data (like T1 experiments) are not currently read in properly. Only the first row is read.

Bug

NMR-4492 fails to open data in a folder containing special characters

Description

Generated python script starts by opening the file.
When the path contains special characters (such as french accents, for example "Qualité"), the file encoding is not correct, and the file can't be open.

NMR-5440 Delete spectrum doesn't reallocate the space

Description

In the Spectrum menu there is an item "Delete Spectrum". This deletes the currently selected chart (if there are more than one chart displayed) but the space is not reallocated, and can only be readjusted by using one of the options in the Spectrum menu item "Arrange". See screenshot of grid of 3 spectrums where the middle spectrum has been deleted.

NMR-5544 Saving projects on windows has 2 caught exceptions

Description

Saving projects on windows results in a caught exception: `[ERROR] Creating XDG_CONFIG_HOME directory H:\.config failed java.nio.file.FileSystemException: H:\.config: Unable to determine if root directory exists`

The project still saves and can be opened despite this error. The computer this showed up on did not have an H: drive.

This link could possibly be related to the problem: https://git.eclipse.org/c/jgit/jgit.git/commit/?id=838b5a84b5093c335b95a644b8888006d9e95493

NMR-5648 Autophase can invert spectrum

Description

The autophase algorithm (flat mode) works by finding phases that symmetrize the baseline on each side of peaks. This criteria is independent of whether the spectrum is inverted or not. The code has a penalty function to choose the right-side up version, but apparently this doesn't always work right and the spectrum is upside down.

NMR-6334 The pointToPPM method in VecBase gives the wrong result

Description

The pointToPPM method in VecBase is used by the ARTSY code, but is giving the wrong result, so the frequencies of the found lines are wrong.

NMR-6344 generate-installer is excluding incorrect files on Mac

Description

excluded_jar_files_for_platform uses “mac”, not “macos” in test for files to exclude.

This means that essential .jar files are excluded from the Mac version of the application.

In particular, operations using the deeplearning4J library won’t work

NMR-6345 Closing NMRFx with X button after regions table opened causes Exception

Description

Closing NMRFx with the X button after the regions table has been opened (regardless of whether it is currently shown or not) results in a NullPointerException.

NMR-6346 VECREF GEN only works after switching to FID w/Ops which causes exception

Description

The Operations VECREF() GEN() are used to generate some fake data. After the autoprocessing changes in NMR-6012, they no longer generate the fake data initially, only a flat line, and modifying the inputs does not change anything. But if you select FID w/Ops, you get a exception and then using/adding VECREF and GEN as operations will generate the fake data.

NMR-6351 Processing Scan Directory throws IllegalArgumentException

Description

When a scan directory is loaded and the user attempts to process it, there is an illegal argument exception thrown.

NMR-6402 Saving a .par file after processing saves incorrect .par file

Description

If your process a dataset and then do anything that saves the .par file, without closing and reopening the dataset you get incorrect values in the “dim” line of the file.

NMR-6415 Varian files with f1coefs 1_0_0_1 not processed correctly

Description

Varian files with f1coefs = “1 0 0 1” are not processed correctly. NMRFx does not determine that the indirect dimension is complex.

NMR-6439 Modifying operations list changes plot axes

Description

If the axes have been changed from the default axes, ex. default axes are 1H and 13C and the 13C axis has been switched to 15N, then making a minor change in the operations list with auto process enabled or clicking the process button causes the chart to reload and the axes are reset to the default.

NMR-6449 Processing in stack display mode causes NPE for dataFile

Description

If the chart is in stacked display mode and the user attempts to process, a null pointer exception occurs.

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot invoke "org.nmrfx.datasets.DatasetStorageInterface.getFloat(int[])" because "this.dataFile" is null

NMR-6457 NMRFx creates new processing folder for spinit files before processing

Description

The Next ProcNum button immediately generates a directory before the processing occurs. If the user presses it more than once then it will seem like in spinit many datasets are available. but switching to one of the empty dataset folders will give a file not found exception since it is empty.

Release notes - NMRfx 11.3.1 - 3 Feb 2023

New Features

NMR-5848 Use NUS processing as alternative to linear prediction

Description

Extension of indirect dimension FIDs is commonly done with linear prediction. An alternative is to use NUS processing where the schedule is automatically generated to correspond to the uniformly collected data with the non-collected data forming a uniform group of following entries. We should support this as it is potentially simpler in parameters and more robust

NMR-5849 Add equation fitter to Table Plotter

Description

We can plot data derived from the scanner table, but should also be able to fit the data to various equations (like exponential decay and reaction kinetics). This would be useful for T1 and T2 relaxation as well as reaction monitoring.

NMR-5974 Add column math for arrayed dataset values

Description

When using some dataset types, like Bruker t1/t2 NMRFx can read in a list of values corresponding to an arrayed dimension. These can come, for example, from the Bruker vclist or vdlist.
These sometimes, especially for vclist, need to be converted into other values.
For example, vclist (which are integer counters) need to be converted to delay times for experiments like t1 or t2.
It would be useful to have a simple tool for doing math on columns with a formula like:
v = (v+A) * B + C,
where v is the original value which will be replaced with the newly calculated value. A,B and C are parameters to prompt the user for.
This tool could be prototype for more extensive math in places like the scanner table

NMR-5977 Support Stack Plots

Description

Arrayed experiments should be displable as stack plots with controls for horizontal and vertical shift of each trace.

NMR-5978 Move Spectrum Attributes Controls to Side Pane

Description

Beginning users have a hard time finding all the controls that affect spectrum appearance (colors, line widths, fonts etc.)
We should remove the spectrum attributes dialog and move the controls into a side panel where they will be more accessible. Controls should have better labeling so it is more clear what they do.
The attributes pane should be able to be hid so it uses less screen space when not in use.

NMR-6012 Autoprocess 1D and 2D spectra

Description

Currently users have to click Process to go to a processed dataset they can work with.
For small datasets, 1D/2D, after automatically generating a processing script (or loading an existing one) the data should be processed and the GUI put into Auto Update mode so changes to operations (like anodization) immediately reprocess the data and update the chart with the fully processed spectrum, rather than the FID with operations applied.

NMR-6152 Cursor modes for peak picking and integration

Description

NMRViewJ and dataChord both had additional cursor modes (beyond crosshair and selector) for operations like interactive peak picking and region addition. These capabilities should be added to NMRFx

NMR-6235 Allow drawing 3D dataset with 2nd dim not a frequency dim

Description

Some pseudo-3D relaxation datasets have the relaxation delay on the 2nd dimension. After processing the 2nd dimension is not a frequency dim, and the dataset doesn’t display. We should allow these datasets to display properly.
We should also start work on allowing swapping of dimensions during processing so that the 2nd non-freq dimension data is swapped with the 3rd dimension data so the dataset ends up in a more conventional format

NMR-6241 Generation of RNA structures with linkers

Description

Structure calculation is done in torsion angle space which requires the structure to be generated as a long tree of bonds and rotatable angles. Generating large RNAs would be easier if the tree was branched so that residues that end up being close in space have fewer rotatable bonds between them. This could be accomplished by adding artificial linkers at the start and end of secondary structure elements.

NMR-6245 Store molecule info in project.

Description

Currently objects like datasets and peak lists are associated with a project, but molecule information is stored globally. It would be useful to associated molecules with projects. There are applications where having multiple projects open simultaneously with different molecules in each is important (working on multiple RNA fragments, for example). We can’t currently do this.

Improvements

NMR-5715 Add region table.

Description

There is a table for displaying peaks, but no table for displaying integral regions. We should add this, including a way to save/load the table to/from a file

NMR-5727 Use NUS processing to replace corrupted FIDs in multi-dimensional spectra

Description

Sometimes data are collected where one or more rows of the acquired data are corrupted (for example, via power glitches during the acquisition). One way to salvage these datasets is to use NUS processing where the corrupted rows are marked as if they were not collected. The NUS processing then replaces the corrupted values with estimated values.

We should support this in NMRFx (we've had specific requests for this feature).

NMR-5803 Improve 1D projection display

Description

It is currently possible to add projections to the dataset using Right click on spectrum-> Extract Slice/Projection -> Project. At this point the border size does not adjust correctly to fully display the spectrum, the top is cut off, see screenshot 1.

The projections can also be added through Attributes -> Data Selector and then adjusting the border thought Attributes -> Style, but this requires both the refresh and the full button to be clicked before displaying.

The height of the projection spectrum can be controlled using the Attributes -> Slices -> Scale option which is not intuitive.

There is also no way to remove the projections once they are added. There should be a command to remove them that will restore the borders to the default.

NMR-5831 Adjust projection scale separately

Description

Right now the projections are scaled at the same time using Spectrum Attributes -> Slices and adjusting the scale. This is not the best because it doesn't allow adjusting the scale separately and it does not allow the user to adjust the scale independently.

NMR-5967 include jmx-plugin in installer

Description

Necessary for spinit’s interoperability.

NMR-5973 Improve array controls

Description

The row/plane controls used for stepping through array experiments could be improved.
Change Y to Row
Don't reset to row 1 when clicking in spectrum. Currently if you set display to full, and then click in spectrum it returns to just the first plane.
Display row/plane numbers starting at 1, not 0, as user facing tools should preferably use 1 indexing as that is more typical of NMR use (row 1, not row 0)
If the dataset axis is in pt mode (not ppm) display plane numbers not ppm
If the dataset has values (for example, from Bruker vclist or vdlist for the axis corresponding to the spinner, display the value

NMR-6110 Combine Open FID and Open Dataset into a single Open

Description

Currently datasets can be opened with "Open Dataset" and fid can be opened with "Open FID". They should be combined into a single "Open" command and should automatically detect which file the user is trying to open. Some file types may be figured out through the filename, others may need to open the file first. It would be good to set this up in a way that other types of files could be added easily in the future (ex. .mol, .pdb) but they do not need to be added in this issue.

NMR-6234 auto update peak lists in peak path tool

Description

When loading datasets in the peak path tool it would be useful if corresponding peak lists are also added.

NMR-6325 Don't save and reload data files during processing

Description

Currently, during processing (especially in auto-process mode), the dataset is saved to disk and then reloaded. Reloading the file can conflict with ongoing display operations (in other threads). There is no real reason to reload the file, saving is done only to persist the data when the program quits. So we should change the code to periodically save the dataset to disk, but use the current in-memory version for display.

NMR-6328 Add deleted field and methods to ResonanceSource

Description

It would be useful to be able to mark ResonanceSource objects as deleted. This would be used in RING to interactively mark items in the ResidueChart as being deleted so users could ignore “bad data values” without going back to peak lists and reanalyzing.

Bugs

NMR-5731 Drag and drop higher dim dataset onto lower dim dataset causes exception.

Description

Dragging and dropping a dataset with higher dimensions than the currently displayed dataset causes an exception. Example drag and drop 2D onto 1D, or drag and drop 3D onto 2D. (This happens both dragging and dropping files and from the loaded datasets menu)

NMR-5841 Scanner tool not working with JCAMP & RS2D

Description

The scanner tool is still experiencing the same problems as described in issue NMR-5486 for JCAMP and RS2D datasets. The previous issue was only tested with .nv datasets. This issue should be tested with atleast these datasets: JCAMP, RS2D, NMRView (.nv), and Bruker dataset

NMR-5888 Forward backward linear prediction artifacts

Description

Forward backward linear prediction works by calculating coefficients in the forward and backward direction and then averaging those coefficients. The coefficients are checked by rooting a polynomial and reflecting roots that are inside the unit circle. Artifacts are sometimes seen and some spectra that disappear if one uses forward or backward linear prediction but are present when one uses the average coefficients. An alternative that eliminates the artifacts is to extend the data with the forward coefficients and with the backwards coefficients and then average the extended data rather than average the coefficients.

NMR-5917 Spinit data support is broken

Description

Opening a spinit FID in nmrfx 11.3 seems broken. The data opens, the generated script looks sane, but the processed result is plainly wrong.

We need to see when this started to fail. Possibility that this was broken when introducing the “dataset” library?

NMR-5921 NMRFx.bat is missing inside NMRFx installer

Description

NMRF.bat is not inside the installer

java.io.IOException: Cannot run program "C:\Program Files\NMRFxAnalyst64\nmrfx.bat": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at rs2d.nmrfx.NmrFxController.startNmrFx(NmrFxController.java:139)
at rs2d.nmrfx.NmrFxController.connect(NmrFxController.java:50)
at rs2d.nmr.gui.panel.NMRStudyExplorer.lambda$initNmrfxTool$29(NMRStudyExplorer.java:601)
at rs2d.commons.gui.action.BasicAction.actionPerformed(BasicAction.java:114)
at rs2d.commons.gui.action.AsyncAction.lambda$actionPerformed$0(AsyncAction.java:34)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.(ProcessImpl.java:494)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
... 9 more

NMR-5935 Unable to process Spinit data

Description

Since 11.3.0, there is an issue when trying to process a spinit data.

We can open the FID correctly after (NMR-5917).

However, when we click on “Process” to save the data, this error shows:

Notice the datatype on top.

The process itself is saved, we see a new proc number appear on spinit, and spinit display is refreshed correctly when nmrfx was opened from spinit.

NMR-5951 Freq Domain not being set correctly

Description

The frequency domain field of a Vec should be set (true) when you do a FFT and unset (false) when you do an IFFT. When writing a Vec to a dataset, the Dataset.freqDomain field should get set.

Currently the status of freqDomain is not consistent. If the fourier transform is removed from the processing of a 1D, the dataset.freqDomain parameter is still set to true after processing and the axis changes to ppm see picture. Additionally, the value of the freqDomain parameter is correct in the par file (1 if ft in processing, 0 if removed).

NMR-6008 NMRFx use ppm as Hz when clicking into the process button

Description

When opening a dataset into NMRFx from SPINit and using the process button.

The resulting spectra is displayed on a really small ppm windows.

After DEEEEEEP investigation, NMRFx use the spinit ppm spectral width and…reconvert it into ppm…so devide it by the Base frequency.

As a esult the frequency is “Base frequency times” too small.

NMR-6155 Javafx threading issue when processing with Contents panel open

Description

If an FID is processed while the contents panel is open, it causes javafx.concurrent.Service WARNING Uncaught throwable in javafx concurrent thread pool likely because a non javafx thread is trying to update the GUI. This does not occur with the Attributes or Phases panels

NMR-6277 Manual processing doesn't load dataset

NMR-6285 Loading some sparky list files fails

Description

NMRFx can import sparky assignment files, but it sometimes fails. The code checks for “Assignment” in header, but fails if there are spaces before Assignments. It loads assignments for 2D lists, but fails for 2D lists, and fails if the file has a Data Height column.

NMR-6324 Methyl atom chemical shifts don't get set when reading bmrb file

Description

Chemical shifts for methyl atoms aren’t set in the molecule when reading from a bmrb file

Version 11.3.0 Released 26 Oct 2022

New Features

NMR-4490 Dynamic dataset resizing

Description

At the start of processing NMRFx needs to create the output dataset in its final size. At present this is done by the code that executes the processing script. Each operation that can change a vector length is used to update a dataset size for that dimension. This can fail. For example, if operations are used that don't properly calculate size (perhaps user added python commands). Also, some processing sequences may result in dataset needing to grow and then shrink. This results in a processing error.

The code should be changed so that the whole dataset, not just vector along a dimension, can dynamically resize during processing.

Some prototyping for this exists in code before merging into nanalysis.

NMR-4505 Support copy molecule from ChemDraw

Description

ChemDraw is a widely used program for editing molecules. Chemists should be able to copy a molecule from ChemDraw to NMRFx. One possible way to do this (as the ChemDraw format is rather complex) is to look on clipboard for a mol file. It seems from this code that ChemDraw will put a mol file on clipboard:

NMR-4812 Add support for JCamp dataset

Description

NMRfx supports loading file as FID or as Dataset from its toplevel menu. Dataset isn’t implemented yet for JCamp. This prevents loading spectra files from the 60MHz NMReady.

NMR-5206 Logging console

Description

Now that NMRfx uses slf4j + logback, we’d like to have a log console available.

NMR-4512 Auto process on FID open for 1D / 2D

Description

A processing script should be generated automatically when FID is opened so novice users don't have to set up any processing script

NMR-4517 Add drag and drop for molecules

Description

In the same way you can use drag and drop to drag an NMR dataset onto a spectrum window, you should be able to drag and drop a molecule file (.mol, .sdf etc.)

NMR-5127 Scanner tool improvements for pseudo-3D

Description

The scanner tool needs improvements for working with pseudo-3D files. These are created when 2D files are processed in the Process and Combine mode. The display should switch to full mode in the 3rd dimension so that selected rows are displayed and peak picking should only happen on the 2D planes (as 2D peak lists)

NMR-5130 Load and clear project issues

Description

Some issues with projects are creating problems for users. When loading a new project it would be useful if the program warned the user if project type data (datasets, peak lists, molecules etc.) are already present.
Closing a project (so the above warning, when added, doesn't happen) doesn't clear some molecule related items. In particular, even though the list of molecules is cleared, the active molecule is not nulled and the AtomBrowser (if open) still shows atoms.

NMR-5154 Read/write deuterium relaxation parameters

Description

Relaxation parameters for deuterium methyl groups need to be read to/from STAR files.
Also, when writing out deuterium relaxation there needs to be more characters in the atom fields to handle atom names like HD11.

NMR-5169 Implement multiplet tool etc. as contextual popover

Description

The current region and multiplet toolbars could be removed and instead use contextual popovers.

NMR-5244 Handle Hz/PPm parameters in RS2D data

Description

Spinlab can store frequency related parameters such as spectral width either in hertz, or in ppm.

Currently, NMRfx assumes that this parameters are always stored in Hz, but that’s not necessarily true. It is being changed by NMR-5110.

When a parameter is stored in ppm, there is a reference (by uuid) to a frequency parameter used to do the conversion : it is not necessarily the base freq.

NMR-5264 Generate PRF files for unnatural amino acids

Description

The structure calculation features are largely designed to work with proteins, RNA and DNA and rely on a built-in library of template files for each residue (amino acid or nucleotide). Users (especially pharmaceutical groups) want to work with unnatural amino acids. Creating a new template (.prf) file is very tricky. It should be possible to read in a molecular structure in some other format (.mol, .sdf, .mol2) and have NMRFx create a .prf file

NMR-5329 Save more Order Parameter info

Description

The standard BMRB STAR file OrderPar saveframe doesn't save info on the number of values and parameters used in fitting. This information is necessary if one want's to calculate various statistics (reduced ChiSq and AIC) after loading in a saved project. So we should additional tags to the OrderPar loop.

NMR-5331 Add peak prediction for 1D peaks

Description

Peak prediction exists for various types of 2D and 3D experiments, but not for simple 1D experiments.
This should be added.

NMR-5438 Zoom In/Out icons switched

Description

The zoom in button uses a magnifying glass with a minus and the zoom out uses a magnifying glass with a plus. This is opposite to every zoom in/out button Ive seen. The icons should be switched. Note; These occur in at least 2 places

NMR-5442 Save deuterium relaxation parameters when exporting R1/R2...

Description

Saving a table of relaxation parameters (R1/R2 etc. does not include deuterium related parameters like RAP and RQ

NMR-5451 Check and fix (as needed) Extract/Transfer and Merge Multiplet buttons

Description

The Multiplet Popover tool has buttons for:
Extract: move a multiplet component out of the existing multiplet to a new peak/multiplet
Transfer: move a multiplet component from one peak multiplet to another
Merge: merge two multiplets into a single multiplet.

These related actions may not be working properly currently.
A protocol to test them should be setup and they should be fixed as needed.

NMR-5452 Region popup tool should have delete region and both region and split should be icons like in the Multiplet tool

Description

There is now (after moving Region tool functions to contextual popup) no way to delete an entire region.
There should be a Delete button in popover tool. When adding this we should also change the Split button to an iconic button so the tool is similar to the Multiplet tool

NMR-5453 Allow changing the active molecule

Description

The Molecule button on lower toolbar allows you to display the active molecule (or load a new molecule if none present) on the spectrum. But there is no way to choose which molecule (when more than one are in memory) is the active molecule.

NMR-5593 Allow canvas objects molecules, text) with handles

Description

Molecules, text etc. are objects on the canvas. You should be able to activate object so handles that allow resizing are displayed and object can be moved on canvas.
Text (multiplet analysis can't be moved or width changed). Molecules can only be currently resized with a zoom-in/zoom-out menu.

NMR-5643 Simplify Operations

Description

Adding operations can be complex for beginning users. We should:
1) Change label on add op menu from "+" to "Add Operation"
2) Add a Delete button to delete operations (currently only done with Delete key)
3) Move common operations to a "Common Operation" submenu and have an "Advanced Operation" submenu
4) Add an APODIZE operation that allows lb,gm,sb so its easy to switch between those common functions
5) Add a SUPPRESS operation (easier name to recognize than TDSS) with simpler parameters than TDSS
6) Add A BASELINE operation that simplifies and combines AUTOREGIONS and BCWHIT

NMR-5650 Display Processor with no FID

Description

The Processor sidebar can't be displayed unless there is an FID present.
But the Processor can be used for generating simulated data and experimenting (generally for educational purposes) with different processing operations.

We should allow the Processor to be displayed without an FID.

NMR-5728 Complete Strips Tool

Description

The Strips Tool allows a user to set up a grid of windows (with one or more rows) and multiple columns.
The basic infrastructure works in NMRFx, but there are minimal or no features for sorting the data used to drive the strips. Here is a request from a user:

As far as I can tell, it’s not possible to use a 2D peak list (e.g., HSQC) to pull strips. No error messages, but basically I can’t select x and y dims, and/or nothing happens.
It would be nice if changing the control list didn’t automatically change the Dataset
It would be nice if the control list name remained displayed after selecting – there’s no way of telling what is the current control list without selecting it.
It would be helpful to be able to set the Start and N values to specific numbers, not just change with slider.
I can’t detect a pattern, but sometimes when viewing strips the horizontal crosshair only appears in one strip.

From my earlier query:
Is there a way to change the order of the strips?
Display Z-axis shift with each strip?

NMR-5801 Open Bruker datasets without aqseq par

Description

Some Bruker datasets can have more acqu*s files than the number of dimensions. For example, there are 2D datasets that have an acqu3s. At some point we added (based on user advice) a check for the aqseq parameter inside the pulseprogram file. That should be present for 3D (and higher) datasets so if it was not there we could ignore acqu3s files and determine that the dataset is 2D. But a user has provided an example of a 4D dataset without the aqseq parameter so we are incorrectly considering it a 2D file. It looks like the $DIM parameter in pulse program could be used instead to check how many dimensions the dataset has.

Bugs

NMR-4506 SVG copy paste to Microsoft Office

Description

Recent versions of Microsoft Word and Powerpoint (at least on Window) should allow pasting SVG from the clipboard, but this is not working.

NMR-5129 Generating simulated peaks is failing because of bad import

Description

We removed AtomResonanceFactory from the Java code, but it is still being imported in molpeakgen.py
That causes code using molpeakgen to fail.
The import should be removed and some tests for molpeakgen functioning should be added.

NMR-5145 Duplicated options in Tool menu of analyst

Description

The tool menu on the bottom of the analyst window some of the options are duplicated, see screenshot below.

NMR-5149 Clicking on Attributes generated IllegalAccessError

Description

On windows, for some users, right clicking on the plot and selecting attributes generates an exception. The stack trace is included below.

NMR-5155 Fix Regions button clear analysis method

Description

When the Regions button is clicked and some analysis (regions or peaks) already exists the user is prompted before clearing the analysis. If they confirm the clearing then the existing analysis is cleared.
This works if existing regions were created by originally clicking the Regions button, but not if they were created by holding the Alt key down and dragging the mouse over a region. In that case no Analyzer object will have been created and an NPE will happen.

NMR-5167 Opening FID with grid display

Description

When using the grid display layout, FID are always opened in the first chart. This is not the case with spectra, which is correctly displayed in the selected chart.

NMR-5198 SpectrumFitter tool thows an exception when selected

Description

Selecting the SpectrumFitter tool throws an IllegalAccessException (see attached stack trace) and only the one text entry area is displayed (see screenshot 1). If running from intellij, this can be avoided by adding the VM argument `--add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED` where the SpectrumFitter tool will not cause the exception and be fully displayed (see screenshot 2) .

NMR-5271 Multiple clicks of Undo button cause out of bound exception

Description

Loading a 2D dataset after loading and processing a 1D FID, the undo button will cause an ArrayIndexOutOfBoundsException on the 4th click. See attached txt file with exception details.

NMR-5272 Missing error message and loading when loading incorrect file type

Description

When loading an FID using the command File -> Open FID, in the File Browser you can select an FID file with a prefix such as .dx. If a dataset file is selected instead (ex. with an extension .nv) an error message is displayed to the user and nothing is displayed in the chart but the logs indicate a dataset was loaded. The dataset can be seen from the dataset display

When loading a dataset using the command File -> Open Dataset in the File Browser, you can select a dataset file with an extension such as .nv. If an FID file is selected instead (ex. with and extension .dx) nothing is displayed to the user, nothing is displayed in the chart but the logs show that they parsed some data.

NMR-5293 dscript.py uses wrong methods for getting dataset size

Description

The Dataset class was updated with new methods for getting dataset size based on whether one wants the number of complex values or number of real+imaginary values. This script wasn't updated.

NMR-5294 Pos/Neg drawing checkboxes in Dataset Table don't work

Description

The Positive and Negative check boxes in the Dataset Table don't do anything

NMR-5310 ProcessingExceptions resize Processing tab

Description

When there is a ProcessingException, the size of the processing tab changes size weirdly (see screenshot) For an exception, the text of the processing statusBar is updated to display the exception message, but not all is displayed since exceptions are quite long.

In addition to fixing the sizing, it might be useful to have a hover popup with the complete text, since the exception is cut off?

NMR-5311 Processing slider and textbox have different initial values

Description

2D and higher experiments have an adjustable slider when the FID is loaded. The slider updates a textbox with the text format `{current value of slider} / {maximum value of slider}` but the initial value of that textbox for the 2nd dimension always seems to be different initially, then once the slider is adjusted at least once then, it updates to the correct value. If the FID has 3 dimensions, the slider for the 3rd dimension matches the correct value right from the start but the 2nd dimension does not. See screenshot

NMR-5313 Exporting png exports blank image

Description

When exporting graphics, exporting svg or pdf will export the displayed chart, but exporting by png will display a blank image only. See three files exporting the same dataset. Note: Exporting the files saves them without a file extension, unless the user specifically types the file extension, which makes them harder/more annoying to open later in windows.

NMR-5315 Processing an FID while selecting an item from the ScannerTable generates a warning message

Description

If the processor is working on processing an item while the ScannerTable is open, clicking on one of the rows in the ScannerTable during processing will result in an error message, with a red circle in the processing status and the row FID being displayed.. The processing progress bar continues to update, once it completes the red circle turns green but no dataset is loaded. A processing python script is created with the contents of the processing file but with the wrong name/location.

NMR-5365 Selecting 'Show RunAbout' breaks gui formatting

Description

If a user loads a dataset and selects Tools -> Protein Tools -> Show RunAbout when there is no molecule loaded, an exception occurs when the tool is loaded. Any attempt to close the tool, change the window shape, load the processing window will result in incorrect formatting. The screenshot shows the gui after this exception occurred and then the window was maximized and a FID was loaded. The exception is also attached. The only way to fix this is to restart the software, or to go to Spectra -> New Window and then close the old window.

NMR-5366 Opening multiplet tool when non 1D dataset displayed causes multiple error messages

Description

When the software is first started, or after a dataset is loaded/processed, the bottom menu tools bar is available and Tools -> Analysis (1D) -> Show Multiplet Tool will add the multiplet tool bar to the bottom of the screen and display 3 pop up messages, If you continue to select to Show Multiplet Tool, additional multiplet tool bars will be added to the bottom of the screen.

NMR-5408 Selecting multiplets incorrectly shifts multiplets, peaks and x axis

Description

When multiplets are first applied they line up nicely see left picture, but if the multiplet tool is opened and the multiplets are selected using the selector tool, the spectrum, multiplet and xaxis shift so they are no longer aligned correctly, see centre and right screenshot.

NMR-5412 Deleteing regions causes NPE on last deletion

Description

Regions can be deleted using the regions tool. If regions are present on the chart but none are highlighted in the plot, nothing will happen. Selecting a region and then deleting will delete that region, any subsequent clicks of the delete button without a region being selected will start deleting regions one by one from the left of the last deleted region until it gets to the last region which will result in a NPE and the region will remain drawn on the chart. Trying to select that region will cause it to disappear.

NMR-5413 Inconsistent integrals from Regions button/Find Regions in region tool

Description

From the Regions button (1) , the regions are printed with normalized integrals. For the Find Regions menu item (2) in the region tool, if no prior regions have been made the integrals are not normalized, otherwise the integrals are normalized.

NMR-5420 Path tool buttons are inconsistent sizes

Description

The path tool has two sets of arrow buttons, the right set are bigger than the left ones, it will look better if they are the same size.

NMR-5448 Halting processing can cause exception on next load and process

Description

If processing is halted before completion, and then a new FID file is loaded and processed, it can cause a processing exception. This doesn't happen all the time, so it might be related to the timing of when the processing is cancelled.

NMR-5449 Fix Display/Normalization of spectra with negative integrals

NMR-5450 Fix number format parse errors in RefManager

Description

The RefManager in setupItems and getSkip parses strings from the script.
If the string has a valid integer it uses that value, if not it uses a default value.
There used to be an empty catch (NumberFormatException), but now if the value isn't a valid integer a warning message will be displayed.
We should properly check for acceptable non-integer values (typically empty string) and only show warning if there is truly an error.

NMR-5454 Integral norms wrong for 1D JCAMP spectrum

Description

Clicking integrate on a 1D spectrum should show integral regions with normalized values. With (at least one) JCAMP spectrum the integrals are flat and norm values 0.0

NMR-5459 Cursor type inconsistent with setting in Spectrum Status Bar

Description

The type of cursors (typically selection arrow or crosshair) is controlled by the Cursor menu at left side of spectrum status bar. Sometimes the displayed cursor is inconsistent with the menu selection.

NMR-5484 Out of Bounds Exception for 1D dimension choice box

Description

The dimension choice box for 1D FIDs is not consistent. If a 1D FID is loaded after the software starts, the dimension choice box is empty.

If another dimension FID is loaded, and then a 1D FID is loaded, the dimension choice box is not updated and will contain the options for the previous dimensions and will result in an exception if a user selects a dimension greater than D1.

NMR-5486 Display of multiple rows in scan table gets reset to first row when clicking in spectra

Description

Selecting multiple rows in the scanner table should show those rows in the spectrum chart. If you click in the chart the displayed row gets reset to the first row.

NMR-5541 Can't open .nv files not processed in NMRFx

Description

The recent addition of a check to see if files open from the "Open Dataset" menu are Datasets, not FIDs, results in the inability to open many .nv files. NMRViewJ/NMRFx (.nv) files created in other software (exported from nmrPipe, for example) do not have freqDomain flags set. Because of this the isFID check returns true, even though they are not FIDs. We need change the isFID check to properly handle these files.

NMR-5542 Dataset link files (.nvlnk) created when not needed

Description

When saving a project .nv and .ucsf datasets should be saved as hard links to the original file.
.nvlnk files are currently used for other dataset formats.
But, in present code .nv and .ucsf files are not properly detected (checking Path endsWith not String endsWith) so files are always saved with .nvnk files

NMR-5543 Cannot select peaks after peak slider tool has been opened

Description

Before the peak slider tool is opened, peaks can be selected, After it has been opened and closed, peaks can not be selected. Only the peak sliding functionality works.

NMR-5580 Molecules displayed on canvas are upside down

Description

Loading a molecule from a mol file and adding it to the canvas in NMRFX vs ChemDraw, the molecules appear to be flipped on the horizontal axis. See image

NMR-5674 Cannot set favorite on Windows

Description

On windows, setting a favourite dataset results in an exception. The filepath printed in the traceback has interpreted the directory vcs as `x0bcs` where x0b is the vertical tab character.

```Exception in thread "JavaFX Application Thread" Traceback (most recent call last):
File "", line 1, in
File "_pyclasspath_/nwyaml.py", line 11, in dumpYamlWin
IOError: (13, 'Permission denied', 'C:\\Users\\Jannalie.Taylor\\Documents\x0bcs\\llll\testtest\\windows
MyDataset_fav.yaml')```

NMR-5675 Favoriting dataset without project causes exception

Description

Trying to favorite the dataset when there is no project loaded causes an exception. Attached is a stack trace.

NMR-5707 JCAMP and Spinlab datasets are not saved in projects

Description

If a spinlab or JCAMP processed dataset is open when the project is saved, they will not be saved to the datasets file. Opening the project will print out a message saying the dataset is not there (its not a log message) and nothing will be displayed.

In addition to saving the dataset, add log messages so the user can check the logs.

NMR-5724 Installer generator skips some macOs libraries

Description

The installer generator ( generate-installer.py ) excludes various jar files from the mediaSets for each platform. This works for windows and linux, but excludes some files from the macOS mediaSet that should be included (openblas, javacpp ..). This is because the platform name passed in to excluded_jar_files_for_platform is "macos", but the code looks for "mac"

NMR-5729 Opening/closing/saving multi window projects generates extra windows

Description

Opening and closing projects with more than one window and then hitting saving, will increase the number of windows opened on the next time the project is opened. Looking at the steps to reproduce the bug, if steps 3 and 4 are repeated multiple times before step 5, then the number of extra windows opened in step 7 will be increased.

NMR-5730 Spinlab and JCAMP dataset drag and drop issues

Description

Drag and dropping datasets onto the canvas does not work for Spinlab and JCAMP datasets and does not work for Spinlab FID.
The drag and drop for JCAMP tries to load the dataset but gets a "Use Open Dataset to open non-fid file" error message.

The drag and drop for Spinlab datasets is not enabled, there is a greyed no symbol displayed indicating the file cannot be dragged and dropped.

Task

NMR-5223 Build installers automatically

Description

NMRfx uses install4j to build installers. The scripts used for that are not in the “nmrfx” repository for now. They probably shouldn’t, because we can keep the installer as a reason to buy nmrfx, but they should be in “nmrfx-private” repository.

The second problem is that install4j is a paying software. They have an option to buy a headless runner for CI/CD pipelines, that could be enough for us.

NMR-5228 Migrate to Java17

Description

We want to migrate to java 17 (Azul zulu with javafx modules included).

This includes pom modifications, changes in github build, but also updating the installer.

NMR-5326 Test 2D JCamp files from spinit

Description

Spinit JCamp export has been redone in the past few months, and have been tested successfully both on Mnova and Topspin.

Initial tests showed that some of them didn’t create the correct default processing script and ended with a wrong FT or inversed data. We should check them and fix JCAMPData accordingly.

The test files are available on sharepoint/teams:

NMR-5584 Remove java9 module-info.java files

Description

Remove the module files, remove the IDE specific launchers (they shouldn’t be needed), see if other changes to startup scripts may be needed.

Remove the dependency to ejml-fat and use a normal, maintained, dependency instead.

Version 11.1.39 Released 30 Sep 2021

Version 11.1.38 Released 12 Sep 2021

SKKKKKKKKKKkiP IMPROVE STR 1631222264 Update RNA attribute prediction data

Version 11.1.37 Released 05 Aug 2021

SKKKKKKKKKKkiP IMPROVE STR 1628172551 Allow generating hose codes on polymer

Version 11.1.36 Released 04 Aug 2021

SKKKKKKKKKKkiP NEW STR 1627911261 Add readMol2 to molio.py

Version 11.1.34 Released 23 Jul 2021

Version 11.1.33 Released 22 Jul 2021

Version 11.1.32 Released 21 Jun 2021

SKKKKKKKKKKkiP IMPROVE STR 1623956842 Newly trained 2ndStr model

Version 11.1.29 Released 15 Jun 2021

SKKKKKKKKKKkiP NEW STR 1623776461 Add prediction resfactors and model for 2nd structure prediction SKKKKKKKKKKkiP NEW STR 1623714902 Add Protein2ndStructurePredictor

Version 11.1.28 Released 10 Jun 2021

Version 11.1.27 Released 07 Jun 2021

Version 11.1.25 Released 07 Jun 2021

SKKKKKKKKKKkiP BUG STR 1623034792 Allow names like stage_0 instead of 0_stage

Version 11.1.24 Released 05 Jun 2021

Version 10.3.101 Released 03 Nov 2020

Version 10.3.97 Released 10 Aug 2020

Version 10.3.95 Released 02 Jul 2020

Version 10.3.91 Released 10 Jun 2020

Version 10.3.85 Released 04 May 2020

Version 10.3.84 Released 23 Apr 2020

Version 10.3.83 Released 22 Apr 2020

Version 10.3.81 Released 15 Apr 2020

Version 10.3.80 Released 10 Apr 2020

Version 10.3.79 Released 08 Apr 2020

Version 10.3.78 Released 07 Apr 2020

Version 10.3.77 Released 31 Mar 2020

Version 10.3.74 Released 27 Mar 2020

Version 10.3.70 Released 27 Mar 2020

Version 10.3.69 Released 12 Mar 2020

Version 10.3.68 Released 28 Feb 2020

Version 10.3.66 Released 30 Jan 2020

Version 10.3.65 Released 23 Jan 2020

Version 10.3.64 Released 21 Jan 2020

Version 10.3.62 Released 14 Jan 2020

Version 10.3.60 Released 09 Jan 2020

Version 10.3.55 Released 03 Jan 2020

Version 10.3.54 Released 13 Dec 2019

Version 10.3.52 Released 06 Dec 2019

Version 10.3.51 Released 06 Dec 2019

Version 10.3.50 Released 03 Dec 2019

Version 10.3.49 Released 12 Nov 2019

Version 10.3.45 Released 18 Oct 2019

Version 10.3.38 Released 26 Sep 2019

Version 10.3.37 Released 23 Jul 2019

Version 10.3.36 Released 05 Jun 2019

Version 10.3.33 Released 03 Apr 2019

Version 10.3.32 Released 31 Mar 2019

Version 10.3.31 Released 27 Mar 2019

Version 10.3.27 Released 22 Mar 2019

Version 10.3.26 Released 15 Mar 2019

Version 10.3.25 Released 13 Mar 2019

Version 10.3.24 Released 12 Mar 2019

Version 10.3.23 Released 09 Feb 2019

Version 10.3.20 Released 31 Jan 2019

Version 10.3.15 Released 02 Jan 2019

Version 10.3.14 Released 14 Dec 2018

Version 10.3.12 Released 12 Dec 2018

Version 10.3.10 Released 07 Dec 2018

Version 10.3.8 Released 04 Dec 2018

Version 10.3.7 Released 03 Dec 2018

Version 10.3.5 Released 17 Nov 2018

Version 10.3.3 Released 09 Nov 2018

Version 10.3.2 Released 02 Nov 2018