Computing Resources

PAR/REC file Utilities

Johns Hopkins, MR Research and 

Kennedy Krieger Institute, F.M. Kirby Research Center

Table of Contents

Local file conversion tools


Local file conversion tools

rec2dcm Philips PAR/REC file to DICOM converter
rec_convert Philips PAR/REC file to Analyze format converter
readrec_V4 Matlab script to read PAR/REC files
sortParRec Matlab script to sort PAR/REC files transferred withut the Sort checkbox checked
nocbPar Perl script to remove contrast bolus columns from PAR filesMatlab script to sort PAR/REC files transferred withut the Sort checkbox checked
dcm2par Enhanced-MR DICOM to PAR/REC file converter (from the DICOM info page)

rec2dcm - Convert Philips PAR/REC file into DICOM format

Usage: rec2dcm

This script requires that there be a DICOM scan with the same geometry as the PAR/REC scan. Preferably the DICOM scan should have all imaging parameters exactly the same as the PAR/REC since the headers from this scan will be stripped off and attached to the image data from the REC file. The script prompts for new values for various scan and patient information fields like the study date and time and patient name but no imaging parameters are modified. New UIDs are generated for the new DICOM file(s). For standard DICOM, all new files get the same Study Instance and Series Instance UID but unique SOP Instance UIDs.

The script matches the slice, echo and dynamic number of DICOM headers to corresponding values in the PAR file for each image. For Philips DICOM files that have Philips private fields, it also matches the cardiac phase number, b-value and b-direction indexes for diffusion scans and the label indexes for ASL scans. For diffusion scans it does not check the diffusion gradient b-factor or direction vectors values - only the indexes. For ASL only 2 labels, CONTROL and LABEL are supported.

Note that private fields may be removed if images were stored to and then retrieved from a PACS. These files will not appear to be Philips images.

To Use:

For standard DICOM, the script creates a directory named "output" containing the new DICOM files with modified headers and REC file data.

For enhanced-MR DICOM, the script creates a file named "output.dcm" with the modified header and REC file data.

Requires dcmdump and dcmodify from the OFFIS DCMtk toolkit.

This script should not be used for clinical scans.

PERL Script: Any Platform

rec_convert - Convert Philips PAR/REC file into Analyze formats

Usage:  rec_convert [-o <output root>] [-n] [-3] [-q] [-d] [-s] <input-recfile>

<input-recfile>  is the Philips REC file to convert into Anaylze format. These files are trasnsferred from the scanner to your directory with names of the form <iden>_<n>_1.rec where <iden> is an identifying name selected when the data is exported into REC file form and <n> is the acquistion number. The final 1 indicates it is the first reconstruction - post-processing can increment this number.
<output root>  is an optional output filename root. If not given, the root of the input file is used. It can include a path if you want the output files in a different directory than the input REC file. The output root for 4D Analyze format has .img appended for the image data file and .hdr appended for the Analyze header file. For 3D Analyze files, the volume number is appended ahead of the .img or .hdr suffix.
-n do not swap bytes. By default byte swapping is performed to make files that are SunOS or Macintosh compatible. Do not swap bytes for use on IBM PC compatibles (all Windows variants) or DEC systems.
-3 output 3D Analyze files rather than 4D.
-q Run quietly.
-s Make a subdirectory for output files named using root of the input file.
-d Delete REC file after conversion.

The Philips REC data input file's name can have any form but must end with ".REC" or ".rec". There must be a parameter file with root name matching the rec file and ending in ".PAR" or ".par". The PAR file is used for header info and data ordering so no DICOM file is needed as for version 1.x. Since it reads the PAR file ordering information the REC file does not need to be sorted.

It can convert rec files containing magnitude, real, imaginary and/or phase data. Output file name has Philips "type" code appened when not magnitude. (_1 real, _2 imaginary, _3 phase).

Examples:


/g1/jgillen> rec_convert 20070418bsa18_6_1.rec
JHU REC File Conversion Utility v2.3.3 (samfs)
Header Info:
date: 2007.04.18  time: 18:25:25  name: bsa18
iden: none
orig: FM Kirby Research Center
desc: 
nrows: 512  ncols: 512  bits: 16
xspc: 0.449000  yspc: 0.449000  slthk: 5.000000  slspc: 0.000000
FOVap: 230.000000  FOVfh: 5.000000   FOVrh: 186.875000
echos: 1  phases: 1  dynamics: 34  slices: 1   plane: 0  TR: 6000.000000
echo phase dynamic
  1     1     34
done
/g1/jgillen>

The input file is acquistion 6 of a study identified as 20070418bsa18. The output files have the same root as the input and are in the same directory since no output root was given. All 34 dynamics for all slices are in the .img file.

/g1/jgillen> rec_convert -s -3 rl10_7_1.rec
JHU REC File Conversion Utility v2.3.3 (samfs)
Header Info:
date: 2006.04.20  time: 14:57:15  name: xxxxxx xxxxxx
iden: #-#/g2/xxxxx/Emergent2
orig: FM Kirby Research Center
desc: 
nrows: 128  ncols: 128  bits: 16
xspc: 1.875000  yspc: 1.875000  slthk: 3.000000  slspc: 0.000000
FOVap: 216.000000  FOVfh: 150.000000   FOVrh: 240.000000
echos: 1  phases: 1  dynamics: 239  slices: 50   plane: 0  TR: 3000.000000
echo phase dynamic
  1     1    239
done
/g1/jgillen> ls rl10_7_1
rl10_7_1.001.hdr  rl10_7_1.061.hdr  rl10_7_1.121.hdr  rl10_7_1.181.hdr
rl10_7_1.001.img  rl10_7_1.061.img  rl10_7_1.121.img  rl10_7_1.181.img
rl10_7_1.002.hdr  rl10_7_1.062.hdr  rl10_7_1.122.hdr  rl10_7_1.182.hdr
rl10_7_1.002.img  rl10_7_1.062.img  rl10_7_1.122.img  rl10_7_1.182.img
rl10_7_1.003.hdr  rl10_7_1.063.hdr  rl10_7_1.123.hdr  rl10_7_1.183.hdr
.
.
.
rl10_7_1.058.hdr  rl10_7_1.118.hdr  rl10_7_1.178.hdr  rl10_7_1.238.hdr
rl10_7_1.058.img  rl10_7_1.118.img  rl10_7_1.178.img  rl10_7_1.238.img
rl10_7_1.059.hdr  rl10_7_1.119.hdr  rl10_7_1.179.hdr  rl10_7_1.239.hdr
rl10_7_1.059.img  rl10_7_1.119.img  rl10_7_1.179.img  rl10_7_1.239.img
rl10_7_1.060.hdr  rl10_7_1.120.hdr  rl10_7_1.180.hdr
rl10_7_1.060.img  rl10_7_1.120.img  rl10_7_1.180.img
/g1/jgillen> 

Output is to a directory named rl10_7_1. 3D files are selected so the is a header and image file for each of the 239 dynamics containing 1 volume (time point).
Binary: Solaris2
Source: Builds on Solaris, MacOSX, Centos6, Lubuntu

readrec_V4.2 - Matlab script to read in PAR/REC files

Usage: [data, header] = readrec_V4.2 (filename [, 'quiet'][, 'par'])

This script will read in a Philips PAR/REC file. It reads in REC files with multiple data types (magnitude, phase, real and/or imaginary), and does the appropriate signal intensity scaling using the rescale slope and intercept and scale slope. The script supports PAR file versions 3, 4, 4.1, 4.2 and Corbadumper. If the REC file is gziped, it will be gunzipped into a temporary file to be read.

The variable "data" will contain the image data read from the REC file. Returned with all possible dimensions for the PAR file version. Any singleton dimensions can be eliminated using squeeze.

The variable "header" will be returned with a structure containing all parameters from the PAR file. Some header fields:


MATLAB script: Any platform

sortParRec - Matlab script to sort PAR/REC files

Usage: sortParRec (<filename>)

Occasionally files are exported to PAR/REC format without remembering to check the Sort checkbox in the Non-DICOM Export tool on the scanner. Some software that reads PAR/REC assumes the data is sorted and ignores the "idx" fields of the PAR file to determine order. This script will read unsorted PAR and REC files and write the header and data out in the usual order created on the scanner with the Sort checkbox checked.

This script requires readrec_V4_2 to read in the data.

MATLAB script: Any platform

nocbPar - Perl script to remove contrast bolus columns from PAR files

Usage: nocbPar <filename> [<filename> ...]

Starting with R5.4, Philips added several fields to the end of the PAR file table at the bottom of the file. These could include information about contrast agent administration during the scan. Some software will fail with these additional unexpected fields. There are several problems regarding these fields:

This script will remove the comment lines describing the contrast bolus fields and remove the contrast bolus data from the end of each line in the bottom PAR table. This allows existing software to read PAR files without modification.

Perl script: Any platform

Supported by NIH Grant P41 EB015909
© 2017 Kennedy Krieger Institute. Baltimore, Maryland.
All rights reserved.
Contact by email