rc_t SRALoaderFmtMake(SRALoaderFmt **self, const SRALoaderConfig *config) { rc_t rc = 0; IlluminaLoaderFmt* fmt; if( self == NULL || config == NULL ) { return RC(rcSRA, rcFormatter, rcConstructing, rcParam, rcNull); } *self = NULL; fmt = calloc(1, sizeof(*fmt)); if(fmt == NULL) { rc = RC(rcSRA, rcFormatter, rcConstructing, rcMemory, rcExhausted); LOGERR(klogInt, rc, "failed to initialize; out of memory"); return rc; } if( (rc = SRAWriterIllumina_Make(&fmt->writer, config)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize writer"); } else if( (rc = SRALoaderFmtInit(&fmt->dad, (const SRALoaderFmt_vt*)&vtIlluminaLoaderFmt)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize parent object"); } if( rc != 0 ) { IlluminaLoaderFmt_Whack(fmt, NULL); } else { fmt->skip_signal = (config->columnFilter & (efltrSIGNAL | efltrDEFAULT)); fmt->skip_noise = (config->columnFilter & (efltrNOISE | efltrDEFAULT)); fmt->skip_intensity = (config->columnFilter & (efltrINTENSITY | efltrDEFAULT)); fmt->spots_bad_allowed = config->spots_bad_allowed; fmt->spots_bad_count = 0; *self = &fmt->dad; } return rc; }
rc_t SRFIlluminaLoaderFmt_Init(SRFIlluminaLoaderFmt* self, const SRALoaderConfig* config) { rc_t rc = 0; self->fe.skip_signal = (config->columnFilter & (efltrSIGNAL | efltrDEFAULT)); self->fe.skip_noise = (config->columnFilter & (efltrNOISE | efltrDEFAULT)); self->fe.skip_intensity = (config->columnFilter & (efltrINTENSITY | efltrDEFAULT)); if( (rc = SRAWriterIllumina_Make(&self->fe.writer, config)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize writer"); } return rc; }
rc_t SRALoaderFmtMake(SRALoaderFmt **self, const SRALoaderConfig *config) { rc_t rc = 0; FastqLoaderFmt* fmt; const PlatformXML* platform; const ProcessingXML* processing; if( self == NULL || config == NULL ) { return RC(rcSRA, rcFormatter, rcConstructing, rcParam, rcNull); } *self = NULL; if( (rc = Experiment_GetProcessing(config->experiment, &processing)) != 0 || (rc = Experiment_GetPlatform(config->experiment, &platform)) != 0 ) { return rc; } fmt = calloc(1, sizeof(*fmt)); if(fmt == NULL) { rc = RC(rcSRA, rcFormatter, rcConstructing, rcMemory, rcExhausted); LOGERR(klogInt, rc, "failed to initialize; out of memory"); return rc; } if( platform->id == SRA_PLATFORM_454 ) { if( rc == 0 && (rc = SRAWriter454_Make(&fmt->w454, config)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize 454 writer"); } } else if( platform->id == SRA_PLATFORM_ION_TORRENT ) { if( rc == 0 && (rc = SRAWriterIonTorrent_Make(&fmt->wIonTorrent, config)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize Ion Torrent writer"); } } else if( (rc = SRAWriterIllumina_Make(&fmt->wIllumina, config)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize Illumina writer"); } if( rc == 0 && (rc = SRALoaderFmtInit(&fmt->dad, (const SRALoaderFmt_vt*)&vtFastqLoaderFmt)) != 0 ) { LOGERR(klogInt, rc, "failed to initialize parent object"); } if( rc != 0 ) { FastqLoaderFmt_Whack(fmt, NULL); } else { fmt->processing = processing; fmt->spots_bad_allowed = config->spots_bad_allowed; fmt->spots_bad_count = 0; *self = &fmt->dad; } return rc; }