.TH MRGANN 1 "31 July 2002" "WFDB 10.2.7" "WFDB Applications Guide" .SH NAME mrgann \- merge annotation files .SH SYNOPSIS \fBmrgann -r\fR \fIrecord\fR \fB-i\fR \fIann1 ann2\fR \fB-o\fR \fIann3\fR [ \fIoptions\fR ... ] .SH DESCRIPTION .PP \fBmrgann\fR reads a pair of annotation files (specified by \fIann1\fR, \fIann2\fR) for the specified \fIrecord\fR and writes a third annotation file (specified by \fIann3\fR) for the same \fIrecord\fR. Typical applications of \fBmrgann\fR include combining annotation files that apply to different signals within a multi-signal record, and replacing a segment of an annotation file with annotations from another file (see the examples below). \fBmrgann\fR cannot concatenate annotation files from \fIdifferent\fR records (e.g., segments of a multi-segment record); use \fBwfdbcollate\fR(1) for this purpose. If you wish to merge annotation files in order to be able to study or resolve the differences between them, \fBbxb\fR(1) (which can also merge annotation files using its \fB-o\fR or \fB-O\fR options) is almost certainly a better choice for such an application. .PP By default, the output annotation file contains copies of all annotations in each of the input files (if there are annotations with the same \fBtime\fR and \fBchan\fR fields in each input file, however, only the annotation from \fIann1\fR is copied). This behavior can be modified by command-line \fIoptions\fR, which include: .TP \fB-c\fR \fIn\fR Map (reset) the \fBchan\fR fields of all annotations from \fIann1\fR to \fIn\fR. \fBchan\fR fields may contain integers between 0 and 255 inclusive; the \fBchan\fR field often specifies the signal number of the signal with which the annotation is associated. Specify \fB-c -1\fR to disable \fBchan\fR mapping for \fIann1\fR (the default). .TP \fB-C\fR \fIn\fR Map (reset) the \fBchan\fR fields of all annotations from \fIann2\fR to \fIn\fR. Specify \fB-C -1\fR to disable \fBchan\fR mapping for \fIann2\fR (the default). .TP \fB-h\fR Print a usage summary. .TP \fB-m0\fR \fItime\fR Discard all annotations from both input annotators, beginning at \fItime\fR, until the time specified in the next \fB-m\fIx\fR option, or the end of the data if no other \fB-m\fIx\fR option is given. .TP \fB-m1\fR \fItime\fR Copy all annotations from \fIann1\fR, and discard all annotations from \fIann2\fR, beginning at \fItime\fR, until the time specified in the next \fB-m\fIx\fR option, or the end of the data if no other \fB-m\fIx\fR option is given. .TP \fB-m2\fR \fItime\fR Copy all annotations from \fIann2\fR, and discard all annotations from \fIann1\fR, beginning at \fItime\fR, until the time specified in the next \fB-m\fIx\fR option, or the end of the data if no other \fB-m\fIx\fR option is given. .TP \fB-m3\fR \fItime\fR Copy all annotations from \fIann1\fR and \fIann2\fR, beginning at \fItime\fR, until the time specified in the next \fB-m\fIx\fR option, or the end of the data if no other \fB-m\fIx\fR option is given. Annotations from \fIann2\fR that match others from \fIann1\fR in both the \fBtime\fR and \fBchan\fR fields (after any \fIchan\fR mapping has been applied, see above) are discarded. This mode is the default. .TP \fB-v\fR Verbose mode (warn about simultaneous annotations with matching \fBchan\fR fields). .PP Note that options are interpreted in left-to-right order. For this reason, if you specify more than one \fB-m\fIx\fR option, as in the second example below, be sure to specify them in time order. It is also possible to use different \fBchan\fR mapping rules during different segments of the record; to do this, specify the appropriate \fB-c\fR or \fB-C\fR option(s) \fIbefore\fR the \fB-m\fIx\fR option that specifies the time when the new mapping rules are to be applied. .SH EXAMPLES .PP To merge three sets of annotations (named \fBa0\fR, \fBa2\fR, and \fBa3\fR, one for each of signals 0, 2, and 3 of record \fB999\fR), use the following commands: .br \fBmrgann -r 999 -a a0 a2 -o tmp -c 0 -C 2\fR .br \fBmrgann -r 999 -a tmp a3 -o all -c -1 -C 3\fR .br Note that two passes are needed to merge three annotation files, since \fBmrgann\fR reads only two annotation files at a time. The first pass yields an intermediate result (annotator \fBtmp\fR); annotator \fBall\fR is the desired output. The \fB-c -1\fR option in the second command above disables \fBchan\fR mapping for annotations in \fBtmp\fR, which have already been mapped as a result of the first command; this option could have been omitted, since \fBchan\fR mapping is disabled by default. .PP To replace any annotations in a set (named \fBold\fR) during the interval between 5 minutes and 6 minutes from the beginning of record \fBxyz\fR, with annotations from another set (named \fBnew\fR), use the command: .br \fBmrgann -r xyz -a old new -o out -m1 0 -m2 5:0 -m1 6:0\fR .br In this command, the desired output is written to annotator \fBout\fR for record \fBxyz\fR. The \fB-m1 0\fR option overrides the default behavior and forces any \fBnew\fR annotations that occur before the 5-minute mark to be discarded, while existing \fBold\fR annotations are copied to \fBout\fR. Beginning at the 5-minute mark, the \fB-m2 5:0\fR option changes the rules, and the \fBold\fR annotations are discarded as the \fBnew\fR ones are copied. The rules are changed a third and final time at the 6-minute mark by the \fB-m1 6:0\fR option, which instructs \fImrgann\fR to copy the remaining \fBold\fR annotations to \fBout\fR, while once again discarding any \fBnew\fR annotations that occur during this interval. .SH ENVIRONMENT .PP It may be necessary to set and export the shell variable \fBWFDB\fR (see \fBsetwfdb\fR(1)). .SH SEE ALSO \fBbxb\fR(1), \fBsetwfdb(1), \fBwfdbcollate\fR(1) .SH AUTHOR George B. Moody (george@mit.edu) .SH SOURCE http://www.physionet.org/physiotools/wfdb/app/mrgann.c