#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "zone.h"
Defines | |
#define | PIX_SORT(a, b) { if ((a)>(b)) PIX_SWAP((a),(b)); } |
#define | PIX_SWAP(a, b) { INT32 temp=(a);(a)=(b);(b)=temp; } |
Functions | |
void | initZones (FILE *FLAGOUT_FILE, PIX *pixGel, struct GelInfo *GelInfo, int *ZoneID, int Verbose) |
Project to 1D (sum all pixel with same X) to establish StartPreData, StopPreData, StopData. | |
void | setNodePositions (PIX *pixGel, struct GelInfo *GelInfo, int *ZoneID, float *NodePosition, int Verbose) |
set node position to be the center of data mass location of each zone | |
void | projectZones (PIX *pixGel, INT32 **ZoneProjection, struct GelInfo *GelInfo, int *ZoneID) |
integrate data horizontally in each zone, effectively getting a 1D profile for each zone | |
void | filterZoneProjection (INT32 **ZoneProjection, struct GelInfo *GelInfo, float *Spacing) |
aggressive filtering of the zone projection using the generic spacing. |
|
aggressive filtering of the zone projection using the generic spacing. Each value is subtracted with values a half a lane spacing from it to enhance the periodic peak pattern then, each value is median filter with the neighbour lanes or neighour markers
|
|
Project to 1D (sum all pixel with same X) to establish StartPreData, StopPreData, StopData. The zoneID of pixels before StartPreData and StopData is set to be -1 divide data from StartPreData to StopData evenly into zones The StopPreData is forced to be a zone boundary find "node" of each zone - center of mass of data values in each zone
|
|
integrate data horizontally in each zone, effectively getting a 1D profile for each zone
|
|
set node position to be the center of data mass location of each zone
|