Controlling the Genie Sequence Analyzer w/ the Genie 2K Programming Library

Click For Summary
SUMMARY

The discussion focuses on utilizing the Genie 2000 Programming Library to control the Genie 2000 SequenceAnalyzer object for peak analysis. The user, Bill, successfully executes the Analyze method, which returns S_OK, indicating that all steps in the sequence are completed. However, he encounters issues with report generation, as the specified report file is not found on his system. Instead, he discovers how to extract peak area data directly using the get_NumberOfRecords and get_Param methods from the DataAccess class.

PREREQUISITES
  • Familiarity with MS Visual Studio 2008 C++ programming
  • Understanding of the Genie 2000 Programming Library
  • Knowledge of peak analysis concepts in data processing
  • Experience with handling API responses and data extraction
NEXT STEPS
  • Research the Genie 2000 Programming Library documentation for detailed API usage
  • Learn about error handling in C++ to improve robustness of the code
  • Explore methods for file I/O in C++ to troubleshoot report generation issues
  • Investigate alternative ways to visualize or export peak analysis results
USEFUL FOR

Developers working with the Genie 2000 Programming Library, data analysts performing peak analysis, and anyone seeking to automate report generation in scientific data processing.

wrdieter
Messages
6
Reaction score
0
Has anybody written programs that call the Genie 2000 SequenceAnalyzer object from the Genie 2000 Programming library?

I am trying to do a peak locate, followed by a peak area computation, then write the results to a report file. The Analyze method says the sequence executes without problems (it returns S_OK), and it claims to have executed all 4 steps in the sequence. I specified a full path to the report file and asked Analyze to generate a report, but I cannot find the report file anywhere on my system.

My code is written in MS Visual Studio 2008 C++. The actual call looks like this:

seqAnalyzer->Analyze(dataAccess, &step, bsName, VARIANT_FALSE,
VARIANT_FALSE, VARIANT_FALSE, VARIANT_TRUE, rptName, NULL);

Thanks,
Bill.
 
Engineering news on Phys.org
I still cannot get Genie2K to produce the report, but I have found out how to get the information out. In case anyone is interested, here is how to get the peak area of all of the peaks (leaving out all error checking for clarity):

Code:
long nPeaks;
float *peakArea;
dataAccess->get_NumberOfRecords(DataAccess::CAM_CLS_PEAK, (DataAccess::ParamCodes)0, &nPeaks));
peakArea = new float[nPeaks];
for (int peak = 1 ; peak <= nPeaks ; ++peak) {
[INDENT]dataAccess->get_Param(DataAccess::CAM_F_PSAREA, peak, 0, &result);
peakArea[peak] = result.fltVal;
[/INDENT]
}

The get_NumberOfRecords method retrieves the number of peaks found in the analysis, then the for loop reads the parameter associated with the area of each peak using get_Param. Other peak properties listed near CAM_F_PSAREA in the manual can be extracted similarly.

I still cannot get the API to generate the report. The analyze batch command and Gamma Acquisition & Analysis programs both generate reports for the same .ASF file. What I really wanted were numbers in the report to use elsewhere in my program. Now that I can get them more directly, I do not care so much...