This is the structure of the datafiles generated on our venerable HP5970B
MSD using the HP-UX operating system, which is very similar to the older
PAWS datafile structure, the details of which I got from HP over a decade
ago.
.
It may be applicable to the new software.
/* HP-UX mass spectral file structure */
typedef struct HPUX_Header_Record {
char N_File_Number; /* No. of chars in File_Number */
char File_Number[3];
char N_File_String; /* No. of chars in File_String */
char File_String[19];
char N_Data_Name; /* No. of chars in Data_Name */
char Data_Name[61];
char N_Misc_Info; /* No. of chars in Misc_Info */
char Misc_Info[61];
char N_Operator; /* No. of chars in Operator */
char Operator[29];
char N_Date_Time; /* No. of chars in Date_Time */
char Date_Time[29]; /* Tue Jan 06 98 12:24:50 PM */
char N_Instr_Model; /* No. of chars in Instr_Model */
char Instr_Model[9];
char N_Inlet; /* No. of chars in Inlet */
char Inlet[9];
char N_Method_File; /* No. of chars in Method_File */
char Method_File[19];
unsigned long File_Type;
int Seq_Index;
int ALS_Bottle;
int Replicate;
int Dir_Entry_Type;
unsigned long Dir_Offset;
unsigned long Data_Offset;
unsigned long Run_Table_Offset;
unsigned long Normalization_Records_Offset;
unsigned int Extra_Records;
unsigned long Num_Data_Records;
unsigned long Start_Ret_Time;
unsigned long End_Ret_Time;
unsigned long Max_Signal;
unsigned long Min_Signal;
char Unused[214];
};
typedef struct HPUX_Norm_Record {
double Norm_Mass;
double Slope;
double Intercept;
};
typedef struct HPUX_Spectral_Record {
unsigned int N_Words1;
unsigned long Ret_Time;
unsigned int N_Words2;
unsigned int Data_Type;
unsigned int Status_Word;
unsigned int Num_Peaks;
unsigned int Base_Peak;
unsigned int B_P_Abundance;
unsigned int Mass[1000];
/* Abundance = (Value in Bits 0 to 13) * 8^(Value in Bits 14 to 15) */
unsigned int Abundance[1000];
unsigned int N_Words3;
unsigned int N_Words4;
unsigned int Unknown; /* Status word? */
unsigned long Total_Signal;
};
typedef struct HPUX_Dir_Record {
unsigned long Spectrum_Offset; /* in words */
unsigned long Ret_Time; /* milliseconds */
unsigned long Total_Signal;
};