Multiplets Table and Reports

Top  Previous  Next

The user will be able to get the 'Multiplets' table by following the menu 'View/Tables'. The 'Multiplets' table includes information about the name (by default Mnova will have named the multiplets in alphabetical order, but the user is able to change this order in the 'Multiplet Manager'), the chemical shift (ppm), the range (ppm), number of hydrogens, integral value, class, coupling constant values (Hz), type of multiplet (which can be changed from here) and integral calculation method.

multiplet_table

You can add/remove columns by selecting 'Setup table' in the Setup Report scroll down menu.

Click on the 'Set Type' button to change the type of all the selected multiplets in the table:

 

multiplet_filter

 

Click on the Filter button to choose in a dropdown which types of multiplets you want to display in the table. In the example below, we are displaying only impurities and artifact multiplets (but not compounds multiplets):

 

filter_mul

Double clicking on any cell of the multiplet table will display the 'Multiplet Manager', which will allow you to edit the applicable multiplet information.

The user can paste the 'Multiplets' table on the spectrum by clicking on the 'Report table' option (under the 'Report Multiplets scroll down menu) and also can delete a multiplet from this table by using the 'Delete' icon red cross when the undesired multiplet is highlighted.

Finally, the user will be able to obtain the multiplet report list by clicking on the 'Report Multiplets' button.

The same result will be obtained by right clicking on the multiplet box and selecting 'Report Multiplets' or by selecting 'Report Multiplets' in the 'Multiplet Analysis' ribbon.

How can I select the Journal template for my multiplet reports?

The format of the Multiplet Report can be selected just by selecting 'Setup Report' on the Multiplet Table. This will display the 'Multiplet Report' dialog box with a scroll down menu, which will allow the user to select the desired template (JACS, Royal Society of Chemistry, Angewandte or any other Custom Report), to use extended solvent names, peantaplets as pent or to include the assignments in the report.

multiplet report dialog

 

You can also sort the multiplets in ascending order and select the number of decimals for the chemical shift values.

 

From here you can also report your multiplets as ranges or even combine the report of the multiplets (some as ranges and other as chemical shifts). To do that, please rename the class of the multiplet (from the multiplet manager dialog box) as 'mx' (being x any letter) and this specific multiplet will be reported as a chemical shift instead of the multiplet range.

 

You can report the J coupling values in ascending order with the desired number of decimals. Uncheck the option 'Reduce J List' to show all degenerated coupling constants and check the 'Add assigned coupling atoms' if you want to include them in the report. Please note that if the matched coupling constant reported in the assignment table has a value lower than half of the digital resolution, the coupling partner info will not be added to the multiplet report. In the cases when more than one J is found in the assignments, the coupling atom will not be added.

 

You can report the multiplets as plain text or with HTML format.

 

The user will be able to copy the multiplet report to the clipboard by selecting 'Copy Multiplets' on the Multiplets table.

And then paste the multiplet report on another document just by using Ctrl+V or Cmd+V.

Copy special

 

Follow the menu 'Tools/Report/All Multiplets in Document' to generate multiplet reports in each spectral page of a document.

Report all multiplets

 

How can I create a new 'Multiplet Report' format?

 

The user will be able to change or create his own multiplet report templates; by following the menu 'Script/Edit Script'.

 

You can see below how to add a new multiplet reporter to the Mnova GUI.

 

1. Follow the menu 'Tools/Edit Script' to launch the 'Script editor'.

 

edit script menu

 

2. Write your own script or edit the example 'customMultipletReporter.qs' under the script folder of Mnova (Mnova\examples\scripts). Do not forget to include the below sentence in the script; in order to add the reporter to the program:

Env.MultipletReportersArray.push(new MyMultipletReporter());

 

We have created a variable in the scripts which saves a list of the known reporters. To see the list, just type in the editor:

print(Env.MultipletReportersArray)

 

List Reports

 

See below how to edit this script.

 

multiplet script

 

3. Save the resulting script (for example 'My Multiplet Reporter') in a directory where Mnova will be able to find it and restart Mnova. To add new script directories follow the menu 'File/Preferences/Scripts/Directories':

 

script directories

 

4. The script will be automatically added to the Mnova GUI (for example, to the 'Multiplet Table/Report Special/Setup' menu). This will allow you to select the 'Multiplet Report' format for your analysis. Of course, you can add as many different scripts as you need.

 

Multiplet report setup

Please bear in mind that the multiplet format that you select on this dialog box, will be applied always when you select the 'Multiplet Report' option; however you can select any other formats for individual reports (without changing the default one) just by following the menu 'Tools/Report/Multiplets' and selecting the desired format for that report.

 

 

Let's see how to create a new multiplet reporter script from the example 'customMultipletReporter.qs' (stored at the 'example/scripts' folder of Mnova) :

 

/******************************************************************************************************

Copyright (C) 2009 Mestrelab Research S.L. All rights reserved.

 

This file is part of the MNova scripting toolkit.

 

Authorized users of MNova Software may use this file freely, but this file is provided AS IS

with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS

FOR A PARTICULAR PURPOSE.

*****************************************************************************************************/

 

var MyMultipletReporterSettingsKey = new String("MyMultipletReporter/Custom Message");

 

/* This creates a Custom Multiplet Reporter  */

function MyMultipletReporter()

{

 MultipletReporter.call(this);

 

 var setts=new Settings(Application.mainWindow.scriptHandler.settings);

 this.customMessage = setts.value( MyMultipletReporterSettingsKey, "My Multiplet Reporter" );

 

 this.name = "My Multiplet Reporter";

 

 this.onlyElementName=false;

// Define font size and font family

 this.font = "<font style=\"font-size: 10pt; font-family: Times New Roman\">";

         

 this.nucleusTemplate="%1";

// Report header. %1 will be raplaced with nucleusString, %2  with frequency, %3 with solvent

 this.header = this.customMessage+" %1 NMR (%2 MHz, %3) &delta; ";

 //this.header = "Custom %1 NMR (%2 MHz, %3) &delta; ";

         

// Multiplet templates. %1 - delta, %2 - category, %3 - nH

 this.reportRange = true; // set to true to get multiplet range instead of delta.

 this.withoutJsTemplate = " %1 (%2, %3H)"; // multiplet template without J's

 this.withJsTemplate = " %1 (%2, %4, %3H)"; //  multiplet template with J's

 this.rangeTemplate = "%1 &ndash; %2";

         

// J's list template. %1 - list of J's

 this.jListTemplate = "<i>J</i> = %1";  

         

 this.jPrecision = 1; // J's precision

 this.deltaPrecision = 2; // delta precision

 this.mSeparator = ", "; // multiplet separator

 this.jSeparator = ", "; // J's separator        

         

 this.start = "<html><head><title>Multiplet Report</title></head><body>" + this.font;

 this.end = ".</font></body></html>";

}

 

MyMultipletReporter.prototype = new MultipletReporter();

MyMultipletReporter.prototype.toString = function() { return "MyMultipletReporter()"; }

 

//This line adds my custom reporter to the list of reporters, this means that this reporter can be used by the general functions like reportMultipletsUser or automaticMultipletReport and it can be used to generate reports  from the Multiplets Table

Env.MultipletReportersArray.push(new MyMultipletReporter());

 

//Uncomment this line to make this reporter the default reporter, the saved settings will be ignored, the user will not be able to modify the reporter from MNova

//Env.DefaultMultipletReporter = "My Multiplet Reporter";

 

 

//This function can be used to generate multiplet reports

function customReportMultipletsUser(createItem)

{

 var multipletTable = new MultipletTable(nmr.multipletTable()); // Get table of multiplets

 var spectrum;

 if(multipletTable.isValid())

         spectrum = new NMRSpectrum(multipletTable.spectrum()); // Get spectrum currently shown in the table of multiplets

 else

         spectrum = new NMRSpectrum(nmr.activeSpectrum());

 

 if( spectrum.isValid() )

 {

         var reporter = MultipletReporter.getReporterByName("My Multiplet Reporter");

         return reporter.report(spectrum, createItem);

 }

 else

         return undefined;

}

 

//Uncomment this line to use the previous function to report multiplets instead of the default one

//Env.ReportMultipletsUser = customReportMultipletsUser;

 

//Function to setup my reporter

function customReportMultipletsUserSetup()

{

 var rep = MultipletReporter.getReporterByName("My Multiplet Reporter");

 

 var diag = new Dialog();

 diag.title = "Custom Setup";

 

 var lEdit = new LineEdit();

 lEdit.text = rep.customMessage;

 diag.add(lEdit);

 

 if(diag.exec())

 {

         rep.customMessage = lEdit.text;

         settings.setValue( MyMultipletReporterSettingsKey, rep.customMessage );

 }

}

 

//Uncomment this line to use the previous function to setup the report multiplets

//Env.ReportMultipletsUserSetup = customReportMultipletsUserSetup;

 

 

Firstly, we are going to change the name of the 'Multiplet Reporter' and the message which appears at the beginning of the Multiplet Report (customMessage) to 'My Report' and 'My Journal' respectively' (see the text below highlighted in yellow)

 

/* This creates a Custom Multiplet Reporter  */

function MyMultipletReporter()

{

 MultipletReporter.call(this);

 

 var setts=new Settings(Application.mainWindow.scriptHandler.settings);

 this.customMessage = setts.value( MyMultipletReporterSettingsKey, "My Journal" );

 

 this.name = "My Report";

 

 this.onlyElementName=false;

 

this.onlyElementName=false; changing false with true, we will obtain only the element name without the atomic mass (For example: H, C instead of 1H, 13C).

 

The function: this.font = "<font style=\"font-size: 10pt; font-family: Times New Roman\">"; will define the font size and the font family of the multiplet report.

 

We are going to change the font of the multiplet report to 14pt and Arial:

 

// Define font size and font family

 this.font = "<font style=\"font-size: 14pt; font-family: Arial\">";

 

 

The line: this.header = this.customMessage+ "%1 NMR (%2 MHz, %3) &delta; "; is used to print the header of the report, where %1 will be the nucleus (H or C), %2  the frequency of the spectrometer (in MHz), and %3 the solvent, followed by a delta symbol (δ). For example: "1H NMR (500 MHz, CDCl3) δ".

Let´s modify the header of the report by putting the 'delta' symbol in italic:

 

// Report header. %1 will be replaced with nucleusString, %2  with frequency, %3 with solvent

 this.header = this.customMessage+" %1 NMR (%2 MHz, %3) <i>&delta;</i> ";

 

We can also modify the way to report the multiplet infomration

 

// Multiplet templates. %1 - delta, %2 - category, %3 - nH

 this.reportRange = true; // set to true to get multiplet range instead of delta.

 this.withoutJsTemplate = " %1 (%2, %3H)"; // multiplet template without J's

 this.withJsTemplate = " %1 (%2, %4, %3H)"; //  multiplet template with J's

 this.rangeTemplate = "%1 &ndash; %2";

 

The sentence: this.reportRange = true  is used to obtain the multiplet range instead of the chemical shift.

 

The functions: this.withoutJsTemplate = " %1 (%2, %3H)" and this.withJsTemplate = " %1 (%2, %4, %3H)" are used to customize the appearance of the multiplet report by changing the positions of %1, %2, %3H, or %4 (where, %1 means: chemical shift; %2 means: type of multiplet (s, d, t, etc); %3H means: number of hydrogens and %4 means the coupling constant value). As you can see, the first line shows a multiplet without coupling constants, (while the last line shows a multiplet with coupling constants).

 

So, if you need to obtain something like this (japanese format):

 

1H NMR (300 MHz, Solvent) δ ppm 6.43-6.22 (1 H, m), 3.17 (1 H, q, J = 7.15 Hz) etc…

 

You should modify both lines, as you can see below:

 

         this.withoutJsTemplate = %1 (%3H, %2)";

         this.withJsTemplate = " %1 (%3H, %2, %4 Hz)";

 

If you prefer to obtain something like this:

1H NMR (300 MHz, Solvent) δ ppm 1.23 (d, J = 1.2 Hz, 3 H), etc…

Just replace the original lines with:

         this.withoutJsTemplate = %1 (%2, %3H)";

         this.withJsTemplate = " %1 (%2, %4 Hz, %3H)";

 

You can also customize the coupling constant format:

 

// J's list template. %1 - list of J's

 this.jListTemplate = "<i>J</i> = %1";  

         

 this.jPrecision = 1; // J's precision

 this.deltaPrecision = 2; // delta precision

 this.mSeparator = ", "; // multiplet separator

 this.jSeparator = ", "; // J's separator        

         

 this.start = "<html><head><title>Multiplet Report</title></head><body>" + this.font;

 this.end = ".</font></body></html>";

}

 

To obtain the coupling constant symbol in normal instead of ‘italic’, just modify the script by removing the italic format (<i>J</i>). If you prefer to obtain it in "bold" just type:

         this.jListTemplate = "<b>J</b> = %1";

 

To add a superscript to get for example: 3J:

 this.jListTemplate = "<sup>3</sup><i>J</i> = %1";  

 

The following paragraph will be used to customize the appearance of the coupling constants list:

 

The second line is used for the precision of the coupling constants values, the next will be used for the precision of the chemical shift and the remaining two lines will print the separation (coma, colon, dots, etc.) between the multiplets and the coupling constants values.

 

If you need to obtain the coupling constants in descending order, replace 'true' with 'false' in the following line:

var jList = new JList(multiplet.jList()); 

jList.sort(true);

To obtain the multiplet range in ascending order, just replace the rangeMin with rangeMax in the below line of the script:

shiftStr = this.rangeTemplate.argDec(multiplet.rangeMax0'f'this.deltaPrecision).argDec(multiplet.rangeMin0'f'this.deltaPrecision);

You can select a multiplet report format as the default one, without allowing the user to modify it, just by removing the two slash symbols (before this sentence: Env.DefaultMultipletReporter = "My Multiplet Reporter";). Please bear in mind that if you do that, you will not obtain any dialog box when you follow the Menu 'Multiplets Table/Report Special/Setup'.

//Uncomment this line to make this reporter the default reporter, the saved settings will be ignored, the user will not be able to modify the reporter from MNova

Env.DefaultMultipletReporter = "My Multiplet Reporter";

 

Indeed, the variable 'Env' contains several environment variables which can be used to customize the Mnova behaviour. Typing print(Env) in the Script editor, you will get the list of the available variables. In the example below, we have only defined the 'Setup' of the 'Multiplet Reports'. All the remaining variables are 'undefined'.

 

printEnv

 

You can define the 'DefaultMultipletReport' variable by uncomment this line in the script:

Env.DefaultMultipletReporter = "My Multiplet Reporter";

 

Doing that, the user will not be able to modify the multiplet report.

 

You can define the 'ReportMultipletUser' variable by uncomment this line of the script:

Env.ReportMultipletsUser = customReportMultipletsUser;

 

Defining this variable, you will have a format for the 'multiplet report' and the 'copy special' and another different (the default one) for the report which appears on top of the 'multiplets table'.

 

The 'ReportMultipletUserSetup' is the variable defined in the menu 'Multiplet Table/Report Special/Setup'  for the 'Multiplet Report'.

 

The 'MultipletLabelFunctions' are different options (showed in the 'Multiplet Properties' dialog box) which allow the user to customize the information which appears in the multiplet boxes.