Monday, November 11, 2013

Submit the Clinical Trial Datasets to FDA: Using the right .xpt file format

When we submit the clinical trial datasets to FDA, we need to convert the datasets in original format (.sas7bdat) to .xpt format. There are two ways to convert the SAS datasets to .xpt format. However, only the .xpt format generated with Proc Copy can be accepted by FDA.

In FDA’s Study Data Specifications, section 2 (dataset specifications) is very specific about the data format that FDA will accept. It emphasized that "SAS transport file processed by the CPORT SAS PROC cannot be processed or achieved by the FDA"

2.1 File Format

SAS XPORT Transport File format

SAS XPORT transport file format, also called Version 5 SAS transport format, is an open format published by the SAS Institute. The description of this SAS transport file format is in the public domain. Data can be translated to and from this SAS transport format to other commonly used formats without the use of programs from SAS Institute or any specific vendor.
Version

In SAS, SAS XPORT transport files are created by PROC XCOPY in Version 5 of SAS software and by the XPORT SAS PROC in Version 6 and higher of SAS Software. SAS Transport files processed by the CPORT SAS PROC cannot be processed or archived by the FDA.

Sponsors can find the record layout for SAS XPORT transport files through SAS technical support technical document TS-140. This document and additional information about the SAS Transport file layout can be found on the SAS World Wide Web page at http://www.sas.com/fda-esub.

Transformation of Datasets

SAS XPORT transport files can be converted to various other formats using commercially available off the shelf software.
SAS Transport File Extension

All SAS XPORT transport files should use .xpt as the file extension.

Compression of SAS Transport Files

SAS transport files should not be compressed. There should be one dataset per transport file.

On SAS’s FDA Standards for Electronic Submissions, the differences between two different .xpt file formats are explained in Question & Answer format:
Q. There are two SAS transport file formats. Which one is the FDA prepared to use?

A. FDA can accept data in the SAS XPORT Transport Format that is processed by the XPORT engine in Version 6 of SAS software and later, and by PROC XCOPY in Version 5. 
Q. What are the two SAS transport formats?

A. The XPORT Transport Format selected by the FDA, and the CPORT Transport Format. Both XPORT and CPORT are established mechanisms for data exchange that are well tested and well documented. They are not new or at-risk technology. The XPORT Transport Format is supported on all platforms and releases of the SAS System (it is machine and release independent) from Version 5 on. The CPORT Transport Format was invented in Version 6 and is supported from Version 6 on.

Q. Why did FDA choose the XPORT Transport Format over CPORT Transport Format?

A. XPORT is an open format, while CPORT is a proprietary format.

Q. What do you mean, the XPORT format is "open?"

A. Specifications for the XPORT transport format are in the public domain. Data can be translated to and from the XPORT transport format to other commonly used formats without the use of programs from SAS Institute or any specific vendor.

Q. Why does FDA want an open format?

A. By US law, the FDA must remain "vendor neutral." The FDA cannot endorse or require use of any specific vendor's product.

Q. What is the XPORT transport format, generally?

A. It is a text file, with record length = 80 columns. It looks and feels so much like a text file that it is a good idea to avoid using ".txt" as a file name extension so that the operating system won't treat it as a text file.
When submitting the SAS datasets to FDA, we need to be sure that the .xpt files are generated using PROC COPY. After the .xpt files are generated, we should test if the files can be opened using JMP and SAS Viewer. If the .xpt files are generated correctly, they should be automatically opened if we click the file names.
According to SAS document on PROC COPY, it is very easy to use PROC COPY to create .xpt file.
libname source 'SAS-library-on-sending-host';
                     /*indicating where the original SAS data sets (in .sas7bdat format) are*/
libname xptout xport 'filename-on-sending-host'; 
                      /*indicating where the .xpt files to be stored */
proc copy in=source out=xptout memtype=data;
run;

Alternatively, .xpt files can be created using PROC CPORT. However, .xpt files created by PROC CPORT can not be opened with JMP and can not be opened in SAS Viewer. .xpt file created by PROC CPORT must be opened and retrieved by using PROC CIMPORT.

Since FDA will only accept the .xpt files generated using PROC COPY, I see no reason to use PROC CPORT or PROC CIMPORT.

5 comments:

  1. That XPT can "easily" be generated without the need to use SAS is nonsense. Did you ever try to program that e.g. in Java? It is a nightmare. XPT uses a floating point representation that is not used by modern computers anymore. That format was for IBM mainframes. Do you still have one at home?

    ReplyDelete
    Replies
    1. so, how to read .xpt without SAS relative productions.

      Delete
    2. I've downloaded the Pfizer FOIA documents and the vast majority are in xpt format, how do I view them?

      Delete
  2. Get your SAS Institute A00-405 exam with the help of Exams4sure. All you need just visit Exams4sure and get your SAS Institute A00-405 Study Guide Material and follow their rules for better results. For more information please visit us at:

    ReplyDelete
  3. Hi Sam,

    xpt format is the SAS transport file format, you can view the .xpt files using SAS Viewer.
    SAS Viewer can be downloaded for free at https://support.sas.com/downloads/package.htm?pid=1063

    To use .xpt files for statistical analyses, you will need to convert the .xpt files into other format such as .sas7bdat format in SAS software. There is an "Excel Add-In for SASxpt" that may be used to read the .xpt file as well https://www.cdata.com/drivers/sasxpt/excel/ (but I never used it).

    ReplyDelete