This function supervises the entire import process. Not all official formats are supported, see the vignettes. Prior to release, this package is checked against a very large number of files in the author's collection. However, the JCAMP-DX standard allows many variations and it is difficult to anticipate all permutations. Error messages will generally let you know what's going on. If you have a file that you feel should be supported but gives an error, please file an issue at Github and share the file.

readJDX(file = "", SOFC = TRUE, debug = 0)

Arguments

file

Character. The file name to import.

SOFC

Logical. "Stop on Failed Check" The default is TRUE i.e. stop when something is not right. This ensures that correct data is returned. Change to FALSE at your own risk. NOTE: Only certain checks can be skipped via this option, as there are some parameters that must be available and correct in order to return any answer. For instance, one must end up with the same number of X and Y values. This option is provided for those advanced users who have carefully checked their original files and want to skip the required checks. It may also be useful for troubleshooting. The JCAMP-DX standard typically requires several checks of the data as it is decompressed. These checks are essential to obtaining the correct results. However, some JCAMP-DX writing programs do not follow the standard to the letter. For instance we have observed that not all JCAMP-DX writers put FIRSTY into the metadata, even though it is required by the standard. In other cases values in the file have low precision (see section on precision). Another example we have observed is NMR files where the X values are the count/index of data points, and FIRSTY is given in Hz. Since the field strength and center of the sweep frequency are needed to convert to ppm, and these are parameters not required in the standard, one cannot return an answer in either ppm or Hz automatically. In cases like this, one can set SOFC = FALSE and then manually convert the X axis.

debug

Integer. The level of debug reporting desired. For those options giving a lot of output, you may wish to consider directing the output via sinkall and then search the results for the problematic lines.

  • 1 or higher = import progress is reported.

  • 2 = details about the variable lists, compression formats and parameters that were found.

  • 3 = print the extracted X values (huge output!).

  • 4 = detailed info on the Y value processing (huge output!).

  • 5 = detailed info about processing the Y values when DUP is in use (huge output!).

  • 6 = detailed info about processing the Y values when DIF is in use (huge output!).

In cases when an error is about to stop execution, you get additional information regardless of the debug value.

Value

A list, as follows:

  • The first element is a data frame summarizing the pieces of the imported file.

  • The second element is the file metadata.

  • The third element is a integer vector giving the comment lines found (exclusive of the metdata, which typically contains many comments).

Additional elements contain the extracted data as follows:

  • If the file contains one non-NMR spectrum, or a processed NMR spectrum (i.e. only the final real data), a single data frame.

  • If the file contains the real and imaginary parts of a 1D NMR spectrum, there will be two data frames, one containing the real portion and the other the imaginary portion.

  • In all cases above, the data frame has elements x and y.

  • In the case of 2D NMR data, additional named list elements are returned including the F2 frequency values, the F1 frequency values, and a matrix containing the 2D data.

  • In the case of LC-MS or GC-MS data, a data frame is returned for each time point. The data frame has elements mz and int (intensity). Each time point is named with the time from the file.

Included Data Files

The examples make use of data files included with the package:

  • File SBO.jdx is an IR spectrum of Smart Balance Original spread (a butter substitute). The spectrum is presented in transmission format, and was recorded on a ThermoFisher instrument. The file uses AFFN compression, and was written with the JCAMP-DX 5.01 standard. Note that even though the Y-axis was recorded in percent transmission, in the JDX file it is stored on [0...1].

  • File PCRF.jdx is a 1H NMR spectrum of a hexane extract of a reduced fat potato chip. The spectrum was recorded on a JEOL instrument. The file uses SQZ DIF DUP compression, and was written with the JCAMP-DX 6.00 standard.

  • File PCRF_line265.jdx has a deliberate error in it.

  • File isasspc1.jdx is a 2D NMR file recorded on a JEOL GX 400 instrument. The file is freely available at http://www.jcamp-dx.org/.

  • File MiniDIFDUP.JDX is a small demonstration file, used in the vignettes to illustrate the decompression process. It is derived from a freely available file.

Precision

Internally, this package uses a tolerance factor when comparing values during certain checks. This is desirable because the original values in the files are text strings of varying lengths which get converted to numerical values by R. Occasionally values in the file, such as FIRSTY, are stored with low precision, and the computation of the value to be compared occurs with much greater precision. In these cases the check can fail even when the tolerance is pretty loose. In these cases one might consider setting SOFC = FALSE to allow the calculation to proceed. If you do this, be certain to check the results carefully as described under SOFC.

Y Value Check

The standard requires a "Y Value Check" when in DIF mode. Extra Y values have been appended to each line to use in the check, and the last Y value on a line must equal the first Y value on the next line IFF one is in DIF mode. After a successful check, the extra Y value must be removed. In actual practice, some vendors, at least some of the time, seem to differ as to the meaning of "being in DIF mode". In turn, this determines how the Y value check should proceed.

  • The standard says "When, and only when, the last ordinate of a line is in DIF form ... The first ordinate of the next line ... is always an actual value, equal to the last calculated ordinate of the previous line". See section 5.8.3 of the 1988 publication.

  • Taking this definition literally, the Y value check (and removal of the extra value), should occur when one sees e.g. ... DIF DIF DIF (end of line). Let's call this "literal DIF". A literal DIF is easy to detect and act on.

  • In other cases, something like ... DIF DUP DUP (end of line) is considered to be in DIF mode for Y value check purposes. In these cases we have look backwards to see if we are in DIF mode. Let's call this "relayed DIF".

  • However, some vendors may treat ... DIF DUP DUP (end of line) as not in DIF mode, and hence one should not do the Y value check and not remove any values, as this vendor would not have added an extra Y value.

  • In addition to these three possibilities, readJDX through versions 0.3.xx used a different definition, namely if there were any DIF entries anywhere on the line, then DIF mode was assumed and the Y value check carried out. This worked for many files, but not all.

  • In the 0.4.xx series, readJDX detects both the literal and relayed definitions and tries to keep moving forward as much as possible.

Performance

readJDX is not particularly fast. Priority has been given to assuring correct answers, helpful debugging messages and understandable code.

See also

Do browseVignettes("readJDX") for background information, references, supported formats, and details about the roles of each function. If you have a multiblock file (which contains multiple spectra, but not 2D NMR, LC-MS or GC-MS data sets), please see splitMultiblockDX for a function to break such files into individual files which can then be processed in the normal way.

Examples

# IR spectrum
sbo <- system.file("extdata", "SBO.jdx", package = "readJDX")
chk <- readJDX(sbo)
plot(chk[[4]]$x, chk[[4]]$y / 100,
  type = "l", main = "Original Smart Balance Spread",
  xlab = "wavenumber", ylab = "Percent Transmission"
)


# 1H NMR spectrum
pcrf <- system.file("extdata", "PCRF.jdx", package = "readJDX")
chk <- readJDX(pcrf)
plot(chk[[4]]$x, chk[[4]]$y,
  type = "l", main = "Reduced Fat Potato Chip Extract",
  xlab = "ppm", ylab = "Intensity"
)


# Capturing processing for troubleshooting
mdd <- system.file("extdata", "MiniDIFDUP.JDX", package = "readJDX")
tf <- tempfile(pattern = "Troubleshooting", fileext = "txt")
sinkall(tf)
chk <- readJDX(mdd, debug = 6)
#> 
#> 
#> Processing file /home/runner/work/_temp/Library/readJDX/extdata/MiniDIFDUP.JDX which appears to contain XYY data
#> 
#> Processing variable list...
#> 
#> 
#> 
#> ====================  Raw lines:
#> 
#>                                                                          Line_17 
#> "4861896G493jknkJlkJjJlK%jO%kNTjNKJNKMlmKq%MnKk%OjJKJKTN%NM%NK%JM%JjKTJTkMlKlKJ" 
#>                                                                          Line_18 
#> "4729586G542nNjKmJM%JmMjljKmklT%lJkN%jMLN%TMKl%Kj%mkjkTlokmqkqj0oTrj4j3j9k3k8l8" 
#>                                                                          Line_19 
#> "4611099G336m7o0q2j07j38j73k10k40k62k53k11j55p2K0J09J76K11K28K20J97J70J45J22J01" 
#>                                                                          Line_20 
#> "4563705G025Q6P0O0N1M4L8L2K8K4K1J7J8J1RTQNMTkMTjNLNMJULJKUJjJkTnmkTLTJ0OLRMULJM" 
#>                                                                          Line_21 
#> "4453117G637JTLJKTJ%JLkKLl%LjJL%KjTMJ%jLJjKl%KL%l%jKJjJKTJlj%KJ%TlKTkLTjKJTMJTK" 
#>                                                                          Line_22 
#> "4320808G688JKTkLjJOkjJTjTKkK%Uk%jLNkmLj%LlJKlOmjKkM%JT%TkNKkJjkJjLTmKJkKkLJmJL" 
#>                                                                          Line_23 
#> "4186523G715%jTKLKlJLkjKJ%jUKUkJKTljKnMJ%LmNJjUMkLkT%UjM%KJKjj3J1PnMKLJ%TKj%MkK" 
#>                                                                          Line_24 
#>  "4050263G750J%jKJTK%Jq%NKJlKlKTpNMlK%KlJ%Uj%TOj9%J8k%jKklL%lKLmMj%JNj1j2K0lQj5" 
#>                                                                          Line_25 
#> "3929802G753k9L4QmOkM%nJMkNJ%TkJKJlKTmTQk%Mk4LK3kJlJN%LkLJL%MnJKjLl8JK7lJ0MjLlj" 
#>                                                                          Line_26 
#>  "3811316G794Jk%Mk%MpKkMmTnPJ5r1J2Q0k2J7kTjqJ6rPqOmn3L1K3L%m8L3K0j4J3pOjrMTkJl%" 
#> 
#> 
#> 
#> ====================  Lines after preliminary processing:
#> 
#> $Line_17
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4861896"    "G493"       "j"       "k"       "n"       "k"       "J"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "J"       "j"       "J"       "l"       "K"       "%"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "O"       "%"       "k"       "N"       "T"       "j"       "N"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "N"       "K"       "M"       "l"       "m"       "K"       "q" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "M"       "n"       "K"       "k"       "%"       "O"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "J"       "K"       "J"       "K"       "T"       "N"       "%"       "N" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "N"       "K"       "%"       "J"       "M"       "%" 
#>       DIF       DIF       DIF       DUP       DIF       DUP       DIF       DIF 
#>       "J"       "j"       "K"       "T"       "J"       "T"       "k"       "M" 
#>       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "K"       "l"       "K"       "J" 
#> 
#> $Line_18
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4729586"    "G542"       "n"       "N"       "j"       "K"       "m"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "J"       "m"       "M"       "j"       "l"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "m"       "k"       "l"       "T"       "%"       "l"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "N"       "%"       "j"       "M"       "L"       "N"       "%" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "T"       "M"       "K"       "l"       "%"       "K"       "j"       "%" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "m"       "k"       "j"       "k"       "T"       "l"       "o"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "m"       "q"       "k"       "q"      "j0"       "o"       "T"       "r" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "j4"      "j3"      "j9"      "k3"      "k8"      "l8" 
#> 
#> $Line_19
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4611099"    "G336"      "m7"      "o0"      "q2"     "j07"     "j38"     "j73" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>     "k10"     "k40"     "k62"     "k53"     "k11"     "j55"      "p2"      "K0" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>     "J09"     "J76"     "K11"     "K28"     "K20"     "J97"     "J70"     "J45" 
#>       DIF       DIF 
#>     "J22"     "J01" 
#> 
#> $Line_20
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4563705"    "G025"      "Q6"      "P0"      "O0"      "N1"      "M4"      "L8" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "L2"      "K8"      "K4"      "K1"      "J7"      "J8"      "J1"       "R" 
#>       DUP       DIF       DIF       DIF       DUP       DIF       DIF       DUP 
#>       "T"       "Q"       "N"       "M"       "T"       "k"       "M"       "T" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "j"       "N"       "L"       "N"       "M"       "J"       "U"       "L" 
#>       DIF       DIF       DUP       DIF       DIF       DIF       DIF       DUP 
#>       "J"       "K"       "U"       "J"       "j"       "J"       "k"       "T" 
#>       DIF       DIF       DIF       DUP       DIF       DUP       DIF       DIF 
#>       "n"       "m"       "k"       "T"       "L"       "T"      "J0"       "O" 
#>       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "L"       "R"       "M"       "U"       "L"       "J"       "M" 
#> 
#> $Line_21
#>       NUM       SQZ       DIF       DUP       DIF       DIF       DIF       DUP 
#> "4453117"    "G637"       "J"       "T"       "L"       "J"       "K"       "T" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "%"       "J"       "L"       "k"       "K"       "L"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "L"       "j"       "J"       "L"       "%"       "K"       "j" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "T"       "M"       "J"       "%"       "j"       "L"       "J"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "l"       "%"       "K"       "L"       "%"       "l"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "j"       "K"       "J"       "j"       "J"       "K"       "T"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "l"       "j"       "%"       "K"       "J"       "%"       "T"       "l" 
#>       DIF       DUP       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "T"       "k"       "L"       "T"       "j"       "K"       "J" 
#>       DUP       DIF       DIF       DUP       DIF 
#>       "T"       "M"       "J"       "T"       "K" 
#> 
#> $Line_22
#>       NUM       SQZ       DIF       DIF       DUP       DIF       DIF       DIF 
#> "4320808"    "G688"       "J"       "K"       "T"       "k"       "L"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DUP       DIF       DUP 
#>       "J"       "O"       "k"       "j"       "J"       "T"       "j"       "T" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "k"       "K"       "%"       "U"       "k"       "%"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "N"       "k"       "m"       "L"       "j"       "%"       "L" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "J"       "K"       "l"       "O"       "m"       "j"       "K" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DUP       DIF 
#>       "k"       "M"       "%"       "J"       "T"       "%"       "T"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "N"       "K"       "k"       "J"       "j"       "k"       "J"       "j" 
#>       DIF       DUP       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "T"       "m"       "K"       "J"       "k"       "K"       "k" 
#>       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "J"       "m"       "J"       "L" 
#> 
#> $Line_23
#>       NUM       SQZ       DIF       DIF       DUP       DIF       DIF       DIF 
#> "4186523"    "G715"       "%"       "j"       "T"       "K"       "L"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "J"       "L"       "k"       "j"       "K"       "J"       "%" 
#>       DIF       DUP       DIF       DUP       DIF       DIF       DIF       DUP 
#>       "j"       "U"       "K"       "U"       "k"       "J"       "K"       "T" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "j"       "K"       "n"       "M"       "J"       "%"       "L" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "m"       "N"       "J"       "j"       "U"       "M"       "k"       "L" 
#>       DIF       DUP       DIF       DUP       DIF       DIF       DIF       DIF 
#>       "k"       "T"       "%"       "U"       "j"       "M"       "%"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "K"       "j"      "j3"      "J1"       "P"       "n"       "M" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "L"       "J"       "%"       "T"       "K"       "j"       "%" 
#>       DIF       DIF       DIF 
#>       "M"       "k"       "K" 
#> 
#> $Line_24
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DUP 
#> "4050263"    "G750"       "J"       "%"       "j"       "K"       "J"       "T" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "%"       "J"       "q"       "%"       "N"       "K"       "J" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "l"       "K"       "l"       "K"       "T"       "p"       "N"       "M" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DUP 
#>       "l"       "K"       "%"       "K"       "l"       "J"       "%"       "U" 
#>       DIF       DIF       DUP       DIF       DIF       DIF       DIF       DIF 
#>       "j"       "%"       "T"       "O"      "j9"       "%"      "J8"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "j"       "K"       "k"       "l"       "L"       "%"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "L"       "m"       "M"       "j"       "%"       "J"       "N" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "j1"      "j2"      "K0"       "l"       "Q"      "j5" 
#> 
#> $Line_25
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "3929802"    "G753"      "k9"      "L4"       "Q"       "m"       "O"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "n"       "J"       "M"       "k"       "N"       "J" 
#>       DIF       DUP       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "T"       "k"       "J"       "K"       "J"       "l"       "K" 
#>       DUP       DIF       DUP       DIF       DIF       DIF       DIF       DIF 
#>       "T"       "m"       "T"       "Q"       "k"       "%"       "M"      "k4" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"      "K3"       "k"       "J"       "l"       "J"       "N"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "k"       "L"       "J"       "L"       "%"       "M"       "n" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "K"       "j"       "L"      "l8"       "J"      "K7"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "J0"       "M"       "j"       "L"       "l"       "j" 
#> 
#> $Line_26
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "3811316"    "G794"       "J"       "k"       "%"       "M"       "k"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "M"       "p"       "K"       "k"       "M"       "m"       "T"       "n" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "P"      "J5"      "r1"      "J2"      "Q0"      "k2"      "J7"       "k" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "T"       "j"       "q"      "J6"       "r"       "P"       "q"       "O" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "m"      "n3"      "L1"      "K3"       "L"       "%"      "m8"      "L3" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "K0"      "j4"      "J3"       "p"       "O"       "j"       "r"       "M" 
#>       DUP       DIF       DIF       DIF       DIF 
#>       "T"       "k"       "J"       "l"       "%" 
#> 
#> 
#> Undoing DIF compression:
#> 
#>    Line_17 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4861896"    "7493"       "j"       "k"       "n"       "k"       "J"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "J"       "j"       "J"       "l"       "K"       "%"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "O"       "%"       "k"       "N"       "N"       "j"       "N"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "N"       "K"       "M"       "l"       "m"       "K"       "q" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "M"       "n"       "K"       "k"       "%"       "O"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "J"       "K"       "J"       "K"       "K"       "N"       "%"       "N" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "N"       "K"       "%"       "J"       "M"       "%" 
#>       DIF       DIF       DIF       DUP       DIF       DUP       DIF       DIF 
#>       "J"       "j"       "K"       "K"       "J"       "J"       "k"       "M" 
#>       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "K"       "l"       "K"       "J" 
#> 
#>    Line_17 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 4861896    7493    7492    7490    7485    7483    7484    7481    7479    7480 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7479    7480    7477    7479    7479    7478    7484    7484    7482    7487 
#>     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7492    7491    7496    7498    7499    7504    7506    7510    7507    7503 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7505    7497    7497    7501    7496    7498    7496    7496    7502    7501 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7502    7504    7505    7507    7509    7514    7514    7519    7523    7523 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP 
#>    7528    7530    7530    7531    7535    7535    7536    7535    7537    7539 
#>     DIF     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7540    7541    7539    7543    7540    7542    7539    7541    7542 
#> 
#> Undoing DIF compression:
#> 
#>    Line_18 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4729586"    "7542"       "n"       "N"       "j"       "K"       "m"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "J"       "m"       "M"       "j"       "l"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "m"       "k"       "l"       "l"       "%"       "l"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "N"       "%"       "j"       "M"       "L"       "N"       "%" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "M"       "K"       "l"       "%"       "K"       "j"       "%" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "m"       "k"       "j"       "k"       "k"       "l"       "o"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "m"       "q"       "k"       "q"      "j0"       "o"       "o"       "r" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "j4"      "j3"      "j9"      "k3"      "k8"      "l8" 
#> 
#>    Line_18 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 4729586    7542    7537    7542    7541    7543    7539    7540    7544    7544 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7545    7541    7545    7544    7541    7540    7542    7538    7536    7533 
#>     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7530    7530    7527    7528    7526    7531    7531    7530    7534    7537 
#>     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7542    7542    7542    7546    7548    7545    7545    7547    7546    7546 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7542    7540    7539    7537    7535    7532    7526    7524    7520    7512 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7510    7502    7492    7486    7480    7471    7457    7444    7425    7402 
#>     DIF     DIF 
#>    7374    7336 
#> 
#> Undoing DIF compression:
#> 
#>    Line_19 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4611099"    "7336"      "m7"      "o0"      "q2"     "j07"     "j38"     "j73" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>     "k10"     "k40"     "k62"     "k53"     "k11"     "j55"      "p2"      "K0" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>     "J09"     "J76"     "K11"     "K28"     "K20"     "J97"     "J70"     "J45" 
#>       DIF       DIF 
#>     "J22"     "J01" 
#> 
#>    Line_19 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 4611099    7336    7289    7229    7147    7040    6902    6729    6519    6279 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    6017    5764    5553    5398    5326    5346    5455    5631    5842    6070 
#>     DIF     DIF     DIF     DIF     DIF     DIF 
#>    6290    6487    6657    6802    6924    7025 
#> 
#> Undoing DIF compression:
#> 
#>    Line_20 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "4563705"    "7025"      "Q6"      "P0"      "O0"      "N1"      "M4"      "L8" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "L2"      "K8"      "K4"      "K1"      "J7"      "J8"      "J1"       "R" 
#>       DUP       DIF       DIF       DIF       DUP       DIF       DIF       DUP 
#>       "R"       "Q"       "N"       "M"       "M"       "k"       "M"       "M" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DUP 
#>       "j"       "N"       "L"       "N"       "M"       "J"       "J"       "J" 
#>       DIF       DIF       DIF       DUP       DUP       DIF       DIF       DIF 
#>       "L"       "J"       "K"       "K"       "K"       "J"       "j"       "J" 
#>       DIF       DUP       DIF       DIF       DIF       DUP       DIF       DUP 
#>       "k"       "k"       "n"       "m"       "k"       "k"       "L"       "L" 
#>       DIF       DIF       DIF       DIF       DIF       DUP       DUP       DIF 
#>      "J0"       "O"       "L"       "R"       "M"       "M"       "M"       "L" 
#>       DIF       DIF 
#>       "J"       "M" 
#> 
#>    Line_20 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 4563705    7025    7111    7181    7241    7292    7336    7374    7406    7434 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF 
#>    7458    7479    7496    7514    7525    7534    7543    7551    7556    7560 
#>     DUP     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7564    7562    7566    7570    7569    7574    7577    7582    7586    7587 
#>     DUP     DUP     DIF     DIF     DIF     DUP     DUP     DIF     DIF     DIF 
#>    7588    7589    7592    7593    7595    7597    7599    7600    7599    7600 
#>     DIF     DUP     DIF     DIF     DIF     DUP     DIF     DUP     DIF     DIF 
#>    7598    7596    7591    7587    7585    7583    7586    7589    7599    7605 
#>     DIF     DIF     DIF     DUP     DUP     DIF     DIF     DIF 
#>    7608    7617    7621    7625    7629    7632    7633    7637 
#> 
#> Undoing DIF compression:
#> 
#>    Line_21 passed to deDIF:
#>       NUM       SQZ       DIF       DUP       DIF       DIF       DIF       DUP 
#> "4453117"    "7637"       "J"       "J"       "L"       "J"       "K"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "%"       "J"       "L"       "k"       "K"       "L"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "L"       "j"       "J"       "L"       "%"       "K"       "j" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "j"       "M"       "J"       "%"       "j"       "L"       "J"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "l"       "%"       "K"       "L"       "%"       "l"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "j"       "K"       "J"       "j"       "J"       "K"       "K"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "l"       "j"       "%"       "K"       "J"       "%"       "%"       "l" 
#>       DIF       DUP       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "K"       "K"       "k"       "L"       "L"       "j"       "K"       "J" 
#>       DUP       DIF       DIF       DUP       DIF 
#>       "J"       "M"       "J"       "J"       "K" 
#> 
#>    Line_21 as processed by deDIF:
#>     NUM     SQZ     DIF     DUP     DIF     DIF     DIF     DUP     DIF     DIF 
#> 4453117    7637    7638    7639    7642    7643    7645    7647    7648    7648 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7649    7652    7650    7652    7655    7652    7652    7655    7654    7655 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7658    7658    7660    7659    7658    7662    7663    7663    7662    7665 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7666    7665    7667    7664    7664    7666    7669    7669    7666    7666 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF 
#>    7665    7667    7668    7667    7668    7670    7672    7673    7670    7669 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DUP     DIF     DIF 
#>    7669    7671    7672    7672    7672    7669    7671    7673    7671    7674 
#>     DUP     DIF     DIF     DIF     DUP     DIF     DIF     DUP     DIF 
#>    7677    7676    7678    7679    7680    7684    7685    7686    7688 
#> 
#> Undoing DIF compression:
#> 
#>    Line_22 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DUP       DIF       DIF       DIF 
#> "4320808"    "7688"       "J"       "K"       "K"       "k"       "L"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DUP       DIF       DUP 
#>       "J"       "O"       "k"       "j"       "J"       "J"       "j"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DUP       DIF       DIF 
#>       "K"       "k"       "K"       "%"       "%"       "%"       "k"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "j"       "L"       "N"       "k"       "m"       "L"       "j"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "l"       "J"       "K"       "l"       "O"       "m"       "j" 
#>       DIF       DIF       DIF       DIF       DIF       DUP       DIF       DUP 
#>       "K"       "k"       "M"       "%"       "J"       "J"       "%"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "N"       "K"       "k"       "J"       "j"       "k"       "J" 
#>       DIF       DIF       DUP       DIF       DIF       DIF       DIF       DIF 
#>       "j"       "L"       "L"       "m"       "K"       "J"       "k"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "L"       "J"       "m"       "J"       "L" 
#> 
#>    Line_22 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#> 4320808    7688    7689    7691    7693    7691    7694    7693    7694    7700 
#>     DIF     DIF     DIF     DUP     DIF     DUP     DIF     DIF     DIF     DIF 
#>    7698    7697    7698    7699    7698    7697    7699    7697    7699    7699 
#>     DUP     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7699    7699    7697    7697    7696    7699    7704    7702    7698    7701 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7700    7700    7703    7700    7701    7703    7700    7706    7702    7701 
#>     DIF     DIF     DIF     DIF     DIF     DUP     DIF     DUP     DIF     DIF 
#>    7703    7701    7705    7705    7706    7707    7707    7707    7705    7710 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DIF 
#>    7712    7710    7711    7710    7708    7709    7708    7711    7714    7710 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7712    7713    7711    7713    7711    7714    7715    7711    7712    7715 
#> 
#> Undoing DIF compression:
#> 
#>    Line_23 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DUP       DIF       DIF       DIF 
#> "4186523"    "7715"       "%"       "j"       "j"       "K"       "L"       "K" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "J"       "L"       "k"       "j"       "K"       "J"       "%" 
#>       DIF       DUP       DUP       DIF       DUP       DUP       DIF       DIF 
#>       "j"       "j"       "j"       "K"       "K"       "K"       "k"       "J" 
#>       DIF       DUP       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "K"       "l"       "j"       "K"       "n"       "M"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DUP 
#>       "%"       "L"       "m"       "N"       "J"       "j"       "j"       "j" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DUP       DUP 
#>       "M"       "k"       "L"       "k"       "k"       "%"       "%"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "j"       "M"       "%"       "K"       "J"       "K"       "j"      "j3" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "J1"       "P"       "n"       "M"       "K"       "L"       "J"       "%" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "K"       "j"       "%"       "M"       "k"       "K" 
#> 
#>    Line_23 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#> 4186523    7715    7715    7714    7713    7715    7718    7720    7717    7718 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DUP     DIF 
#>    7721    7719    7718    7720    7721    7721    7720    7719    7718    7720 
#>     DUP     DUP     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF 
#>    7722    7724    7722    7723    7725    7727    7724    7723    7725    7720 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DUP 
#>    7724    7725    7725    7728    7724    7729    7730    7729    7728    7727 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DUP     DUP     DIF     DIF 
#>    7731    7729    7732    7730    7728    7728    7728    7728    7727    7731 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7731    7733    7734    7736    7735    7722    7733    7740    7735    7739 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7741    7744    7745    7745    7745    7747    7746    7746    7750    7748 
#>     DIF 
#>    7750 
#> 
#> Undoing DIF compression:
#> 
#>    Line_24 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DUP 
#> "4050263"    "7750"       "J"       "%"       "j"       "K"       "J"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "%"       "J"       "q"       "%"       "N"       "K"       "J" 
#>       DIF       DIF       DIF       DIF       DUP       DIF       DIF       DIF 
#>       "l"       "K"       "l"       "K"       "K"       "p"       "N"       "M" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DUP 
#>       "l"       "K"       "%"       "K"       "l"       "J"       "%"       "%" 
#>       DUP       DIF       DIF       DUP       DIF       DIF       DIF       DIF 
#>       "%"       "j"       "%"       "%"       "O"      "j9"       "%"      "J8" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "%"       "j"       "K"       "k"       "l"       "L"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "l"       "K"       "L"       "m"       "M"       "j"       "%"       "J" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "N"      "j1"      "j2"      "K0"       "l"       "Q"      "j5" 
#> 
#>    Line_24 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DUP     DIF     DIF 
#> 4050263    7750    7751    7751    7750    7752    7753    7754    7756    7756 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7757    7749    7749    7754    7756    7757    7754    7756    7753    7755 
#>     DUP     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7757    7750    7755    7759    7756    7758    7758    7760    7757    7758 
#>     DIF     DUP     DUP     DIF     DIF     DUP     DIF     DIF     DIF     DIF 
#>    7758    7758    7758    7757    7757    7757    7763    7744    7744    7762 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7760    7760    7759    7761    7759    7756    7759    7759    7756    7758 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7761    7757    7761    7760    7760    7761    7766    7755    7743    7763 
#>     DIF     DIF     DIF 
#>    7760    7768    7753 
#> 
#> Undoing DIF compression:
#> 
#>    Line_25 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "3929802"    "7753"      "k9"      "L4"       "Q"       "m"       "O"       "k" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "M"       "%"       "n"       "J"       "M"       "k"       "N"       "J" 
#>       DIF       DUP       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "%"       "%"       "k"       "J"       "K"       "J"       "l"       "K" 
#>       DUP       DIF       DUP       DIF       DIF       DIF       DIF       DIF 
#>       "K"       "m"       "m"       "Q"       "k"       "%"       "M"      "k4" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"      "K3"       "k"       "J"       "l"       "J"       "N"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "L"       "k"       "L"       "J"       "L"       "%"       "M"       "n" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "J"       "K"       "j"       "L"      "l8"       "J"      "K7"       "l" 
#>       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "J0"       "M"       "j"       "L"       "l"       "j" 
#> 
#>    Line_25 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 3929802    7753    7724    7758    7766    7762    7768    7766    7770    7770 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DIF     DIF 
#>    7765    7766    7770    7768    7773    7774    7774    7774    7772    7773 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DUP     DIF     DIF     DIF 
#>    7775    7776    7773    7775    7777    7773    7769    7777    7775    7775 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7779    7755    7758    7781    7779    7780    7777    7778    7783    7783 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7786    7784    7787    7788    7791    7791    7795    7790    7791    7793 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7792    7795    7757    7758    7785    7782    7792    7796    7795    7798 
#>     DIF     DIF 
#>    7795    7794 
#> 
#> Undoing DIF compression:
#> 
#>    Line_26 passed to deDIF:
#>       NUM       SQZ       DIF       DIF       DIF       DIF       DIF       DIF 
#> "3811316"    "7794"       "J"       "k"       "%"       "M"       "k"       "%" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DUP       DIF 
#>       "M"       "p"       "K"       "k"       "M"       "m"       "m"       "n" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "P"      "J5"      "r1"      "J2"      "Q0"      "k2"      "J7"       "k" 
#>       DUP       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "k"       "j"       "q"      "J6"       "r"       "P"       "q"       "O" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>       "m"      "n3"      "L1"      "K3"       "L"       "%"      "m8"      "L3" 
#>       DIF       DIF       DIF       DIF       DIF       DIF       DIF       DIF 
#>      "K0"      "j4"      "J3"       "p"       "O"       "j"       "r"       "M" 
#>       DUP       DIF       DIF       DIF       DIF 
#>       "M"       "k"       "J"       "l"       "%" 
#> 
#>    Line_26 as processed by deDIF:
#>     NUM     SQZ     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#> 3811316    7794    7795    7793    7793    7797    7795    7795    7799    7792 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7794    7792    7796    7792    7788    7783    7790    7805    7714    7726 
#>     DIF     DIF     DIF     DIF     DUP     DIF     DIF     DIF     DIF     DIF 
#>    7806    7784    7801    7799    7797    7796    7788    7804    7795    7802 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF 
#>    7794    7800    7796    7743    7774    7797    7800    7800    7752    7785 
#>     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DIF     DUP     DIF 
#>    7805    7791    7804    7797    7803    7802    7793    7797    7801    7799 
#>     DIF     DIF     DIF 
#>    7800    7797    7797 
#> 
#> Carrying out Y value checks...
#> 
#> yValueCheck sees a literal DIF mode on Line_17 
#> yValueCheck is removing the last value, 7542 from Line_17 
#> 
#> yValueCheck sees a literal DIF mode on Line_18 
#> yValueCheck is removing the last value, 7336 from Line_18 
#> 
#> yValueCheck sees a literal DIF mode on Line_19 
#> yValueCheck is removing the last value, 7025 from Line_19 
#> 
#> yValueCheck sees a literal DIF mode on Line_20 
#> yValueCheck is removing the last value, 7637 from Line_20 
#> 
#> yValueCheck sees a literal DIF mode on Line_21 
#> yValueCheck is removing the last value, 7688 from Line_21 
#> 
#> yValueCheck sees a literal DIF mode on Line_22 
#> yValueCheck is removing the last value, 7715 from Line_22 
#> 
#> yValueCheck sees a literal DIF mode on Line_23 
#> yValueCheck is removing the last value, 7750 from Line_23 
#> 
#> yValueCheck sees a literal DIF mode on Line_24 
#> yValueCheck is removing the last value, 7753 from Line_24 
#> 
#> yValueCheck sees a literal DIF mode on Line_25 
#> yValueCheck is removing the last value, 7794 from Line_25 
#> 
#> 
#> yValueCheck: Line_26 does not appear to be a checkpoint line
#> 
#> 
#> ...Y value checks completed
#> 
#> 
#> 
#> ====================  Lines after full processing to numeric:
#> 
#> $Line_17
#>  [1] 4861896    7493    7492    7490    7485    7483    7484    7481    7479
#> [10]    7480    7479    7480    7477    7479    7479    7478    7484    7484
#> [19]    7482    7487    7492    7491    7496    7498    7499    7504    7506
#> [28]    7510    7507    7503    7505    7497    7497    7501    7496    7498
#> [37]    7496    7496    7502    7501    7502    7504    7505    7507    7509
#> [46]    7514    7514    7519    7523    7523    7528    7530    7530    7531
#> [55]    7535    7535    7536    7535    7537    7539    7540    7541    7539
#> [64]    7543    7540    7542    7539    7541
#> 
#> $Line_18
#>  [1] 4729586    7542    7537    7542    7541    7543    7539    7540    7544
#> [10]    7544    7545    7541    7545    7544    7541    7540    7542    7538
#> [19]    7536    7533    7530    7530    7527    7528    7526    7531    7531
#> [28]    7530    7534    7537    7542    7542    7542    7546    7548    7545
#> [37]    7545    7547    7546    7546    7542    7540    7539    7537    7535
#> [46]    7532    7526    7524    7520    7512    7510    7502    7492    7486
#> [55]    7480    7471    7457    7444    7425    7402    7374
#> 
#> $Line_19
#>  [1] 4611099    7336    7289    7229    7147    7040    6902    6729    6519
#> [10]    6279    6017    5764    5553    5398    5326    5346    5455    5631
#> [19]    5842    6070    6290    6487    6657    6802    6924
#> 
#> $Line_20
#>  [1] 4563705    7025    7111    7181    7241    7292    7336    7374    7406
#> [10]    7434    7458    7479    7496    7514    7525    7534    7543    7551
#> [19]    7556    7560    7564    7562    7566    7570    7569    7574    7577
#> [28]    7582    7586    7587    7588    7589    7592    7593    7595    7597
#> [37]    7599    7600    7599    7600    7598    7596    7591    7587    7585
#> [46]    7583    7586    7589    7599    7605    7608    7617    7621    7625
#> [55]    7629    7632    7633
#> 
#> $Line_21
#>  [1] 4453117    7637    7638    7639    7642    7643    7645    7647    7648
#> [10]    7648    7649    7652    7650    7652    7655    7652    7652    7655
#> [19]    7654    7655    7658    7658    7660    7659    7658    7662    7663
#> [28]    7663    7662    7665    7666    7665    7667    7664    7664    7666
#> [37]    7669    7669    7666    7666    7665    7667    7668    7667    7668
#> [46]    7670    7672    7673    7670    7669    7669    7671    7672    7672
#> [55]    7672    7669    7671    7673    7671    7674    7677    7676    7678
#> [64]    7679    7680    7684    7685    7686
#> 
#> $Line_22
#>  [1] 4320808    7688    7689    7691    7693    7691    7694    7693    7694
#> [10]    7700    7698    7697    7698    7699    7698    7697    7699    7697
#> [19]    7699    7699    7699    7699    7697    7697    7696    7699    7704
#> [28]    7702    7698    7701    7700    7700    7703    7700    7701    7703
#> [37]    7700    7706    7702    7701    7703    7701    7705    7705    7706
#> [46]    7707    7707    7707    7705    7710    7712    7710    7711    7710
#> [55]    7708    7709    7708    7711    7714    7710    7712    7713    7711
#> [64]    7713    7711    7714    7715    7711    7712
#> 
#> $Line_23
#>  [1] 4186523    7715    7715    7714    7713    7715    7718    7720    7717
#> [10]    7718    7721    7719    7718    7720    7721    7721    7720    7719
#> [19]    7718    7720    7722    7724    7722    7723    7725    7727    7724
#> [28]    7723    7725    7720    7724    7725    7725    7728    7724    7729
#> [37]    7730    7729    7728    7727    7731    7729    7732    7730    7728
#> [46]    7728    7728    7728    7727    7731    7731    7733    7734    7736
#> [55]    7735    7722    7733    7740    7735    7739    7741    7744    7745
#> [64]    7745    7745    7747    7746    7746    7750    7748
#> 
#> $Line_24
#>  [1] 4050263    7750    7751    7751    7750    7752    7753    7754    7756
#> [10]    7756    7757    7749    7749    7754    7756    7757    7754    7756
#> [19]    7753    7755    7757    7750    7755    7759    7756    7758    7758
#> [28]    7760    7757    7758    7758    7758    7758    7757    7757    7757
#> [37]    7763    7744    7744    7762    7760    7760    7759    7761    7759
#> [46]    7756    7759    7759    7756    7758    7761    7757    7761    7760
#> [55]    7760    7761    7766    7755    7743    7763    7760    7768
#> 
#> $Line_25
#>  [1] 3929802    7753    7724    7758    7766    7762    7768    7766    7770
#> [10]    7770    7765    7766    7770    7768    7773    7774    7774    7774
#> [19]    7772    7773    7775    7776    7773    7775    7777    7773    7769
#> [28]    7777    7775    7775    7779    7755    7758    7781    7779    7780
#> [37]    7777    7778    7783    7783    7786    7784    7787    7788    7791
#> [46]    7791    7795    7790    7791    7793    7792    7795    7757    7758
#> [55]    7785    7782    7792    7796    7795    7798    7795    7794
#> 
#> $Line_26
#>  [1] 3811316    7795    7793    7793    7797    7795    7795    7799    7792
#> [10]    7794    7792    7796    7792    7788    7783    7790    7805    7714
#> [19]    7726    7806    7784    7801    7799    7797    7796    7788    7804
#> [28]    7795    7802    7794    7800    7796    7743    7774    7797    7800
#> [37]    7800    7752    7785    7805    7791    7804    7797    7803    7802
#> [46]    7793    7797    7801    7799    7800    7797    7797
#> 
#> 
#> Done processing  /home/runner/work/_temp/Library/readJDX/extdata/MiniDIFDUP.JDX 
sinkall() # close the file connection
file.show(tf)

# 2D HETCORR spectrum
if (FALSE) {
nmr2d <- system.file("extdata", "isasspc1.dx", package = "readJDX")
chk <- readJDX(nmr2d)
contour(chk$Matrix, drawlabels = FALSE) # default contours not optimal
}

if (FALSE) {
# Line 265 has an N -> G error.  Try with various levels of debug.
# Even with debug = 0 you get useful diagnostic info.
problem <- system.file("extdata", "PCRF_line265.jdx", package = "readJDX")
chk <- readJDX(problem)
}