NoitaSpin

Nuclear Magnetic Resonance Spectroscopy
Visualization and processing program






Table of contents



1 What is this ?
1.1
License
2 Installation
2.1 Installation, Windows 7 (and Windows 10)
2.2 Installation, Ubuntu 14 (Linux)
3
Quick start
3.1 Starting program
3.2 Open a spectrum
3.3 Panning and zooming
3.4 Axis calibration
3.5 1D: Peak picking
3.6 1D: Integration
3.7 Annotations
3.8 1D FID processing
4 Reference manual
4.1 General info
4.1.1 User interface components
4.1.2 Printing (FV)
4.2 Reading and writing spectra and FIDs.
4.2.1 Filetree: Setting paths to spectra.
4.2.2 Opening spectra, opening new tabs
4.2.3 Writing spectra and file formats (FV)
4.2.4 Superimposing spectra and spectrum copy concept
4.2.4.1 Spectrum copy concept
4.2.4.2 Spectrum display mode
4.2.5 2D: Opening external 1D projections for 2D spectra
4.2.6 Opening FIDs
4.3 Moving around: panning and zooming
4.3.1 Panning
4.3.2 Zooming
4.3.3 Miscellaneous zoom/translate related functions
4.3.4 2D: Zooming 1D projections
4.4 Axis calibration and shift scales
4.5 1D: peak picking
4.6 1D: integration
4.6.1 Defining and deleting integrals
4.6.2 Moving and scaling integrals
4.6.3 Calibration
4.6.4 Compensation for baseline offset and rising/falling baseline
4.7 Spectrum annotations
4.7.1 General: annotations and spectrum copies
4.7.2 Lines
4.7.3 Text
4.7.4 Images
4.7.5 Selecting objects
4.7.6 Zoomable and non-zoomable graphical objects
4.7.7 Moving objects
4.7.8 Scaling objects
4.7.9 Rotating objects
4.7.10 Deleting objects
4.7.11 Setting object color
4.8 2D: Perspective presentation
4.8.1 Opening a spectrum (or spectra) in perspective mode
4.8.2 World mode: moving around
4.8.3 Spectrum mode
4.8.4 Interlocking superimposed spectra
4.8.5 Autorotations
4.8.6 View angle and perspective
4.8.7 Lighting
4.9 Spectrum processing
4.9.1 One dimensional spectra
4.9.1.1 Window functions, truncation and zero-fill
4.9.1.2 Fourier transform
4.9.1.3 Phasing
4.9.2 Two dimensional spectra
4.9.2.1 Window functions, truncation and zero-fill
4.9.2.2 Fourier Transform
4.9.2.3 Phasing
4.9.3 Text editing and scripting (FV)
4.10 Setup panels
4.10.1 General
4.10.2 Fourier transform
4.10.3 2D: Z-coordinate
4.10.4 Annotations
4.8.5 1D: Peak picking
4.8.6 Global setup file Constants.py (FV)



1.  What is this ?

What is NMR ?


What is NMR spectroscopy ?

What is NoitaSpin ?



NMR (Nuclear Magnetic Resonance): certain atomic nuclei, when in an external magnetic field, will absorb and re-emit electromagnetic radiation. The frequency is typically between 50 and 1000 MHz (radio waves).

NMR spectroscopy uses the NMR phenomenon to obtain information about the atom and the molecule that it usually is part of. It is a chemical instrumentation technique.

NoitaSpin is a highly interactive NMR spectroscopy visualization program, which it is also capable of spectrum processing. NoitaSpin is (at the moment) mainly useful for visualizing spectra in BrukerTM format on PCs running the Windows or Linux operating systems.

Testing the free version is strongly recommended before buying the full version, to check compatibility with operating systems and hardware.


1.1  License

1.1  License

Free version























Full version
























Obtaining a license for the full version and License Computer ID verification












































Copyright
This software (including documentation and updates) is licensed (see license below), not sold or given by Tietonoita ay.

License for free (shareware) version of NoitaSpin v. 008003.

By installing, using or distributing the NoitaSpin software and/or documentation, the licensee (you) agrees to abide by the terms in this license.
  1. The licensee may use the software for an unlimited period of time, unless the license is terminated (see below).
  2. The licensee may distribute the program and documentation (for free) in unmodified form. Tietonoita ay reserves the right to revoke the distribution right for any reason.
  3. The licensee may not create derivative works of the software.
  4. The licensee may not to rent or sell the software, or request donations based on the software. The licensee may not modify the license of the software, or render the license (or the Tietonoita / NoitaSpin names) invisible.
  5. Limitation of Liability: The software (and the results it might produce) and its associated documentation are provided "as is", without warranty of any kind, express of implied, including non-infringement. In no event shall Tietonoita Ay be liable for any claim, damages or other liability arising from the use of the software. In no event shall Tietonoitas' liability exceed the amount that the licensee has paid for the software.
The license will terminate automatically and without notice from Tietonoita ay if you fail to comply with any provision of this License. Upon termination you must destroy the software and all copies thereof. You may terminate this license at any time by destroying the software and all copies thereof. The licensee agrees to reimburse Tietonoita for all reasonable costs incurred to enforce any of Tietonoitas' rights under this license, or to defend against any claims the licensee unsuccessfully asserts against Tietonoita ay. In case any part of this license is found to be unenforceable, other parts of this license shall be unaffected and still enforced. Usage of the NoitaSpin software is categorcally disallowed in areas where lacking human rights (including LGBT rights) prohibit Tietonoita ay from asserting it's rights, unless a written, non-transferable permission is obtained from
Tietonoita ay.


License for full (commercial) version of NoitaSpin v. 008004.

By buying, installing or using the NoitaSpin software and/or documentation,
the licensee (you) agrees to abide by the terms in this license.
  1. The licensee may use the software as long as the licensee is in possession of a valid (and unterminated) license from Tietonoita ay.
  2. The licensee may not distribute the program or documentation.
  3. The licensee may not create derivative works of the software.
  4. The licensee may not to rent or sell the software, or request donations based on the software. The licensee may not modify the license of the  software, or render the license (or the Tietonoita /  NoitaSpin names) invisible.
  5. Limitation of Liability: The software (and the results it might produce) and its associated documentation are provided "as is", without warranty of any kind, express of implied, including non-infringement. In no event shall Tietonoita Ay be liable for any claim, damages or other liability arising from the use of the software. In no event shall Tietonoitas' liability exceed the amount that the licensee has paid for the software.
The license will terminate automatically and without notice from Tietonoita ay if you fail to  comply with any provision of this License. Upon termination you must destroy the software and  all copies thereof. You may terminate this license at any time by destroying the software and  all copies thereof. The licensee agrees to reimburse Tietonoita for all reasonable costs  incurred to enforce any of Tietonoitas' rights under this license, or to defend against any  claims the licensee unsuccessfully asserts against Tietonoita ay. In case any part of this  license is found to be unenforceable, other parts of this license shall be unaffected and  still enforced. Usage of the NoitaSpin software is categorcally disallowed in areas where lacking human rights (including LGBT rights) prohibit Tietonoita ay from asserting it's rights, unless a written, non-transferable permission is obtained from Tietonoita ay.



Computer ID verification (license check), Linux:

Computer ID verification (license check), Windows:

Copyright:  (C) Tietonoita / Maria Sund 2013, 2014, 2015, 2016.

 




2.  Installation

2.1  Installation, Windows 7 (and Windows 10)

Installation
2.1  Windows 7 & 10.


Extracting files from package












































Installing Python































































































Install PyQt4
































































Install Numpy



























































NoitaSpin installation script
































Perspective presentation: PyOpenGL installation
Installation instructions for Windows 7 and 10. Pictures are for Windows 7.

Put the installation archive NoitaSpin999999win7.zip in C:\. Right click on the archive in the file manager and extract all files:



Accept the default folder:



Next, install Python 2.7 (unless already installed):



Select "install for all users" in the installation window. Then:


Accept the default directory. It is possible to choose another destination directory, but in that case, check that the paths to Python are correct in the following installation steps. Also, change the path in NoitaSpin.bat file. This should also be done if Python is already installed in the system in a place other than C:\Python27.

Do not add python.exe to Path, unless you know what you do, since this might break other programs using Python (this option should be crossed out, as below):



Finish the Python installation. Then, install PyQt4:



Check that the path to Python2.7 is correct:



Finish PyQt installation. Then, install Numpy-1.9:



Check that the path to Python2.7 is correct:



Finally, start the NoitaSpin installation script NSinstallWin.pyc:


(The script is not interactive).

The installation is now complete.

If you want support for perspective presentation of spectra (making the  button active), you should also install PyOpenGL (Python bindnings for OpenGL). Assuming that OpenGL is already installed on your system (as is usually the case), go to https://pypi.python.org/pypi/PyOpenGL, and download a suitable PyOpenGL package (for example PyOpenGL-3.1.0.win32.exe, tested summer 2016 with NoitaSpin008003 and 008004). Run the package as administrator (right-click on package in file manager, select Run As Administrator) with default settings. Pictures are from Windows 10:









 
 

2.2  Installation, Ubuntu 14 (Linux)

2.2  Ubuntu 14 (Linux)

From a Debian package






From a tar ball

























Perspective presentation: OpenGL installation





In a shell, with the Debian package in the working directory, type:

    $ sudo dpkg -i NoitaSpin999999ubu14.deb

To uninstall, type:

    $ sudo dpkg -r NoitaSpin

This will remove NoitaSpin - Python, PyQt and Numpy will remain installed.



Put the NoitaSpin999999ubu14.tgz tar archive somewhere in your filesystem, then execute the following commands in a shell:

    $ tar zxvf NoitaSpin999999ubu14.tgz

Some version of the Python language interpreter should normally be installed in your system. Check the version with the following shell command:

     $ python --version
     Python 2.7.6

All versions 2.7 are acceptable. The software does not work with Python version 3.

Then, install python-qt4 using synaptic, or use apt-get:

    $ sudo apt-get install python-qt4

Install python-numpy using synaptic, or use apt-get:

    $ sudo apt-get install python-numpy

Finally, NoitaSpin install - go to the NoitaSpin directory (cd NoitaSpin), and execute the following command:

    $ sudo ./installNoitaSpin.sh

If you leave out "sudo", the program will be installed into the users home directory (accessible only to one user).

If you want support for perspective presentation of spectra (making the  button active), you should also install OpenGL.

OpenGL installation in a shell:

    $ sudo apt-get install python-opengl
    $ sudo apt-get install libqt4-opengl
    $ sudo apt-get install python-qt4-gl

Some of the packages above might already be installed.


 




3.  Quick start

3.1  Starting program

3.1  Starting program
Under Windows 7 or 10, start the program by right-clicking on the NoitaSpin.bat file in the file manager:



Under Linux, the program can be started from the shell-script NoitaSpin (in /usr/local/bin), either from you favorite file manager or from a shell:

$ NoitaSpin &
The first task is to add a path to a NMR data set in Bruker format. Click on the    button in the left panel. A path selection dialog is displayed, click to select the directory (folder) above the data-folder that contains the NMR-run data. In the following typical 1D example, the directory ~/MyNMRstuff/data should be selected:

    ~/MyNMRstuff/data/Maria/nmr/Sample1/1/pdata/1/1r

The contents of the ~/MyNMRstuff/data folder will be displayed in the left panel.

 

3.2  Open a spectrum

3.2  Open a spectrum
Browse into the ~/MyNMRstuff/data/Maria/nmr/Sample1/1 directory, and click the     button. If a processed spectrum is available, is is displayed in a tab in the right panel.

Overview of NoitaSpin main window:



The contents of the subtoolbar will differ depending on the current mode of the program.

 


3.3  Panning and zooming

3.3  Panning and zooming
To move (pan) the spectrum, simply press the left mousebutton on the spectrum and move the mouse, either let/right or up/down.

To zoom in the X-dimension, press the right mouse button in the right part of the spectrum, move the mouse to the right part of the spectrum and release the button. To zoom out in the X-dimension, double-click on the spectrum. To zoom in the Y-direction, press the right mouse button on the spectrum and move the mouse up or down.

Zooming can also be done with the zoom-buttons:   and .

 

3.4  Axis calibration

3.4  Axis calibration
Zoom in on the reference peak. Press    button in the main toolbar, then click on the reference peak. Enter the new ppm value(s) for the peak and click the OK button.
 
 

3.5  1D: Peak picking

3.5  1D: Peak picking
Press the    button in the main toolbar. Then to manually add peak labels, press the    in the subtoolbar. As long as this button remains checked, a peak label is added into the spectrum when a peak is clicked.

To delete peaks, press    in the subtoolbar. As long as this button remains checked, clicking on peak labels will delete the clicked label.

To exit this mode, press the    button in the main toolbar again.

 


3.6  1D: Integration

3.6  1D: Integration
Press the    button in the main toolbar.  To add an integral, press the    button in the subtoolbar. Then, in the spectrum, click on the position where the integral should begin and drag the cursor (while holding the mouse button down) to the position in the spectrum where the integral should end, and release the button. New integrals can be defined as long as the     button remains checked.

To delete an integral, click on the    button in the subtoolbar, then click on the integral to be deleted. This mode will remain in effect as long as the    button in the subtoolbar remains checked.

To calibrate an integral to a pre-determined value, press the    button in the subtoolbar. The click the integral in the spectrum to be calibrated, and enter the new integral value. The values of all other integrals will be changed in proportion.

To exit the integration mode, press the    button in the main toolbar again.

 

3.7  Annotations

3.7  Annotations
To annotate a spectrum, press the    button in the main toolbar. Then, to add text, press the    button in the subtoolbar. A small text editor window will pop up:



Enter the text. The font and size can be changed with the    button. Then click in the spectrum to add the text. The text will be fixed relative to the spectrum and will be zoomed together with the spectrum.

To move the text (or other annotations), press the    button in the subtoolbar. Left-click, hold and drag on a text to move it.

To delete text (or other annotations): press the    button in the subtoolbar. Click on the texts to be deleted to select them. Then press the    button in the subtoolbar.

To exit annotation mode, press the    button in the main toolbar again.
 


3.8  1D FID processing

3.8  1D FID processing
First, the FID must be opened. Go to the file tree panel to the left, click on the FID file (it has the name "fid" and sits in the experiment number folder under the sample name folder). Press the      button in the side panel. The FID will now be displayed. To change to frequency domain (do the Fourier transform), press the    button in the main toolbar.

The spectrum now needs to be phased. Press the    button in the main toolbar, and then the button for auto-phase,    , in the subtoolbar. To exit the phase mode, press the     button in the main tollbar again.
 



4.  Reference manual

4.1 General info


4.1 General info







Terminology
There are two versions of NoitaSpin available: a freeware version, available at no cost, and a full version. Both versions are closed source.

NoitaSpin accepts spectra in Bruker XWIN-NMRTM format, in a folder structure similar to that generated by Bruker software. The software can work directly on the Bruker folder structure, but cannot change Bruker files. Instead (for the full version of this software) NoitaSpin-related info will be written into NoitaSpin specific directories within the folder structure.

"FV" stands for "Full Version".

The words "folder" and "directory" are to be considered equivialent.

When variable data is present in commands, foldernames and filenames, it is in italic font:

<numeric>nsp




4.1.1 User interface components

4.1.1 User interface components





























Tabs



Help




File tree and setup button







Cursor and shift display

Spectrum selector



Overview of the NoitaSpin window:


The window contains a menu bar, a toolbutton bar, and a secondary toolbar with context-dependent content, a sidepanel for navigating the spectra folder structure and a spectrum display area. The vertical splitter between the sidepanel and the spectrum display area is moveable (left click+drag). Both toolbars are detachable (left-click + drag on the left edge of the toolbar), and can be moved to the right, left, top or bottom of the main window or to anywhere on the screen, provided that it is enabled in the windowing system. At the bottom of the window is a status bar for progress info and error messages.

The spectrum display area is tabbed, with each tab containing a spectrum display area. Each spectrum display area can display several superimposed spectra. This provides flexible spectrum comparison. The tab header displays the sample name, experiment number and process number. When the cursor is hovered over the tab header, the full path to the spectrum is displayed as a tooltip. There are several types of tabs: tabs for 1D spectra, tabs for 2D spectra, tabs with 2D spectra displayed in perpective mode, and text tabs.

Help is provided from the menu bar, which starts the default browser displaying this file. Help is also provided in the form of tooltips when the cursor is hovering on a toolbutton, and as diverse guiding texts in the spectrum display area and in the status bar.

The sidepanel is time-shared by the spectrum file tree and setup panels. When the program is started, the file tree (spectrum folder structure) will be visible. To switch between displaying the file tree and the setup panels, press the  button in the lower toolbar.

The file tree displays the folder structure more or less as-is, but it will concatenate less relevant parts of the path and display the result on one line. This is done to limit the depth of the tree, and conserve space. This is done with the base part of the path up until and including the 'data' folder, and with some other parts of the path where the folder only contains one other folder.

It was decided that it is better to display the spectrum file tree as close as possible to the real folder structure to avoid disorienting the user.

A crosshair cursor is displayed in the spectrum display area. A numeric field in the upper left corner of the display area is used to show the current shift value(s) for the crosshair cursor. The default unit used in the shift display is ppm; it can be changed to Herz from the General setup panel ###LINK.

Above the file tree there is a combobox displaying the path to the currently selected spectrum, or a text saying that all spectra in the current tab are selected. This selector only makes sense if several spectra are superimposed in the same tab.



4.1.2 Printing (FV)

4.1.2 Printing (FV)
To print all the spectra and annotations visible in the current tab, press  in the upper toolbar - an operating system
dependent print dialog window will be displayed. The printing is WYSIGWYG; the current open tab will be printed as is. The aspect ratio will be changed to fit the paper in landscape mode, though. The output is vector-based, so pixel-based resolution is not applicable. Exceptions are 2D spectra displayed in pseudocolor-mode and annotation picture bitmaps. Window functions and related info is not printed.


4.2 Reading and writing spectra and FIDs.

4.2.1 Filetree: Setting paths to spectra.

4.2.1 Filetree: Setting paths to spectra











Delete path
When the freshly installed software is started for the first time, the file tree will be empty. To set up paths to spectra, press the button. Using the activated directory (folder) selection dialog, select a directory where NMR spectra subdirectories are located. Typically, the full path to (Bruker format) spectra will look like this:

    .../data/user/nmr/Sample/ExpNo/pdata/ProcNo

Where user is the name of the owner of the spectra. ExpNo is experiment number and ProcNo is the number of the processed data set. Select the data directory. The subdirectories under data should now emerge in the file tree.

Several paths to different sets of spectra can be set up, and will show up consecutively in the file tree. The paths are immediately written to a configuration file (NoitaSpin.py) in the .NoitaSpin directory, which resides in the user's home directory (this is also true för the free version of the software).

To delete a path, select a root entry in the file tree, and press the button. A confirmation dialog will be displayed. The path is immediately removed from the .NoitaSpin/NoitaSpin.py configuration file in the users home directory (folder).



4.2.2 Opening spectra, opening new tabs

4.2.2 Opening spectra, opening new tabs
To open a spectrum, expand a sample name, select an experiment number with a single click:



Then click the  button. Another way to do the same thing is to doubleclick on the experiment number. If there is no open tab, a new tab will be created and the spectrum displayed. If a tab with a spectrum/experiment is already open, the current spectrum/experiment will be replaced with the selected spectrum/experiment.

If the  button is clicked instead, a new tab will be created even if a tab is already present. This same operation can be performed from the File menu -> Open..., but this is a much more cumbersome method, as you need to specify the NMR spectrum data file (1r, 2rr) or FID file (fid, ser). Using the filetree is recommended.

If a tab is already opened, the button will become enabled. Clicking this button instead of those above will open the spectrum in the same tab as the earlier spectrum - the newly opened spectrum will be superimposed on the earlier spectrum, but with another color. See section 4.2.4.

In all the operations described above (with the exception of opening a spectrum from the menubar File -> Open...): if there are several processed (ProcNo:s) versions under the pdata directory, then the one with the highest number will b selected (unless a lower ProcNo is explicitly selected).

For a disussion of reading/writing NS-format spectra, see 4.2.3.



4.2.3 Writing spectra and file formats (FV)

4.2.3 Writing spectra and file formats (FV)
























How to save

Saved information

















Pdata subdirs:<numeric>ns



<numeric>nsp



Saved spectrum, directory content
The full version of NotaSpin is capable to save the state of a spectrum på a directory. The directories with NS data is a parallel structure to the Bruker processed data directories under the pdata directory. The Bruker processed data directory names are numeric, and the NS parallel directory has the same number, but with a ns (or nsp) suffix:



In this way modifications to the Bruker directory structure is minimized. These directories are created when an opened spectrum is saved using the  button above the file tree. The following is saved:
Generally, the spectrum data is saved unmodified form. Instead, processing parameters are saved, often makng it possible to reverse processing. e.g. the phased spectrum is not saved, only the phase angles. The same goes for FIDs: modified FIDs are never written to disk.

When a spectrum that has already been processed by another program is opened in NoitaSpin, it will not be possible to reprocess that spectrum (in that opened instance) from the FID. Even if there exists a FID for an opened Bruker processed spectrum,  this FID will not be available for the opened instance of the spectrum in NoitaSpin. This is because the method used to process the FID to the corresponding foreign-processed spectrum is not available in NoitaSpin. These spectra will be saved by NoitaSpin into a pdata subdirectory with the name <numeric>ns.

To make a spectrum from the FID, open the fid (1D) or ser (2D) file, set parameters (if neccessary) and perform the fourier transform (see 4.9 Spectrum processing). These spectra will be saved into a pdata subdirectory with the name <numeric>nsp.

The only difference between the <numeric>ns and <numeric>nsp directories is that the latter also contains a copy of the FID (to make the directory self-contained). The contents of these directories are:

1r, 2rr
Files; spectrum data, real part (2rr is for 2D spectra)
1i, 2ri, 2ir, 2ii
Files; spectrum data, imaginary part (2ri, 2ir and 2ii present for phase-sensitive 2D spectra.
SpecPars.py
File; spectrum parameters in python format. While this file can be edited, it is discouraged as editing requires knowledge both about python and NoitaSpin internal workings.
ViewPars.py.
File; spectrum viewing parameters in python format. While this file can be edited, it is discouraged as editing requires knowledge both about python and NoitaSpin internal workings.
Texts
Directory; text annotations in html-form.
Pics
Directory; unused
fid, ser
Files; these are FIDs, present only in <numeric>nsp pdata subdirectories.





4.2.4  Superimposing spectra and spectrum copy concept

4.2.4 Super-imposing spectra and spectrum copy concept




























Current spectrum










Comparing spectra is an important aspect of spectrum interpretation. Several spectra can be opened in the same tab for direct comparision. To do this, in a tab that already has an open spectrum, select a new spectrum and click the    button. The newly opened spectrum will become the current spectrum, and will be selected in the spectrum selector: 




The current spectrum is the one on which all operations will be performed. The current spectrum can be changed using the spectrum selector drop-box above the file tree. In the picture above, the current spectrum is the red one, indicated by red color in the spectrum selector dropbox. The name of the spectrum can be seen in the tab header, and the full path to the spectrum is displayed as s tooltip when the cursor is hovered on the tab header. All spectra can also be chosen from the spectrum selector. In that case, most operations will affect all spectra in the tab (or the last loaded spectrum).

The spectra can be superimposed by adjusting the X- and Y-translations and Y zoom separately for the spectra.

Also 2D spectra can be overlaid in this manner, but in that case, at most one spectrum should be displayed as a bitmap, as several bitmaps will obscure each other, see 4.2.4.2, Spectrum display mode.



4.2.4.1  Spectrum copy concept

4.2.4.1  Spectrum copy concept
If a spectrum that is already opened (in the current tab och in another tab) is opened a second time using the  button, the newly opened instance of the spectrum will share most data (spectrum and FID data, and annotations among others) with the first opened instance of the spectrum. The only things that will be separate are X and Y translations and Y-zoom for 1D spectra, for 2D spectra X and Y translations and Z zoom for 2D spectra, and a few other display-related properties.

The main use for spectrum copies is when a 1D spectrum is used as a projection (a 1D spectrum along the axis of a 2D spectrum). Because annotations will be shared, a label used to mark a peak in a 1D spectrum will also be visible when the same spectrum is used as a projection for a 2D spectrum. See 4.2.5, 2D: Opening external 1D projections for 2D spectra.



4.2.4.2  Spectrum display mode

4.2.4.2  Spectrum display mode


2D: isolines and pseudocolor bitmaps



Spectrum scale alignment

Locking spectra together

Spreading 1D spectra in Y-dimension
The display of a 1D spectrum can be disabled by pressing the  button into inactive state.

For 2D spectra, two buttons are available: and . When  is active, a isoline display is generated. When is activated, a bitmap display (pseudocolors) is generated instead. When both buttons are inactive, the spectrum will not be display. Because bitmaps are faster to generate,  will be activated when the first 2D spectrum is opened in a tab.

For 1D spectra, the button will align the ppm (or Hz) scales in the X-dimension of all spectra in an 1D tab. For 2D spectra, both X and Y axis scales will be aligned.

For 1D spectra, the button will lock all spectra together in the X-dimension, so that they are all translated simultaneously in the X-dimension. 2D spectra will be locked in both X and Y dimensions.

The will spread all 1D spectra in a tab evenly in the Y-dimension. This command is not available for 2D spectra.



4.2.5  2D: Opening external 1D projections for 2D spectra

4.2.5  2D: Opening external 1D projections for 2D spectra



































Set projections


Adjust projections
To make the interpretation of a 2D spectrum easier, an external projection can be used, which is a 1D spectrum displayed along an axis of the 2D spectum. The projection spectrum should be of the same type nuclei as the nuclei of the 2D axis along with wich it is displayed. E.g. for a COSY spectrum, the corresponding 1D proton spectrum can be displayed along the 2D axes:



To set projections for a 2D spectrum, select the 1D spectrum that is to be used as a projection and click  to set it as a horizontal projection, or  to set it as vertical projection (or both),

To zoom a projection spectrum, put the cursor on the spectrum, right-click and hold. Drag the cursor up or down (or for a vertical projection, left or right) to zoom the spectrum. Correspondingly, to translate a projection in the intensity direction, left-click and hold, and drag the cursor up or down (or for a vertical projection, left or right) to move the projection.

The area reserved for the projection can be changed in the general setup-panel, see 4.10.1.




4.2.6 Opening FIDs

4.2.6 Opening FIDs
To open a FID, select the FID (a file with the name fid for 1D or ser for 2D) in the file tree, and click or to open it.

This is what the result looks like for a 1D spectrum:



And a 2D spectrum:



When the    button is used, several spectra can be overlaid in the same tab. When the same FID is opened several times (simultaneously), the FIDs will be opened as independent  instances that do not share data.

For information how to process FIDs, see 4.9, Spectrum processing.




4.3 Moving around: panning and zooming

4.3.1 Panning

4.3.1 Panning
For 1D and 2D spectra, to pan along the X-axis, simply put the cursor on the spectrum, left-click and hold, and drag the spectrum sideways. To pan in Y-direction, do the same, but drag the spectrum up or down. Observe, that these both operations cannot be combined into one. The program concludes from your movements if you want to move the spectrum sideways or up/down. This restriction makes it easier to perform pure sideways movement without the spectrum moving in the up/down direction and vice versa.

Panning 1D projection spectra for 2D spectra can be done in the same manner, but the movement is restricted to the Y-direction of the projection spectrum.

4.3.2 Zooming

4.3.2 Zooming


1D spectra











2D spectra
There are two ways to zoom a 1D spectrum.

1. To zoom in, first choose the zoom direction:  for X and  for Y (both can be activated simulaneoulsy). Then left-lick on the spectrum and hold, and drag the cursor sideways or up/down (or both simultaneously). To zoom out, click  or  - these will make the view two times wider per click.

2. Right-click and hold on the spectrum and drag the cursor up or down - this will zoom in or out Y direction. To zoom in X-direction, left-click om the spectrum and drag the cursor sideways. Observe that the cursor must be dragged sideways in a straight line for the command to work - it might therefore be easier to use the  button. To zoom out in X-direction, simply double-click on the spectrum.


For 2D spectra, there are also two ways:
1. To zoom in, first choose the zoom direction:   for X and  for Y (both can be activated simulaneoulsy). Then left-lick on the spectrum and hold, and drag the cursor sideways or up/down (or both simultaneously). To zoom out, click   or  - these will make the view two times wider per click.

2. Right-click and hold on the spectrum and draw a window, this will zoom in over X and Y direction. To zoom out in X- and Y- direction, simply double-click on the spectrum.

For 2D spectra, there is also a button to perform Z-direction zoom, that is how high the peaks in the spectrum will appear to be. Press the  button, and right-click and hold on the spectrum, and move the cursor up and down. Observe that if a there is a great number of lines to display in isoline display mode, the refresh of the picture might take some time. Therefore, it is easier to perform the Z-zoom in bitmap mode. To deactivate the Z-zoom, press the    button again.


4.3.3 Miscellaneous zoom/translate related functions

4.3.3 Miscellaenous zoom/translate related functions:
Align spectra

Locking axes of overlaid spectra toghether



Autoscaling
















1D: distributing spectra evenly along Y-axis
The following functions, simplify some tasks that can also be done with the usual zoom/translate control, but with greater effort.

To align the shift axes of a number of overlaid spectra (all in the same tab), press  . For 1D spectra, this will align the X-axes of the spectra, for 2D spectra, it will align both X and Y axes.

To lock axes of overlaid spectra together so that the move together when panned (even if a specific spectrum is selected in the spectrum selector box), press the  button. For 1D spectra, this will lock the X-axes together, for 2D spectra both X and Y axes will be locked together.

To autoscale a 1D or 2D spectrum along the X-axis, press the  button. The spectrum zoom and translation will be adjusted so that the spectrum fills all available horizontal space.

To autoscale a 1D spectrum along the Y-axis, press the  button. The zoom will be adjusted so that the highest peak fits inside the display area. The button will stay active - press again to deactivate. If the base line is above or below the display area, it will be moved inside the display area to become visible.

To autoscale a 2D spectrum along the Y axis, press the   button. This will have the same effect as the  button has on the X-axis.

A 2D spectrum can also be autoscaled in the Z-direction, press the  button.

If the spectrum is 'lost', that is zoom or translation is manually adjusted so that the spectrum is no longer visible, press both     and    buttons (and for a 2D spectrum, also the    button) to solve the situation.

To distribute a number of overlaid 1D spectra equidistantly along the Y-axis, press the  button. The spectra will be placed with the first opened spectrum at the top and later opened spectra below.


4.3.4  2D: Zooming 1D projections

4.3.4  2D: Zooming 1D projections 
To zoom a projection spectrum for a 2D spectrum, put the cursor on the projection spectrum, right-click and hold. Drag the cursor up or down (or for a vertical projection, left or right) to zoom the spectrum. Correspondingly, to translate a projection in the intensity direction, left-click and hold, and drag the cursor up or down (or for a vertical projection, left or right) to move the projection.




4.4 Axis calibration and shift scales

4.4 Axis calibration and shift scales   
To calibrate the x axis of a 1D spectrum, and the X and Y axes of a 2D spectrum, click the  button. Then left-click on a peak with a known shift in the spectrum. A menu dialog opens, asking for the ppm value of the peak. You can also, instead of just clicking on the peak, left-click and hold, and drag the peak to the correct place with respect to the axis(axes). A dialog will open up in this case also, where you can verify the values and click Ok.




4.5 1D: peak picking

4.5 1D: peak picking

Manual peak picking



































Automatic peak picking
Use peak picking to make peak labels indicating the shift value of peaks. To label a peak, click the  button in the main toolbar. A subtoolbar will become visible. In the subtoolbar click the  button, and then click on a peak in the spectrum:



To delete a peak label, click  and then click on the peak to be deleted.

To label a group of peaks automatically, click the  button in the peak picking subtoolbar. The left-click and hold in the spectrum, and draw a window enclosing the peaks of interest, The window should at least enlose the tops of the peaks and a sizeable area below. When the mouse button is released, the area will be searched for peaks, and the peaks labeled.

Small peaks might not be noticed with the default peak search parameters. To increase sensitivity, click the  button in the subtollbar and enter the setup panels to the left of the spektrum:



To increase sensitivity, decrease the minimum Y transient value. The first of the other two dials control the minimum number of consecutive rising (increasing Y value) spektrum points (before the peak) to recognize a peak. The last dial controls the minimum number of consecutive falling (decreasing Y value) spektrum points (after the peak) to recognize a peak.

Every second peak has a slightly different color to make it easier to read overlapping peak labels.

To delete a group of peaks labels, click  in the peak-picking subtoolbar, then left-click and hold in the spectrum, and draw a window that encloses the peaks with labels to be deleted. The program does not differ between peaks added manually or by the automatic algorithm, all peaks will be deleted.




4.6 1D: integration

4.6.1 Defining and deleting integrals

4.6. Defining and deleting integrals1
To integrate a 1D spectrum, click  in the main toolbar. A subtoolbar becomes visible. To make an integral, click  in the subtoolbar, then left-click and hold in the spectrum and move the cursor sideways to define an integral:



To delete the integral, click  in the subtollbar, then click on the integral to be deleted.



4.6.2 Moving and scaling integrals

4.6.2 Moving and scaling integrals

Moving
































Scaling






























Moving start / endpoints
To move the integral curve (not the integral label) upwards or downwards, click  in the integration subtoolbar. Then left-click and hold anywhere in the spectrum display area, and move the cursor up and down. This will move the integral curves of all integrals up or down:



To scale the integral curves, click  in the subtollbar. This function works in a similar manner to the move function, but makes the integral curves bigger (in Y-direction) or smaller:



Note that the action of the scaling function is in proportion to the current Y-zooming. So if nothing appears to happen, zoom the spectrum down (make the spectrum appear much smaller) and repeat the integral scaling operation.

It is also possible to move integral limits. Click on the  button in the subtoolbar. Then left-click and hold on the startpoint or endpoint of an integral. Move the cursor sideways to move the integral start/endpoint.

Video showing integration:

The HTML5 video element



4.6.3 Calibration

4.6.3 Calibration 
To calibrate the integrals, click  in the subtoolbar and then click on a peak with a known integral value. A dialog is shown; give the requiered value for the integral and clock Ok.



The values of all other integrals will be changed in proportion.



4.6.4  Compensation for baseline offset and rising/falling baseline

4.6.4 Compensation for baseline offset and rising/falling baseline


































Offset









 




























Slope

 
Sometimes when integrating a spectrum, the baseline values are above or below zero (an offset), or the baselline is a rising or falling slope.  This will cause the integral curve to rise or fall when integrating the baseline. Below is an integral with a severe negative offset, causing the integral curve to fall when the baseline is integrated. The baseline is also a slightly rising slope.



To compensate for the baseline offset, press the  button in the integration subtoolbar. Left-click and hold on the integral and and move the cursor upwards (or downwards) to adjust the first (left) part of the baseline integral curve until it is horizontal:



Next, take care of the problem caused by the sloping baseline: click the  button. Left-click and hold on the integral and and move the cursor upwards (or downwards) to adjust the last (right) part of the baseline integral curve until it is horizontal:



These adjustments are made per integral.





4.7 Spectrum annotations

4.7.1 General: annotations and spectrum copies

.4.7.1 General: annotations and spectrum copies









Zooming








Annotations and spectrum copy concept
The ability to annotate spectra is a key feature when assigning peaks using a group of 1D and 2D spectra, and is also very useful for other documentation and publication purposes. NoitaSpin provides three types of annotation elements: text, lines, and bitmap graphics.

To activate the annotation edit mode, press the  button in the main toolbar - an annotation subtoolbar will appear.

When annotations are attached to the spectrum, they are attached relative to the spectrum data points (for 1D Y-axis: relative to intensity). The annotations will move with the spectrum when it is translated and zoomed. Each spectrum in a tab with multiple overlaid spectra will have it's own set of annotations. To avoid clutter, only the annotations of the current spectrum is displayed in such cases. However, if the annotations of all spectra is desired to be displayed simultaneously, all spectra should be selected with the spectrum selector.

When a spectrum is zoomed, the annotations are always moved with the spectrum. Annotations can be set to also zoom with the spectrum, or the size of the annotation can be fixed, independent of spectrum zoom. Each mode has it's own advantages and drawbacks. Spectra differs from general graphics so that the X and Y zooms of the spectrum are very independent, in other words, the aspect ratio of the spectrum varies within a large range. So if an annotation is set to follow the zoom of the spectrum, it (the annotation) will become very wide when the spectrum is zoomed in the X-dimension, and very high when the spectrum is zoomed in the Y-direction. But the advantage is that the annotation will always occupy the same space relative to the spectrum. On the other hand, if an annotation is set to be of a fixed size, it will never be distorted, but annotations may overlap when the spectrum is zoomed out.

As described in 4.2.4, when the same spectrum is opened several times as different instances in the same or other tabs, these spectrum copies will share much of the data and spectrum paramters, They will also share all annotations. This is especially important when a group of spectra, e.g. 1H, 13C, COSY, HSQC and HMBC is interpreted. So, when a peak is identified in the 1H spectrum based purely on shift, it can then be marked with a text annotation next to the peak. This annotation will then show up in the 1H projection spectra of the 2D spectra, so when the carbon that the proton is attached to is identified in HSQC, that carbon can again be labeled in the 13C projection spectrum and will then show up in the 13C 1D spectrum and in all 13C projection spectra, and so on. Annotations can also be entered onto the main 2D spectrum area.


4.7.2 Lines

.4.7.2 Lines






































Line color






Line style
To add line annotations to the spectrum, press   in the subtoolbar. Then left-click and hold in the spectrum while drawing the line:



Note that the line is not symmetric; the starting point is "fixed" to the spectrum. When the line is rotated or zoomed, this point will remain fixed.
To set the color for lines, press the    button in the subtoolbar and select a color. All subseqeuently  drawn lines will have the selected color.
To change the color of already drawn lines, select the lines(see 4.7.5), then press    button in the subtoolbar and select a color. Selected lines will be recolored. 

Line style can be set from the Annotation setup panels, press  and select the "Annotation" panel. To change already drawn lines, select the styles and press "Apply". All subsequently drawn lines will have the set style. You can select continuous or dashed lines and the line thickness. It is also possible to select whether a the line thickness should be zoomable and scalable. This property is different from the general line zoomablility that is set from the annotation subtoolbar with the  button, which only controls the zoomability (does not affect scalability) of the line endpoints (for zoomable lines, the endpoints of a line move towards each other when the spectrum is zoomed out). In the pictures below, the orange line is not thickness scalable/zoomable, while the violet line is thickness scalable/zoomable. Situation before scaling to the left, after scaling of both lines to the right:

   

Note that for the blue line, the length of the dashes is proportional to the scale.


4.7.3 Text

.4.7.3 Text




























Text style










Zoomability




National characters
To add text on a spectrum, press the    button in the subtoolbar. This will active a small text editor:



To move the text to the spectrum, left click on the spectrum where the text should be.

This dialog can also be used in another way: first click on the spectrum where the text should be, or use the  button to select a text (or several texts) that should be modified. Then click the button and write/modify the text. Finally, press the  Apply button to move the text to the spectrum (or to modify selected texts in the spectrum),

The Reset button empties the text area, and the Close button closes the dialog (without modifying the text(s) in the spectrum further).

Selected text in the editor can be copied by typing control-C and pasted with control-V. These sequences can also be used to copy text to / from the editor window from / to other applications (e.g. Google Translate). Control-X deletes selected text and control-Z undoes the last operation.

To change the style of the text, press a style button above the text entry area and write text, or select a part of the text (right click and hold on the text, move cursor) and then click a style button. The  opens a font selection dialog, while the  and  buttons decrease and increase the font size, resp.  The  button  changes the font to italic button gives bold and the  button underlines. The  button opens a color selection dialog. To write subscripts and superscripts, use  and  buttons. The  button opens a dialog to insert special characters (KCharSelect). Drag characters from the dialog to the text editor window.

All text that is entered into a spectrum is default non-zoomable. This can be changed with the    button in the text editor: when pressed, the text becomes zoomable and will follow the spectrum zoom. This can also be achieved with the    button in the main toolbar, for texts selected in the spectrum.

National characters can be used in text annotations, provided that the corresponding language support is installed in the computer, here illustrated by swedish/finnish and japanese:




4.7.4 Images

.4.7.4 Images
Bitmap images (pixel based images, e.g. png, jpg or gif) can be added to a spectrum. Click the  button in the subtoolbar - a file selection dialog will appear. Select an image, and click on the spectrum at a position where the upper left corner of the image should be. If you want the picture in several places, continue clicking in the spectrum. Finally, close the dialog window using the window decoration button or the Cancel button.

Another way to use the image dialog is to first click in the spectrum where the picture should be, and then click the  button, select an image and click the Open button in the dialog. This will add the image to the picture and close the dialog.

4.7.5 Selecting objects

.4.7.5 Selecting objects
Many operations requires one or several selected annotations. For example, to change a text in the spectrum, it must first be selected, and then changed using the text editor. To select annotation objects, press  . The button will remain active until clicked again. While in this mode, left-clicking on an annotation will select it. Several annotations can be selected by clicking on them. Clicking an already selected annotation will deselect it. A group of objects can be selected by left-click and hold and drawing a window around the annotations to be selected. This operation also deselcts all other annotations.

The selected objects are marked with red rectangles. For lines, the starting point is marked with a red rectangle. To deselect all annotations, press the  button, or right-click anywhere in the spectrum.

It is also possible to select objects while the button is inactive and one of the , or    (move, scale or rot) buttons are active: simply left-click on the annotation (without draggining the cursor) to select the annotation. If an already selected annotation is clicked, it will be deseleted.  This feature can be used to save time and clicks when handling groups of annotations.


4.7.6 Zoomable and non-zoomable graphical objects

.4.7.6 Zoomable and non-zoomable graphical objects
Annotations are "attached" to the spectrum data points. The attachment point for texts and images is the upper left corner, for lines it is the starting point of the line (the point from which the line was drawn).When an annotation is zoomed, this point will remain fixed relative to the spectrum.

An annotation can be set into one of two modes: zoomable and non-zoomable. If an annotation is set to non-zoomable, the only factor that affect the size of that annotation is the scale factor for that annotation (see Scaling, 4.7.8). If an annotation is set to zoomable, there are two factor that can affect the size of that annotation: the scale factor for that annotation and the spectrum zoom.

These two modes has their own advantages and drawbacks. When a spectrum is zoomed, then for a group of annotations that follow the spectrum zoom ("zoomable"), the distances (separate for X and Y) will remain the same between annotations. The drawback will be that the annotations might become very narrow when the spectrum aspect ratio (ratio between X and Y zoom) changes radically. On the other hand, for a group of annotations that are set to "non-zoomable", the annotations will have the same aspect ratio independent of the spectrum zoom, and will never be  too narrow. The drawback is that the relative distances between the annotations changes when the spectrum zoom changes. This is illustrated below; first the start situation:



Then we set all annotations zoomable, and zoom out in X-dimension:



Everything looks ok, but the text and the picture are compressed - this compression will be very severe when the whole spectrum is visible. If we had put all annotations into non-zoomable mode, the effect after zooming out in X-dimension would have been:



All aspect ratios are now preserved, but the annotations overlap, and the internal relative distances between the annotations have changed.

To make annotations zoomable / non-zoomable, select annotation(s) (see 4.7.5), then click the  button in the subtoolbar. When the button is depressed, the annotations are zoomable.

By default, text and image annotations are non-zoomable, while lines are zoomable. This because text and images tend to become unreadable when the spectrum aspect ratio changes significantly, while lines often connect details in the spectrum, and these connections can be lost when the spectrum zoom is changed if the lines are non-zoomable.

It is possible to scale the X and Y dimensions separately for an annotation, see 4.10.4.


4.7.7 Moving objects

.4.7.7 Moving objects
To move an annotation, press the  button in the subtoolbar, the left-click and hold on an annotation and move the cursor, the annotation will follow.

It is also possible to select annotation(s) (see 4.7.5) and then press the    button in the subtoolbar. In the spectrum, left-click and hold (not on an unselected annotation), then move the cursor, the annotation(s) will follow. This is useful to move groups of annotations. The annotations will remain selected atfer the moving.

It is still possible to move an individual unselected annotation while a group of annotations are seleced, by the first method mentioned above.


4.7.8 Scaling objects

.4.7.8 Scaling objects
To scale an annotation, press the  button in the subtoolbar, the left-click and hold on an annotation and move the cursor up (smaller) or down (bigger).

It is also possible to select annotation(s) (see 4.7.5) and then press the  button in the subtoolbar. In the spectrum, left-click and hold (not on an unselected annotation), then move the cursor up (smaller) or down (bigger). This is useful to scale groups of annotations. The annotations will remain selected atfer the scaling.

It is still possible to scale an individual unselected annotation while a group of annotations are seleced, by the first method mentioned above.

Note that it is possible to scale an annotation differently in X and Y dimensions, see 4.10.4.


4.7.9 Rotating objects

.4.7.9 Rotating objects










Zooming rotated annotations
Rotation. To rotate an annotation, press the  button in the subtoolbar, the left-click and hold on an annotation and rotate the cursor around the attachment point of the annotation. The annotation will rotate around it's attachment point.

It is also possible to select annotation(s) (see 4.7.5) and then press the  button in the subtoolbar. In the spectrum, left-click and hold (not on an unselected annotation), then move the cursor around the attachment point of the last selected annotation.  This is useful to rotate groups of annotations - in that case, each annotation will rotate around it's own annotation point. The annotations will remain selected atfer rotating.

It is still possible to rotate an individual unselected annotation while a group of annotations are seleced, by the first method mentioned above.

Note that when a spectrum containing a rotated zoomable annotation is zoomed, the anotation will zoom as if it were unrotated. E.g. a group of texts before spectrum zoom, after Y zoom in, and after X zoom out:

         

After Y zoom in, the text height increases (as it would for an unrotated text), and after X zoom out, the text becomes narrower (as it would for an unrotated text). This is necessary, because if the annotation was to be zoomed as it is in the rotated state, it would skew or shear the annotation - that is, angles within the annotation would be distorted, i.e. a square would look like a rhombus:


There is a similar effect when an annotation is scaled differently in X and Y dimensions, see 4.10.4.


4.7.10 Deleting objects

.4.7.10 Deleting objects
To delete objects, they must first be selected, see  4.7.5. Then, simply press  in the subtoolbar. All selected objects will be deleted.


4.7.11 Setting object color

.4.7.11 Setting object color
The color of images cannot be set for obvious reasons, so that leaves text and lines. The color of texts is set in the text editor, see 4.7.3. This leaves lines. To set the color for lines, press the  button in the subtoolbar and selct a color. All subseqeuently  drawn lines will have the selected color.

To change the color of already drawn lines, select the lines(see 4.7.5), then press   button in the subtoolbar and select a color. Selected lines will be recolored.




4.8  2D: Perspective presentation

4.8.1 Opening a spectrum (or spectra) in perspective mode

.4.8.1 Opening a spectrum (or spectra) in perspective mode















































Overlappning spectra






































Perspective setup panel: overview
To open a 2D spectrum in perpective mode, expand a sample name, select a 2D experiment number with a single click:



Then click the  button. A new tab will be created. The generation of a perspective surface make take a while, the result should be something like this (in this case a COSY spectrum):



Another 2D spectrum can be loaded into the same perspective tab: select a spectrum (single-click) from the file-tree, and click the  button. The second spectrum will have another color and will be superimposed on the first spectrum:



Most of the controls for perspective mode is found among the setup panels - press  and select the "Perspective" panel (see figure above). The perspective setup panel is a rather large one and has a scrollbar to the right to access alll parts of it. Note that in the picture the subtoolbar has been moved up to the same place as the main toolbar - this can be accomplished by grabbing the subtoolbar by the handle (left-click and hold in the area to the left of the  button), and drag the subtoolbar upwards (see 4.1.1).

This is the contents of the perspective setup panel:



As with 2D spectra in non-perspective mode, the spectrum selector dropbox will determine which spectrum is the current spectrum. In the picture above, the blue spectrum is the current spectrum (spectrum selector is above the setup panel).


4.8.2 World mode: moving around

.4.8.2 World mode: moving around
There are two modes for mouse action; world mode and spectrum mode (see 4.8.3). In world mode, the surface is moved in world space: translation along and rotation around world X, Y or Z axes. Change mode using the "Mouse action mode" radiobuttons in the setup panel.

To translate the spectrum along world X or Y axes, left-click and hold on the spectrum, and move the cursor left/right/up/down. To translate the spectrum along the world Z axis, place the cursor on top of the spectrum and rotate the mouse wheel.

To rotate the spectrum around X or Y axes, right-click and hold on the spectrum, and move the cursor left/right/up/down. To rotate around the Z axis, use the Z-rotation dial in the setup panel.

Video showing translation in X and Y dimensions using left click and drag, translation in Z dimension using mouse roll,  rotation in X and Y dimensions using right-click and drag, and rotation in Z-dimension using setup panel rotary dial:

The HTML5 video element



4.8.3 Spectrum mode

.4.8.3 Spectrum mode
There are two modes for mouse action; world mode (see 4.8.2) and spectrum mode. In spectrum mode, the surface is moved in spectrum space: translation along and rotation around spectrum X, Y or Z axes. Change mode using the "Mouse action mode" radiobuttons in the setup panel.

To translate the spectrum along spectrum X or Y axes, left-click and hold on the spectrum, and move the cursor left/right/up/down. To translate the spectrum along the spectrum Z axis, place the cursor on top of the spectrum and rotate the mouse wheel.

To rotate around the spectrum Z axis, use the Z-rotation dial in the setup panel. There is no way to rotate around the spectrum X or Y axes.

To zoom the current spectrum in the spectrum Z axis direction, right-click and hold on the spectrum, and move the cursor up or down.

Video showing translation in X and Y dimensions using left click and drag, translation in Z dimension using mouse roll, rotation around Z-axis using setup panel rotary dial, Z-zoom using right-click + drag, view angle and perspective effect:

The HTML5 video element



4.8.4 Interlocking superimposed spectra

.4.8.4 Interlocking superimposed spectra
When several spectra are overlaid on one tab, it is often desirable to translate and rotate these together. This can always be achieved by selecting "All spectra in tab" in the spectrum selector dropbox. This will interlock the spectra so that they are tranlsated and rotated together. Note, however, that when rotating interlocked spectra, each spectrum will rotate around it's own centerpoint, so the position of the spectra will change relative to each other. The same is true for translation in spectrum movement mode: each spectrum will move along it's own axis, and therefore the inter-spectra position will change.

Sometimes using the spectrum selector dropbox  is cumbersome, to there are a couple of buttons in the subtoolbar that achieve interlocking. The   button will lock translation for all spectra together, while  the  button will lock rotation for all spectra together.


4.8.5 Autorotations

.4.8.5 Autorotations
Here the term autorotation denotes a rotation that continuous rotation without user interference. To make a spectrum or spectra rotate all by themselves, press the "Start autorot" radiobutton in the setup panel, then rotate one or all spectra. The rotation will continue, until the radiobutton "Stop autorots" is pressed.

The "Start autorot" radiobutton will be active until pressed again. While a spectrum is autorotating, and the "Start autorot" button is active, new autorotation orbits can be superimposed on the old ones by rotating the spectrum (or spectra) manually.

Lights can also be autorotated. Press the "Start autorot" button and adjust the azimuth or elevation of a light - this will cause the light to continue to rotate in the direction of the adjustment.

The "Stop autorots" radiobutton will stop all autorotations.


4.8.6 View angle and perspective

.4.8.6 View angle and perspective
These two sliders affect the general view of the spectrum. The View angle-slider can be used to zoom in and out - a small angle will zoom in. The Perspective slider adjust the 'fish-eye' effect: when the slider is at its left limit, the projection is purely orthographic ('telephoto lens'), and when the slides is at the right limit, perspective projection is used ('wide-angle lens').


4.8.7 Lighting

.4.8.7 Lighting




Light color components
There are three light-sources that can be controlled by the user. First select which light-source you want to change using the Light1, Light2 and Light3 radio buttons in the setup panel. Then change the parameters for that light: the azimuth slider controls the direction of the light in the X/Z plane. The elevation slider controls the direction in the Y/Z plane - when the slider is in the mid position, the direction of the light will be horizontal.

A light or surface color consists of two components: the diffuse color, which is the color of light reflected from the surface in all directions, and specular color, which is the light reflected from the surface according to the law of reflection (incoming angle = outgoing angle). The color of these two componens can be adjusted separately, both for lights and surfaces.

To adjust the diffuse and specular color of a light, press the corresponding  "Light diffuse color/int." button or   "Light specular color/int." button in the lights part of the setup panel. A color selection dialog will be presented.


4.8.8 Surfaces 

.4.8.8 Surfaces


Diffuse colors


Coloring algorithms



Specular color and shininess









Surface quality





Surface regeneration
For each spectrum surface, there are two colors: one color for positive peaks, and another color for negative peaks. These colors are initially set to be the same as the colors used for the spectra in normal non-perspective mode. They can be changed using the   "Material diffuse color (+)" and   "Material diffuse color (-)" buttons, which present color selection dialogs.
 
The dropbox "Material coloring method" is used to select the algorithm to se for surface coloring of the currrent spectrum.
The default method is "Spec colors", which uses the "Material diffuse color (+)" and "Material diffuse color (-)" mentioned above  to color positive resp. negative peaks. The "Checkered" algorithms uses these colors to create a checkered pattern in the X/Y plane. The rest of the methods color the peaks as a function of their heights.

A light or surface color consists of two components: the diffuse color, which is the color of light reflected from the surface in all directions, and specular color, which is the light reflected from the surface according to the law of reflection (incoming angle = outgoing angle). The color of these two components can be adjusted separately, both for lights and surfaces.

How to adjust the diffuse color of the surface was described above ("Material diffuse color" buttons). To adjust the specular color of a spectrum surface, press the    "Adjust mat. specular color" button. A color selection dialog will be presented. 

Related to the specular color is the "Adjust material shininess" slider. This slider adjusts the width of the reflection from the surface - a smaller width will make the surface seem more glassy.

The "F2/X and F1/Y surface resolution" dials control the resolution of the surfaces, that is, how many OpenGL triangles are used to display the surface. More triangles (higher value in the dials), the more accurate surface, but will also slow down the graphical processor.

The "Smoothed surface" checkbox generates a surface where the joints between triangles are smoothed out to make them (the joints) invisible. Checked by default.

Note that when the "F2/X and F1/Y surface resolution" dials or the "Smoothed surface" are changed, the button "Generate new surface" should be pressed to make the changes take effect. This button can also be pressed to make other changes to the spectrum take effect, e.g. after a new fourier transform.

Note that the surfaces are single sided - that means that the surface is transparent seen from the backside. This saves graphic processor execution time.



4.9  Spectrum processing

4.9.1 One dimensional spectra

.4.9.1 One dimensional spectra 
First, the FID must be opened; select the FID (a file with the name fid) in the file tree, and click or    to open it.

The process to make a spectrum from the FID consists of two steps: FID shaping (window function, truncation or zero fill) and fourier transform. Often a third step, phase correction, is needed.



4.9.1.1 Window functions, truncation and zero-fill

.4.9.1.1 Window functions, truncation and zero fill


Window function syntax
































Setting the window function























































Interactive adjustment of window function parameters
To apply a window function to, truncate or zero-fill the FID, press  in the main toolbar. A few buttons will appear in the subtoolbar, and some red text in the FID display area.

The syntax of the window function is that of a python arithmetic expression (see https://docs.python.org/2/reference/expressions.html). Also all functions in the python math library are available (see https://docs.python.org/2/library/math.html).
The window function will be called repeatedly, once for each point in the FID. The FID point index is available as the variable i, and almost always the window function is a function of the variable i. The window function should deliver a factor, ft for each point index i in the FID. The FID value at point i will then be multiplied by the factor for that point (the program will perform the multiplication, so the multiplication is not included in the window function).

Other variables are also available:

SW        or  F2.SWSpectral width (sweep width) in ppm
TD         or  F2.TDTime domain data size.
The size of the floating point array that i indexes.
O1         or  F2.O1Transmitter Frequency Offset, Hz
BF1       or  F2.BF1Basic transmitter frequency
ZeroFill or F2.ZeroFill
Number of zero fill points

All the other parameters from the file acqus are available in the F2 python object, e.g. F2.O2, F2.BF2 and more.

A typical window function, Exponential multiplication:

LB = 1 # Line broadening in Hz.

ft = exp(-pi * i * LB / (SW * BF1)) # SW * BF1 = sweep width in Hz


LB is a local variable, set to 1. Pi is a math library variable, 3.141592, and exp is a function delivering e to the power of x. The FID point multiplication factor is delivered in ft. The texts after # to the end of the line are comments.

The default window function is

    ft = 1

This will have no effect on the FID (multiplying all points with 1).

To set a window function, or truncate or zero-fill the FID, either press the  button, or click the "Click f(t) or this text to set window function" text in the FID display area. A dialog will appear:



Write your window function here, or use the drop-down box to select a predefined window-function (which can be edited).

To truncate the FID, make the value in the numeric entry box smaller, to zero-fill, increase the value. Python expressions can be used, e.g.

65536 * 4

Then click OK. The window function will be displayed, both in text form and as a graph, in the FID display area:



The shape of the FID is displayed as changed by the window function. The numerical parameters of the window function can be interactively adjusted: left-click and hold on a numerical parameter, and move the cursor up or down, to adjust the absolute value of the parameter up resp. down. The adjustment is in proportion to the size of the numerical value. To adjust a parameter that is zero, first change the value from zero into the correct with the editor to save time, the adjust interactively. The parameter being adjusted will be marked with a red frame:



To end the adjustment of a parameter, right-click anywhere in the FID area to remove the red marker frame around the parameter.

These interactive adjustments can also be done in frequency domain (the  button in the main toolbar depressed) and after phase correction:



The effect of the window function can be immediately seen in the spectrum as the parameter is adjusted.

To autoscale the window function graph, press  in the subtoolbar. The autoscaling will be active until the     button is pressed again.


4.9.1.2 Fourier transform

.4.8.1.2 Fourier transform 
To change the view from FID (Time Domain) to spectrum (Frequency domain), press the     button - a Fourier transform will be executed each time the   button is pressed (becoming active) to convert the FID into a spectrum. The spectrum will be shown as long s the     button is depressed - to release it, press it again. 


4.9.1.3 Phasing

.4.9.1.3 Phasing



Zero order phase


First order phase 
To enter the phase mode, press the  button - a number of phasing subtoolbar buttons will appear.

To change zero order phase (phase correction applied equally over the whole spectrum), press   in the subtoolbar, then left-click and hold on the spectrum display area, and move the cursor up/down to adjust the phase.

First order phase is a phase adjustment whose amount changes linearly over the spectrum, as a function of the shift. To adjust first order phase, a pivot point must first be set. At this point the first-order phase adjustment will be zero. Press the button. Select a sharp, big, non-overlapped peak with a good phase (if necessary, readjust the zero order phase for this peak). Then left-click on this peak. Next, click the  button, and left-click and hold n the spectrum display area, and move up/down to adjust the phase so that the whole spectrum is on phase.


4.9.2 Two dimensional spectra

.4.9.2 Two dimensional spectra 
First, the FID must be opened; select the FID (a file with the name ser) in the file tree, and click     or   to open it.

The process to make a spectrum from the FID consists of two steps: FID shaping (window function, truncation or zero fill) and fourier transform.


4.9.2.1 Window functions, truncation and zero-fill

.4.9.2.1 Window functions, truncation and zero-fill

Window function syntax





































Setting the window function






















































Interactive adjustment of parameters
To apply windows function to, truncate or zero-fill the FID, press    in the main toolbar. A few buttons will appear in the subtoolbar, and some red text in the FID display area.

The syntax of the windows function is that of a python arithmetic expression (see https://docs.python.org/2/reference/expressions.html). Also all functions in the python math library are available (see https://docs.python.org/2/library/math.html).

The two dimensions of a 2D FID are F2 (direct och acquistion dimension, X) and F1 (indirect dimension, Y). It is possible to set window functions for both dimensions, although it is not so common to use window functions for F1.

The window functions will be called repeatedly, once for each point in the FID. The FID point index is available as the variable i, and almost always the windows function are functions of the variable i. The window function should deliver a factor ft for each point index i in the FID. The FID value at point i will then be multiplied by the factors for that point (the program will perform the multiplication, so the multiplication is not included in the window function).

Other variables are also available:

SW        or  F2.SW
Spectral width (sweep width) in ppm
TD         or  F2.TD

Time domain data size.
The size of the floating point array that i indexes.
O1         or  F2.O1
O2         or  F2.O2       
Transmitter Frequency Offset, Hz
BF1       or  F2.BF1
BF2       or  F2.BF2
Basic transmitter frequency
ZeroFill or F2.ZeroFill
Number of zero fill points

All the other parameters from the file acqus are available in the F2 and F1 python objects, e.g. F1.O2, F2.RG and more.

A typical window function, Exponential multiplication:

LB = 1 # Line broadening in Hz.

ft = exp(-pi * i * LB / (SW * BF1)) # SW * BF1 = sweep width in Hz


LB is a local variable, set to 1. Pi is a math library variable, 3.141592, and exp is a function delivering e to the power of x. The FID point multiplication factor is delivered in ft. The texts after # to the end of the line are comments.

The default window function is

    ft = 1

This will have no effect on the FID (multiplying all points with 1).

To set a window function, or truncate or zero-fill the FID, first select dimension: press  or  (  is deafult), Then either press the  button, or click the "Click f(t) or this text to set window function" text in the FID display area. A dialog will appear:



Write your window function here, or use the drop-down box to select a predefined window-function (which can be edited).

To truncate the FID, make the value in the numeric entry box smaller, to zero-fill, increase the value. Python expressions can be used, e.g.

256 * 4

Then click OK. The window function will be displayed, both in text form and as a graph, in the FID display area:



The shape of the FID is displayed as changed by the window function. The numerical parameters of the window function can be interactively adjusted in the same way as for 1D spectra; see 4.9.1.1. These interactive adjustments can also be done in frequency domain (the   button in the main toolbar depressed) and after phase correction, but contrary the 1D, no automatic update of the spectrum in frequence domain will take place, as the 2D fourier transform requires too much time, Instead, press the   button two times to update the spectrum view. 
To autoscale the window function graph, press   in the subtoolbar. The autoscaling will be active until the    button is pressed again.


4.9.2.2 Fourier Transform

.4.9.2.2 Fourier transform






Methods States-TPPI and Echo-AntiEcho
To change the view from FID (Time Domain) to spectrum (Frequency domain), press the   button - a Fourier transform will be executed each time the   button is pressed (becoming active) to convert the FID into a spectrum. The spectrum will be shown as long s the   button is depressed - to release it, press it again.

In the setup panel, there is a group of parameters affecting Fourier transform of 2D spectra. Normally, only FT in F2 and F1 is performed. However, the program also reads the F2.FnMODE parameter, and if it is 5 och 6:

FnMODE
Method
Processing
 5
States-TPPI
  o FT in F2
  o Combine slicepairs:
     NewComplexSlice = EvenSlice.real+OddSlice.real*1.j
  o Sign alternate slices
     NewOddSlice = OddSlice * -1
  o Negate imaginary part:
     NewImagSlice = Slice.imag * -1
  o FT in F1
 6
Echo-AntiEcho
  o FT in F2
  o Combine slicepairs:
     NewComplexSlice = (EvenSlice+OddSlice)+(EvenSlice-OddSlice)
  o FT in F1

These parameters can also be adjusted manually and will then be executed in the same order as they appear in the setup panel:



Note that at this moment there is no hypercomplex FT available, so magnitude spectra are calculated.


4.9.2.3 Phasing

.4.9.2.3 Phasing 
To enter the phase mode, press the    button - a number of phasing subtoolbar buttons will appear. Set the spectrum display mode to bitmap, as that is much faster than isolines - the interactivity of phase adjustment requires a fast display. Check that the  button is depressed, press if not.

To change zero order phase in the F2 (X) dimension (phase correction applied equally over the whole spectrum), press    in the subtoolbar, then left-click and hold on the spectrum display area, and move the cursor left/right to adjust the phase. Do the same for the F1 (Y) dimension using the button  , but move the cursor up/down

First order phase is a phase adjustment whose amount changes linearly over the spectrum, as a function of the shift. To adjust first order phase, a pivot point must first be set. At this point the first-order phase adjustment will be zero. Press the   button. Select a sharp, big, non-overlapped peak with a good phase (if necessary, readjust the zero order phase for this peak). Then left-click on this peak. Next, click the    button to adjust the first-order phase in the F2 (X) dimension, and left-click and hold in the spectrum display area, and move left/right to adjust the phase so that the whole spectrum is on phase (in F2). Do the same for the F1 (Y) dimension using the button  , but move the cursor up/down

Video showing phasing of 2D spectrum. First X and Y zero-order phase is adjusted, while observing the center peak. Then a first-order pivot point is set and first order phase is adjusted, while observing the peak in the lower left corner:

The HTML5 video element



4.9.3 Text editing and scripting (FV) 

. 4.9.3 Text editing and scripting



Editor functions


















.









User scripts










Available variables and functions


















































Assign a button to a user script
Using the   button in the toolbar above the file tree, a normal ASCII text-file can be opened in a tab with limited text-edit capability. In the file-tree, select a text file, e.g. a pulse program:



Then press the   button (above the filetree), a text tab will appear. If no file was selected when    was pressed, an empy texttab will appear. You can move around in the text with the scrollbar to the right, with the keyboard arrow buttons, and the PgUp, PgDn buttons. Text can be selected: left-click and hold in the text, and move cursor. If you right-click on the text, a small pop-up menu will appear, allowing for cut/copy/paste and a few more operations. The Del keyboard button can be used to delete the character after the cursor, and backspace deletes the character before the cursor. To write the text to the opened file (or to another file), press the  button in the subtoolbar.

User scripts are interpreted programs that are activated from custom buttons in the main toolbar.

Scripts are written in python, and the script file should have the suffix ".py". For information on the Python programming language, see www.python.org.

A minimum of two functions should be defined in the script: Init() and Process(), both without parameters.


The Init() function is only called once per spectrum and NoitaSpin session. The Init() function should be used to initialize data structures and similar. The Init() function may be empty.


The Process() function is called each time the corresponding user script button is pressed.

There are a number of variables and functions that are available to the Init() and Process() functions. Many are numpy arrays (see www.numpy.org).

Spectrum.Points.FIDrealFID, real part, if available, otherwise None.This is the FID that is presented in the display area. One (for 1D) or two (for 2D) dimensional numpy floating point array.
Spectrum.Points.FIDimagFID, imaginary part, if available, otherwise None. One (for 1D) or two (for 2D) dimensional numpy floating point array.
Spectrum.Points.SpecRealFID, real part, if available, otherwise None. One (for 1D) or two (for 2D) dimensional numpy floating point array.
Spectrum.Points.SpecImagFID, imaginary part, if available, otherwise None. One (for 1D) or two (for 2D) dimensional numpy floating point array.
Spectrum.Points.SpecFID, phased combination of SpecReal and SpecImag. This is the sectrum that is presented in the display area. One (for 1D) or two (for 2D) dimensional numpy floating point array.
Spectrum.acqus.*Acquisition parameters for the F2 (X) dimension, as members of the Spectrum.acqus object. E.g. Spectrum.acqus.TD
Spectrum.acqu2s.*Acquisition parameters for the F1 (XY) dimension, as members of the Spectrum.acqu2s object. Available for 2D spectra. E.g. Spectrum.acqus.TD
Spectrum.procs.*Processing parameters for the F2 (X) dimension, as members of the Spectrum.procs object. E.g. Spectrum.procs.SI
Spectrum.proc2s.*Processing parameters for the F2 (X) dimension, as members of the Spectrum.procs object. Available for 2D spectra. E.g. Spectrum.proc2s.SI
Spectrum.SpecPath.SampleTxt()Function that delivers the absolute path to the sample directory of the spectrum.
Spectrum.SpecPath.ExpNumTxt()Function that delivers the absolute path to the experiment directory of the spectrum.
Spectrum.SpecPath.PdataTxt()Function that delivers the absolute path to the pdata directory of the spectrum.
Spectrum.SpecPath.ProcNumTxt()Function that delivers the absolute path to the process directory of the spectrum.
Spectrum.SpecPath.SpecTxt(FileName=None)Function that delivers the absolute path to the spectrum data. If a filename is given as a parameter, then the filename of the spectrum data file at the end of the delivered path (usually "1r" or "2rr") will be subsituted for the given filename.
Spectrum.FIDpath.SampleTxt()Function that delivers the absolute path to the sample directory of the FID.
Spectrum.FIDpath.ExpNumTxt()Function that delivers the absolute path to the experiment directory of the FID.
Spectrum.FIDpath.FIDtxt(FileName=None)Function that delivers the absolute path to the FID. If a filename is given as a parameter, then the filename of the fid at the end of the delivered path (usually "fid" or "ser") will be substituted for the given filename.

With the script visible in a text tab, press the  button in the subtoolbar. A button selection dialog appears:



Nmrglue (see www.nmrglue.com) can be used in the scripts to process data. See example script testScrip1.py - TestScript2.py in the .NoitaSpin/UserScripts directory.





4.10 Setup panels

4.10.1 General

.4.10.1General
To enter the setup panels, press the   button in the main panel. There are several setup panels available, the one that is most relevant to the task at hand is usually visible. If not, click on a panel header to select the proper one.

Setup widgets in a frame affects all spectra and tabs, while those without frames affect only the current tab or spectrum.

The General setup panel:



The first group of radio buttons selects between ppm and Herz scale for the current tab. For 2D tabs, the unit can be separately selected for X and Y,

With the slider "Adjust margin for 1D projs" the margin width reserved for the 1D projection of 2D spectra can be adjusted. The upper slider changes the margin for the current tab, the lower slides changes the margin for all tabs.


4.10.2 Fourier transform

.4.10.2 Fourier transform
The Fourier transform setup panel:



This is how the setup panel looks for 2D tabs. 1D tabs do not have any Fourier transform parameters at this point (version 00.80.03 and 00.80.04). For straight forward 2D cases like COSY, only FT in F2 and F1 radio buttons need to be active. For other cases, see 4.9.2.2.


4.10.3 2D: Z-coordinate

.4.10.3 2D: Z-coordinate
This setup panel affects how the Z-coordinate is presented in 2D spectra.



"Contour def file" selects the type of isolines for the current spectrum:

"Pseudocolor file" select the type of Z-value to pseudocolor mapping for the current spectrum. Names ending in Pos has pseudocolors only for positive peaks, while names ending in PosNeg has pseudocolors for both positive and negative Z-values.

The first two dropboxes affect only current 2D spectrum, while the lower dropboxes affect all 2D spectra in all 2D tabs.


4.10.4 Annotations

.4.10.4 Annotations 
Annotation setup panel:



The dropbox affects line style (solid, dashed, dotted and combinations), while the dial affects line thickness. For a more thorough explanation of the "Line thickness zoomable" checkbox, see  .

The "Disconnect X and Y scaling" makes it possible to scale annotation objects differently in X and Y dimensions.

Video showing effect of disconnecting X and Y scaling, then rotation followed by scaling:

The HTML5 video element


Note that rotated objects are scaled as if the were unrotated. This to avoid making square objects look like a rhombus, which would happen if the scaling was done directly in the spectrum X and Y dimensions:




4.8.5 1D: Peak picking

.4.10.5 1D: Peak picking 
Peak picking setup panel:



These parameters affect only the sensitivity of automatic peak picking: the first dial adjust the size of the transient that is needed to recognize a peak. The middle dial changes the minimum number of consecutive higher spectrum peaks (before the peak) that are needed to recognize a peak, while the last dial affects the minimum number of consecutive lower spectrum peaks that are needed to accept a peak.


4.8.6 Global setup file Constants.py (FV)

.4.10.6 Global setup file Constants.py (FV)
The file Constants.py (in the NoitaSpin program directory) contains a number of setup variables that can be changed by the user. The syntax of the file is the Python programming language. Be sure to backup at least this flie before attempting to change it. Note that not all variables can be changed, changes to some variables will cause the program to malfunction. Changes to this file will affect all instances of NoitaSpin started up after the change was made, for all users. Here are a number of the most important parameters:

FileTreeOpenMarker = 1When set to 1, marks opened spectra by invering the background of the opened file in the file tree, when 0, will only color the text.
MaxLogs = 5The maximum number of logs that will be retained in the .NoitaSpin/Logs directory.
IntegBiasAdjSensitvity  = 10000.0Mouse sensitivity when compensating integral for baseline offset ( button in main toolbar).
integSlopeAdjSensitvity = 2000.0Mouse sensitivity when compensating integral for baseline slope ( button in main toolbar).
InitialMinimumPtYtransient = 500Peak picking: default minimum peak transient size.
InitialReqAscends = 3Peak picking: default minimum number of asending points before peak.
InitialReqDescends = 3Peak picking: default minimum number of descending points after peak.
MarginRatio2Dinit = 0.152D spectra: default margin width for 1D projection spectra
IntegLabColorInterleave = 0
If 1: make every second integral slightly different color
PeakLabColorInterleave = 1If 1: make every second peak label slightly different color