A Composite Illumination Invariant Color Feature and Its Application to Partial Image Matching In camera-based object recognition and classification, surface color is one of the most important characteristics. However, apparent object color may differ significantly according to the illumination and surface conditions. Such a variation can be an obstacle in utilizing color features. Geusebroek et al.'s color invariants can be a powerful tool for characterizing the object color regardless of illumination and surface conditions. In this work, we analyze the estimation process of the color invariants from RGB images, and propose a novel invariant feature of color based on the elementary invariants to meet the circular continuity residing in the mapping between colors and their invariants. Experiments show that the use of the proposed invariant in combination with luminance, contributes to improve the retrieval performances of partial object image matching under varying illumination conditions. In image matching and search used in applications such as template-based object search and content-based image retrieval (CBIR), the color of the object can be an important descriptor for finding the matching object. However, the apparent color of objects can change drastically according to illumination, surface type and observation condition. Apparent color differences due to illumination conditions may be compensated to a limited extent by using methods such as local histogram equalization [1] . However, in order to characterize the true color of the object, it is necessary to take into account the physical process of color observation governed by the nature of the light source and the surface condition of the object.. The use of photometric invariants or color invariants has been considered for illumination-invariant object color indexing and characterization. Because the apparent color of an object is greatly determined by the physical process of light scattering at the object surface, it carries various components in addition to the true object color. The idea of photometric invari- ant measure is to estimate the components determined only by the object color, canceling out the additional components and variations by taking into account the physical process of ray observation. The causes of such additional components and variations include the differences in object surface conditions and the spectral components of illuminations [2] [3] [4] . Modeling of perceptual color constancy also aims to achieve a similar goal [5] [6] . The photometric invariants have been used in 3D object recognition [7] , correspondence, shape and motion estimation [4] , and have achieved superior and robust results in comparison with the use of RGB color or grayscale.. This work is based on the color invariants introduced by Geusebroek et al. [8] , which is based on Kubelka-Munk physical surface observation theory, and the Gaussian color model. The invariants derived in the work have been successfully used as image descriptors in place of grayscale for solving keypoint correspondence [9] . Among the various color-based image descriptors, it has been reported to have robust results for use in object and scene matching [10] [11] .. In this work, we start by analyzing how the color invariants by Geusebroek et al. are estimated from RGB colors, and find that a cyclic distance measure on the values of invariants has to be used. The use of this distance measure will reflect the nature that the colors corresponding to the negative and positive extremities of the invariant spectra are actually the same. Further, a novel color invariant feature defined as a composite function of two basic invariants will be defined. Proposal of this invariant intends to improve the selectivity of the corresponding object colors so that identical objects under different illumination will be precisely matched. The distance measure and the invariant will be used in experiments of image keypoint matching and partial image retrieval under varying illumination conditions, in comparison with the other invariants and luminance.. The remainder of the paper is structured as follows. In Sec. 2, the definition and estimation of color invariants introduced by Geusebroek et al. will be reviewed. In Sec. 3, the distance measure and the novel color invariant will be presented. In Sec. 4, the color invariants will be used as image features in partial image matching, and their advantages over conventional Copyright c 2012 The Institute of Electronics, Information and Communication Engineers luminance will be investigated. In this work, the natures of basic illumination invariant color features H and C estimated from color digital images introduced by Geusebroek et al. were investigated. In order to use the features in illumination invariant object matching, a new distance measure that considers the cyclic similarity of the colors were introduced. Also, a novel invariant H ′ as a function of C and H was proposed to improve the selectivity of the hue of the object color under various lighting conditions. The invariant features H, C and H ′ together with luminance L were used in matching of partial object images by way of keypoint matching using CSIFT and region matching based on RANSAC. The experimental results showed the superiority of using the invariants in keypoint matching, and the same advantage was observed in image matching as well. Here, we will look into the nature of the invariants estimated by way of Eqs. (11) and (12) . By rewriting these equations in linear combinations of R, G and B, we will have . Eqs. (13) and (14) indicate that the set of points (colors) in the RGB space having the same invariant values will always be its subspace, namely a 2-dimensional plane. In the following, we will call them equal-H plane P h (H) and equal-C plane P c (C), respectively. A term "RGB cube" will be used for the region in the RGB space where there is a corresponding color on a framebuffer. In a 24-bit "full color" framebuffer, the RGB cube is defined as the region where R, G and B components take the value within [0, 255]. Some of the properties of the invariants H and C are listed below.. 1. Both P h (H) and P c (C) share the origin O of the RGB space. 2. Any two colors (R, G, B) and (kR, kG, kB) (k > 0) will have the same invariants. 3. Planes P h (H ≈ 0.111111) and P c (C ≈ −0.010467) include line R = G = B for achromatic colors. 4. P h (0) = P c (0). 5. The planes will rotate π radian as the invariants change from −∞ to ∞. Therefore, P h (−∞) = P h (∞) and P c (−∞) = P c (∞) 6. The rotating axes of P h (H) and P c (C) are v H = (0.619261, 0.518083, 0.590005) and v C = (0.736149, −0.324631, 0.593884), respectively. 7. Plane P h (H) passes through the RGB cube (as it rotates) for any H ∈ (−∞, ∞). In contrast, plane P c (C) passes through the RGB cube only for C in a certain interval. The origin O, however, is always shared by the plane and the cube.. Since the values of the invariants are spanned over (−∞, ∞), often it is more convenient to use. as their substitutes of H and C. This applies especially when the color similarity is evaluated as a function of invariant's difference. However, it should be noted that angles θ H and θ C are not identical with the rotation angles of P h (H) and P c (C) from P h (0) and P c (0), respectively. Average F-measure of the image pairs, for cases using features L, H, C and H ′ , respectively, are shown in Table 3 .. The results in Table 3 show that the performance using luminance L as in conventional SIFT was inferior to those when the invariants C and H ′ were used. This shows the advantage of using color invariant features in matching object regions observed in color under varying illumination conditions. However, the F-measure was relatively low when invariant H was used. This is mainly due to the nature of H that opponent colors are included in the same equal-H plane P h (θ H ). Due to this nature, the number of false positive and false negative keypoints increased, resulting in low performance.. Similar errors can also occur when using C, where it is apparent in P c (0) of Table 2 . However, illumination changes at colors of red and blue hues are matched suitably as seen in P c (−0.9) and P c (0.6) of the same table. Some change in the apparent hue under different illumination condition may also have been admitted as in the color set of P c (−0.6).. The proposed invariant H ′ significantly improved the matching F-measure by H to a level comparable to those by C. It is clear that it was beneficial to separate the opponent colors in P h (H) to define the invariant H ′ .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


VTBuilder: a tool for the assembly of multi isoform transcriptomes Background: Within many research areas, such as transcriptomics, the millions of short DNA fragments (reads) produced by current sequencing platforms need to be assembled into transcript sequences before they can be utilized. Despite recent advances in assembly software, creating such transcripts from read data harboring isoform variation remains challenging. This is because current approaches fail to identify all variants present or they create chimeric transcripts within which relationships between co-evolving sites and other evolutionary factors are disrupted. We present VTBuilder, a tool for constructing non-chimeric transcripts from read data that has been sequenced from sources containing isoform complexity. Results: We validated VTBuilder using reads simulated from 54 Sanger sequenced transcripts (SSTs) expressed in the venom gland of the saw scaled viper, Echis ocellatus. The SSTs were selected to represent genes from major co-expressed toxin groups known to harbor isoform variants. From the simulated reads, VTBuilder constructed 55 transcripts, 50 of which had a greater than 99% sequence similarity to 48 of the SSTs. In contrast, using the popular assembler tool Trinity (r2013-02-25), only 14 transcripts were constructed with a similar level of sequence identity to just 11 SSTs. Furthermore VTBuilder produced transcripts with a similar length distribution to the SSTs while those produced by Trinity were considerably shorter. To demonstrate that our approach can be scaled to real world data we assembled the venom gland transcriptome of the African puff adder Bitis arietans using paired-end reads sequenced on Illumina's MiSeq platform. VTBuilder constructed 1481 transcripts from 5 million reads and, following annotation, all major toxin genes were recovered demonstrating reconstruction of complex underlying sequence and isoform diversity. The overall aim is to broadly capture transcript diversity by building a set of guide sequences from the read data and then to use these guides as a template to assist in the more accurate assembly of transcripts in a manner similar to reference based assembly [45, 46] . To achieve this, our software implements six steps schematically represented in Figure 2A .. (i.)Partitioning: This involves grouping reads into partitions (or clusters) that broadly reflect the protein diversity present within the data (i.e. at the protein family level not individual isoforms). Partitioning is done using an approach that is similar to seed based clustering [53] . In the latter a read is randomly selected to seed (start) a partition and subsequent read inclusion to the partition is dependent on similarity to this read. We modified the approach to include reads derived from different positions on the same underlying transcript and thus share little sequence similarity. In VTBuilder a partition is initiated by randomly selecting a read from the input forward reads. This read is termed the partition seed. All remaining forward reads are searched and added to the partition, and removed Figure 1 VTBuilders Graphical User Interface (GUI). Green boxes indicate completed steps of the pipeline while grey indicate those yet to be performed. The yellow box shows the step that is currently running while the yellow text provides a brief description of the step currently running. The inset panel displays the setup area that the user is presented with when they initially double click the jar file. The red circle indicates the command that is required if the user wishes to use the software without a GUI via the command line.. from the input set, if they share a region of similarity (70% identity across 100 bases) to this seed. The 100 base window size allows for positional flexibility between the reads and the seed, i.e. reads are allowed to match to either side of the seed. Once complete, up to 12 reads are randomly selected from the reads just added, and a new search of the unpartitioned reads is initiated against these. Selecting reads added in the previous cycle reduces redundancy in the search. As cycles continue, the partition is expanded until no new reads can be added. At this point a new read is randomly selected from unallocated reads and used to seed a new partition and the process repeats. The partitioning step finishes when there are no unallocated reads left. Partitioning results in groups of unassembled reads that are directly related by transcript or indirectly related by protein family. Partitions containing 3 or more reads progress to step 2. Reads within smaller partitions are not used within step 2 but are reintroduced during step 3 (mapping) along with all other input data. Thus, no reads are permanently discarded from the pipeline at this point. (ii.)De novo: Here guide sequences, which will be used as templates for subsequent mapping, are constructed from partitions. This is done using a greedy overlap method of assembly. Within each partition a read is randomly selected to initiate guide construction. We call this read the growing guide sequence (GGS). The remaining reads within the partition are searched against the GGS. If a read with high similarity to the GGS is identified (98% or greater similarity across a 100 nucleotide window) it is joined to the GGS, using the region of similarity as an anchor point. If this results in an extension to the GGS then the read is removed from the partition and the joined sequence replaces the current GGS. A new search against all the remaining reads in the partition is then initiated. This process iterates until a search against all remaining reads does not result in an extension to the GGS. If the partition still contains reads, a new guide is then initiated by selecting a random read and the process repeats. Thus, a single partition can result in more than one guide sequence. Once guide sequences have been created from all partitions a final de novo step is performed in order to join any partial guide sequences. (iii.)Mapping: During mapping all input reads are aligned against the guide sequence that they are most similar, to at positions that minimize diversity. In VTBuilder, we used a mapping algorithm that we previously developed to map read data containing high amounts of variation. The algorithm uses short fragments (10 bases in length), termed k-mers, extracted from each guide sequence to form a library containing k-mer positional information for each guide. This library is then compared with k-mers derived from individual reads in order to find the most probable location for each read on the guide sequence to which it is most closely related. This standard k-mer indexing approach is described in detail in [50, 54] . This results in alignment-like structures, termed scaffolds, where reads are positionally correct to each other and to the guide sequence to which they are most related ( Figure 2B, i) . The next two steps are designed to minimize chimeric transcripts by retaining as much diversity and positional information as possible within networks (step iv) whilst ensuring only the most robust (non-chimeric) paths are traversed to become transcripts (step v). (iv.)Networking: Here we represent each scaffold-like alignment produced in (iii) as a graph-based structure by transforming isoform-specific differences (diversity) in alignments into nodes and edges, that are subsequently traversed and assembled into finished transcripts in step (v). Non-overlapping neighbouring windows of pre-defined size (see below) are first defined across the scaffold-like alignment ( Figure 2B , i) after which reads spanning each window are extracted, truncated ( Figure 2B , ii) and clustered using hamming distance ( Figure 2B , iii). Clusters are represented as nodes on the network. Window size is calculated as one third of the minimum read length (user defined) thus ensuring that any three neighboring windows, and their subsequent nodes, have the potential to contain different regions of the same physical read. This information is used during network traversal in step (v). Edges are placed based on this physical linkage, where any two connected nodes physically share at least two reads, albeit different regions on these reads ( Figure 2B, iv) . Within the software, the minimum read length is limited to 120 bases to ensure there is sufficient sequence information within each window to cluster based on diversity. This step constructs multiple networks where nodes represent regions of diversity in reads mapped to the guide sequences. (v.) Constructing Transcripts: A final list of assembled transcripts is outputted by traversing the networks created in (iv). Importantly for the reduction of chimeric transcripts, the physical linkage of reads between adjacent node triplets guides traversals i.e., with the exception of the first two nodes added to a path, a node will only be added if it contains read fragments that are physically linked to fragments present within the two previously added nodes constructed in (iv) from 3 neighboring windows. This ensures that each individual path is a traversal through nodes containing reads derived from a single isoform within the underlying data, and is the key step in limiting chimeric paths. Paths are initiated for each cluster of diversity present within the first window. For each path initiated, the addition of a second node is dependent on reads overlapping with the first. If paired end reads are available they are used to confirm paths. For each read on a path an attempt is made to map its pair. If less than 30% of the pairs map then the path is discarded. (vi.) Expression: Calculation of relative transcript expression is achieved by remapping all the input reads to the finished transcripts. The expression level for a single transcript is taken as the number of reads mapping to that transcript normalized by the length of the transcript. These are outputted on the transcript titles as a percent relative to all other transcripts. We have demonstrated that transcripts constructed using VTBuilder accurately represent the variation present within venom gland transcriptomes. Unlike other approaches, our algorithm strives to maintain the relationships between factors such as to co-evolving sites and recombinant breakpoints within the underlying transcripts. VTBuilder has the potential to increase the usability of transcript sequences generated from read data across a wide range of research areas including; the detection of drug resistant variants within viruses and other disease causing parasites, where co-evolving sites confers resistance to particular classes of drugs [60] [61] [62] ; the monitoring of disease progression, where variation across a range of sites can be indicative of progression and pathological outcome [50, [63] [64] [65] [66] [67] [68] ; plant biology, where it has proven difficult to reconstruct full length transcripts representing complex transcript populations derived from genomes where polyploidy is present [69, 70] ; and reconstructing accurate evolutionary relationships on phylogenetic trees, and in detecting recombinant breakpoints, where the usage of long non-chimeric transcripts is essential. We have made the source code for VTBuilder available from https://code.google.com/p/vt-builder/ where researchers from a wide range of backgrounds can access and develop it for their own requirements. Finally, we consider VTBuilder as an important progression towards the full utilization of the potential that NGS data offers. This is because highlighting the problem of chimeric sequence assembly, as well as having a proposed solution, will begin to reduce the number of such sequences being deposited within public data repositories which will have a positive impact on future studies querying such sources. With the advent of new sequencing technologies that have parallelized the way in which sequencing chemistry is performed [1, 2] , attempts have been made to gain new insight into previously unstudied transcriptomes at both an inter-and intra-species level [3, 4] . Prior to being utilized within transcriptomic studies however, the millions of short DNA fragments generated, termed reads, must to be assembled into longer contiguous sequences that are representative of the underlying transcripts present within the transcriptome. Despite recent advances in transcriptome assembly tools [5] [6] [7] [8] [9] and their application to a wide range of research areas including the characterization of diversity within viral populations, plants, mice and humans [10] [11] [12] [13] [14] [15] [16] , accurately reconstructing transcript diversity within complex multi-isoform transcriptomes has remained a significant challenge [17] [18] [19] . Assembling snake venom gland transcriptomes, a complex multi-isoform toxin cocktail arising from ancestral gene duplication events and divergent evolution [20] [21] [22] [23] , exemplifies this challenge. Although linked by common ancestry, there is significant sequence variation within toxin families, such as the snake venom metalloproteinases (SVMP), C-type lectins, serine proteases (SP), phosoholipase A 2 s, bradykinin potentiating peptides and three-finger neurotoxins which often manifest in functionally distinct properties [24] [25] [26] [27] [28] [29] . Sequence and functional diversity is complicated further at an inter-and intraspecies level, as the expression of toxin isoforms is influenced by factors such as diet, habitat, sex, age and phylogeography [30] [31] [32] [33] [34] [35] [36] [37] [38] . Combined, this results in snake venom being complex [39] [40] [41] [42] and it is this complexity that poses difficulties for current transcriptome assembly tools. Reconstructing accurate toxin transcripts is important because venom gland transcriptomes are a critical resource for the development of improved snakebite therapies [43, 44] .. Current assembly tools implement algorithms largely based around two different approaches [45, 46] . In the first, reads are aligned to positions within reference transcripts to which they are most similar. This is termed mapping. This results in scaffold-like alignments from which networks representing sequence variation are constructed. Paths across these networks are used to construct transcripts that represent the diversity present within the transcriptome. However, for many transcriptomes including snake venom gland transcriptomes, complete reference datasets rarely exist. When they do, being derived from low coverage Sanger/EST studies [42, [47] [48] [49] , they may not have captured the full extent of variation within the transcriptome being studied. In this case, new transcripts cannot be discovered using a reference based approach as reads with insufficient similarity to sequences within the reference dataset will be discarded. Conversely, reads that are less divergent from transcripts within the reference dataset are more likely to map [50] . Thus, the extent of divergence between venom gland transcriptomes even at an intra-species level [3, 39, 42] , will result in a biased loss of read data during mapping. This in turn, will result in a decreased accuracy in the estimation of transcript expression; even when mapping to a transcriptome from the nearest available species as a pseudo-reference dataset.. To resolve problems associated with the lack of a suitable reference transcriptome de novo based assembly can be applied. This usually involves the construction of de Bruijn networks that represent clusters of diversity, e.g. individual protein families within the data [17] . On these networks nodes represent short sequence fragments, called k-mers, which are derived from reads, while edges represent shared identity between k-mers. These networks encompass all of the diversity present with the read data and traversals are used to construct transcripts. However, in the presence of isoform variation, maintaining non-chimeric paths across the subsequently complex networks becomes difficult [17, 51] . This is because a rise in diversity increases the number of nodes, which increases the combinatorials involved in path traversal. Distinguishing chimeric from non-chimeric paths is difficult as chimeras are in effect artificial recombinants generated between the true isoforms and, despite having superficial resemblance to true isoforms, relationships between co-evolving sites, functional motifs and other evolutionary factors are not maintained. This is due of the introduction of breakpoints within chimeras that are solely an artefact of the assembly process and not as a result of transcriptome evolution. Thus, resolving the true evolutionary relationship between transcripts becomes difficult. Long k-mers are often used to aid this task [5, 52] , but success is not guaranteed [17, 51] .. To address the issues associated with current assembly tools we designed VTBuilder (Figure 1 ), a user-friendly software for the assembly of non-chimeric transcripts. No reference transcriptome is required and the input can be single or paired end read data in FASTQ format. The software can be launched by executing a single jar file at which point the user will be presented with a Graphical User Interface (GUI) (Figure 1 : inset) from which the user can interact with the software via the GUI or using the dynamically generated command in a terminal window (Figure 1 : inset, red circle). Installing and running VTBuilder is described in a user guide that is available on the project website. VTBuilder implements a six step bioinformatics pipeline that is described in detail within the implementation section. Briefly, (i) Reads are partitioned into broad groups of shared diversity such as protein families. (ii) De novo assembly on each partition is performed to produce a set of guide sequences. (iii) A set of scaffold-like alignments, similar to those used in reference based assembly [45, 46] , is produced by mapping each read to the guide sequence that it is most similar to; (iv) For each scaffold like alignment a network is created that represents the isoform diversity present; (v) Transcripts are constructed by traversing these networks; and (vi) Transcript expression is calculated by remapping the read data to the constructed transcripts and then counting the reads mapped to each followed by length normalization.. Producing non-chimeric transcripts is essential if the resolving power of next generation sequence (NGS) data is to be used to dissect the evolutionary dynamics within complex transcriptomes with no available reference. At the time of writing we are unaware of any freely, or otherwise, available software that makes this possible. We benchmark the accuracy of our software, against a current popular de novo assembler, Trinity [5, 52] , which implements a method to traverse multiple de Bruijn graphs. In our analysis we used read data simulated from 54 known venom gland Sanger sequenced transcripts (SSTs) representing isoforms of the most frequent and diverse viper venom gland protein families. Using VTBuilder, over 90% of SSTs were accurately reconstructed from the simulated reads into transcripts sharing 99% or greater sequence similarity with one of the known SSTs, compared with only 25% recovered using Trinity. Following this, we benchmarked accuracy and performance of VTBuilder by constructing transcripts from 2.5 million paired end Illumina MiSeq reads sequenced from the venom gland of the African puff adder, Bitis arietans. This is the first assembly of an NGS-derived snake venom gland transcriptome using a new tool to overcome the inclusion of chimeric transcripts that typically confound the interpretation of multi-isoform venom gland transcriptomes. The correct assembly of transcripts is an important step towards the realization of the full potential that NGS technology has to offer in resolving the biological complexity of highly variable transcriptomes.

O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O


Assessment of algorithms for mitosis detection in breast cancer histopathology images The proliferative activity of breast tumors, which is routinely estimated by counting of mitotic figures in hematoxylin and eosin stained histology sections, is considered to be one of the most important prognostic markers. However, mitosis counting is laborious, subjective and may suffer from low inter-observer agreement. With the wider acceptance of whole slide images in pathology labs, automatic image analysis has been proposed as a potential solution for these issues.In this paper, the results from the Assessment of Mitosis Detection Algorithms 2013 (AMIDA13) challenge are described. The challenge was based on a data set consisting of 12 training and 11 testing subjects, with more than one thousand annotated mitotic figures by multiple observers. Short descriptions and results from the evaluation of eleven methods are presented. The top performing method has an error rate that is comparable to the inter-observer agreement among pathologists. Breast cancer patients can considerably benefit from adjuvant therapy. However, aggressive adjuvant therapies are costly, can lead to potentially serious side effects and thus are only given to patients that are at a high risk. Assessing the patient risk requires use of good prognostic factors. In this regard, prognostic factors related to tumor proliferation have proven to be among the most powerful ones (Diest et al., 2004) .. The proliferation of cells occurs through a process that can be divided into several phases: resting phase (G0), first gap phase (G1), synthesis phase (S), second gap phase (G2) and mitotic phase (M). After the M-phase, the cells either enter the G0-phase or the G1-phase repeating the process. The cells that are in the M-phase can be visually determined under a microscope by their characteristic morphology. In hematoxylin and eosin (H&E) stained breast cancer sections, mitoses are discernible as hyperchromatic objects that lack a clear nuclear membrane and have therefore specific shape properties. Counting of mitotic figures in H&E stained sections is the oldest and still most widely used form of assessment of proliferation of breast cancer tumors by pathologists.. The proliferative activity of the tumor is estimated as the number of mitoses in an area of 2 mm 2 , which corresponds to 8-10 microscope high power fields (HPFs; refers to the area that is visible using the microscope under very high magnification, usually ×40) depending on the microscope model. This number is referred to as the mitotic activity index (MAI). Mitosis counting is routinely performed in pathology labs all over the world and is widely used as a prognostic factor. Although MAI assessment can be well reproducible if a strict protocol is followed after rigorous training (van Diest et al., 1992) , it is a subjective procedure that is liable to intraobserver variation. Several factors contribute to this. First of all, the task of identifying mitotic figures in H&E sections is not trivial. They can display a number of different appearances, with their hyperchromacity being the most salient feature. Moreover, many other cellular components can have a similar hyperchromatic appearance, such as apoptotic or necrotic nuclei, compressed nuclei, "junk" particles and other artifacts from the tissue preparation process. This makes the identification of mitoses difficult. Furthermore, the assessment of the proliferative state by counting mitotic figures is performed only in a small area of the tumor selected to be at the tumor periphery and to have high cellularity. The choice of the area is also a matter of subjective interpretation and one of the potential sources of low reproducibility.. In addition to being subjective, mitosis counting is a laborious task, compared with the assessment of other prognostic factors for breast tumors, such as nuclear pleomorphism and tubule formation. For a typical case, it takes 5-10 min. for a pathologist to perform mitosis counting, and the process must sometimes be repeated in different areas or different tumor slides for borderline cases.. In the last decade, pathology labs have started to move towards a fully digital workflow, with the use of digital slides being the main component of this process (Stathonikos et al., 2013) . This was made possible by the introduction of scanners for whole slide imaging (WSI) that enable costeffective production of digital representations of glass slides. In addition to many benefits in terms of storage and browsing capacities of the image data, one of the advantages of digital slides is that they enable the use of image analysis techniques that aim to produce quantitative features to help pathologists in their work. An automatic mitosis detection method with good performance could alleviate both the subjectivity and the tediousness of manual mitosis counting, for example, by independently producing a mitotic activity score or guiding the pathologist to the region within the tissue with highest mitotic activity.. This paper gives an overview of the Assessment of Mitosis Detection Algorithms 2013 (AMIDA13) challenge that we recently launched. The main goal of the challenge was to evaluate and compare the performance of different (semi-)automatic mitosis detection methods that work on regions extracted from whole slide images on a large common data set. Since only the number of mitoses present in the tissue is of importance, i.e. their size and shape is not of interest, the challenge was defined as a detection problem. In this paper, we summarized the proposed methods and results from a challenge workshop on mitosis detection in breast cancer histopathology images. The challenge data set consisted of 12 subjects for training and 11 for testing, both with more than 500 annotated mitotic figures by multiple observers. In total 14 teams submitted methods for evaluation, 11 of which are described in this paper. The best performing method achieved an accuracy that is in the order of interobserver variability.. Our intention is for this challenge to be ongoing with incremental extensions of the training and testing data sets. By keeping the challenge website (http://amida13.isi.uu.nl) open for new submissions, we hope to keep a record of the state of the art of mitosis detection in breast cancer histopathology images. The earliest methods for automatic mitosis detection in breast cancer tissue date back to more than two decades ago (Beliën et al., 1997; Kaman et al., 1984; Ten Kate et al., 1993) . However, those approaches were inevitably constrained in their performance and potential use by the limited slide digitization technology and available computational resources at that time. The recent interest in this problem Malon et al., 2012; Veta et al., 2013) was ignited by the increased availability of WSI scanners. This resulted in the organization of the MITOS challenge (Roux et al., 2013) in 2012 on the same topic, which was well attended and helped advance the state of the art for this problem. However, the challenge was based on a data set of relatively small size (5 slides in total, 10 annotated HPFs per slide) and it did not account for the inter-subject variability in tissue appearance and staining as regions of the same slides were included in both the training and testing data sets. We aim to address these issues with the data set used in this challenge.. For a wider overview of histopathology image analysis techniques for breast cancer and other tissue types, we refer the reader to the recent reviews in Gurcan et al. (2009) and Veta et al. (2014) . We would also like to point out that automatic mitosis detection is a relevant application for other microscopy imaging modalities such as live cell images (Harder et al., 2009; Padfield et al., 2011) and there is a possibility for cross-over of the proposed methods.

O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Computer simulation of the skin reflectance spectra The reflectance spectra of the human skin in visible and near-infrared (NIR) spectral region have been calculated using the Monte Carlo technique, and the specular and internal reflection on the medium surface is taken into account. Skin is represented as a complex inhomogeneous multi-layered highly scattering and absorbing medium. The model takes into account variations in spatial distribution of blood, index of blood oxygen saturation, volume fraction of water and chromophores content. The simulation of the skin tissues optical properties and skin reflectance spectra are discussed. Comparison of the results of simulation and in vivo experimental results are given. The in vivo spectral reflectance measurements of human skin can serve as a valuable supplement to standard non-invasive techniques for diagnosing various skin diseases, such as venous ulcers, skin necrosis, interstitial oedema, etc. However, quantified analysis of the reflectance spectra is complicated by the fact that skin has a complex multilayered non-homogeneous structure [1, 2] with a spatially varying absorption coefficient, mainly determined by melanin pigmentation, oxygen saturation of cutaneous blood, index of erythema, bilirubin, b-carotine and other chromophores [3] .. In most of clinical applications given the measured reflectance spectra, we need to extract the concentrations of various chromophores of interest, in particular oxy-and deoxy-hemoglobin, water and melanin. Various approaches exist but in our initial work we have applied the simplest technique-the modified BeerÁ/Lambert law. This method attempts to account for the spectral distortions introduced by multiple scattering via a simple linearised equation which relates overall tissue attenuation (ln(I=I 0 ) to the tissue absorption coefficient m a :. where r is the source Á/detector spacing and s is a scaling factor, the 'differential pathlength factor' which accounts for the path lengthening effect of the random walk experienced by photons as they propagate through the multiple scattering medium. G is an offset term which is, according the Twersky's multiple-scattering theory [4, 5] , determined mainly by the tissue-probe geometry, or purely by the scattering. Eq. (1) represents a linear relationship between (ln(I=I 0 ) and m a , then the technique of multilinear regression can be used to estimate the relative concentrations of chromophores in the skin, provided the wavelength dependence of G is known.. Since G is determined by scattering coefficient m s , then we will assume that it is dominated by a term of the form a'/bl . m a is given by the sum of absorption coefficients for each separate chromophore, which in turn are determined by the absolute concentration C and specific absorption coefficient o of each chromophore. Given N chromophores, Eq. (1) can thus be rewritten:. By making measurements of A at a minimum of N '/3 wavelength, solving Eq. (2) for a, b and C i 's becomes an exercise in multi-linear regression which we solve using standard algorithms [6] . Typically we fit all wavelengths from 550 to 770 nm in 0.7 nm steps; hence the number of wavelength greatly exceeds N.. It should always be borne in mind however that Eq. (1) is simply an approximation. The modified Beer Á/Lambert law was originally introduced to analyze near-infrared transmission spectra of brain and muscles and, in particular, was designed to analyze relative changes in tissue oxygenation [7] . During such changes G and s (see Eq. (1)) can, to first order, be assumed to remain unchanged so that Eq. (2), in the form:. is used to estimate in oxy-and deoxy-hemoglobin concentration from changes in attenuation DA . The equation is strictly only valid in the limit that DC i 0/0, otherwise the fundamentally nonlinear relationship between A and m a introduces errors. This effect has been studied using the diffusion equation for the specific case of detecting cytochrome Á/oxidase redox changes in the presence of large changes in hemoglobin absorption [8] .. For this reason, it is one of the general goals of our Monte Carlo modeling to investigate the validity of the simple multi-linear regression approach. This can be done simply by comparing the actual chromophore concentrations used to perform Monte Carlo calculation with the chromophore concentrations extracted from the simulated reflectance spectrum by Eq. (2) .. In this paper we present the method for the skin reflectance spectra simulation, that is done using the Monte Carlo technique. Different cells structure and blood distribution, variations of chromophores and water content in the skin layers affect their optical properties [9, 10] , which makes it difficult to define the optical events in a simulation. We simulate the absorption properties of skin layers corresponding to blood, water, melanin and overall chromophores content. Several efforts have been made to simulate the reflectance spectrum of skin relying on a diffusion approximation [11 Á/14] . However, when the source Á/detector separation is 'small' (less than a few millimeters) diffusion approximation becomes invalid, and only the Monte Carlo technique can provide a realistic model of light propagation in biological tissues. The small source Á/detector separation is often preferred as it yields a shallow spatial location of the subject of study, which are capillary loops in our case. We propose more accurate model for correct prediction of the reflectance spectra measured by 'shallow' fiber-optic reflectance probe. In the paper we simply demonstrate the accuracy of the model by comparing the results of simulation and experimental results made in vivo. The reflectance spectra of human skin have been studied to support the theoretical model of skin tissues optical properties. The reflectance spectra of human skin simulated by the Monte Carlo technique and measured in vivo are in good agreement with one another. The modeling results are a brief survey of the potential of the computer simulation of skin reflectance spectra. Presented approach can be considered for use in studies of oxygen saturation of blood, skin chromophores, pigmentation, erythema and skin color changing. The model fitting based on the multi-linear regression analysis can give us quantitative amount of skin chromophores of the interest. Including in the model the wavelength dependence of G (see Eq. (1)) it is possible to extend the boundaries of the spectral region for the quantitative model fitting in NIR spectral area in the future. The skin reflectance spectra simulation is based on a Monte Carlo model developed recently [15, 16] . In frame of the technique the simulation is performed as a sequential three dimensional tracing of photon packets between scattering events from the point of the radiation entering in medium, to the receiving area, where the photon leaves the medium. The random path that photons move at jth step is given by:. where j is a uniformly distributed random number between 0 and 1. The scattering event is simulated by generating two random angles 8 and u in respect to the Henyey Á/Greenstein angular probability density function [17] .. Internal reflection on the medium boundary is taken into account allowing the photon packet to split into a reflected and a transmitted part. The statistical weight of the reflected and transmitted parts of the photon packets is attenuated according to the Fresnel's reflection coefficients [18] :. where a i and a t are the angles of the photon packet incidence on the medium boundary and angle of transmittance, respectively, n is the refractive index of the first layer of the medium and n 0 represents the refractive index of the ambient medium.. The probability of the photon packet being detected can then be described as follows:. where W 0 is the initial weight of the photon packet in the medium, M is the number of photon packet partial reflections on the medium boundary. The individual trajectory of each detected photon packet is stored in a data file, and then we include the absorption of the medium layers according the microscopic BeerÁ/Lambert law:. Here, W j is the final weight of jth photon packet (see Eq. (6)), K j is the total number of scattering events for the jth photon packet, m ai and l i are the medium local absorption coefficient and pathlength of the photon packet at i th step, respectively. This approach is convenient for a rapid recalculation of the radiation intensity reflection for a various set of absorption coefficients m ai (l ), and their various derivatives for the unchanged source Á/detector configuration. The total diffuse reflectance on the medium boundary is defined as the normalized sum of statistical weights of the photon packets reaching the detector area:. Here, N ph is the total number of detected photon packets (typically 10 5 Á/10 6 ). The simulation of a photon packet is stopped if the photon statistical weight falls bellow 0.0001, or if a total number of scattering events exceed 10 000.

O O O O B I I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Improved concept drift handling in surgery prediction and other applications The article presents a new algorithm for handling concept drift: the Trigger-based Ensemble (TBE) is designed to handle concept drift in surgery prediction but it is shown to perform well for other classification problems as well. At the primary care, queries about the need for surgical treatment are referred to a surgeon specialist. At the secondary care, referrals are reviewed by a team of specialists. The possible outcomes of this review are that the referral: (i) is canceled, (ii) needs to be complemented, or (iii) is predicted to lead to surgery. In the third case, the referred patient is scheduled for an appointment with a surgeon specialist. This article focuses on the binary prediction of case three (surgery prediction). The guidelines for the referral and the review of the referral are changed due to, e.g., scientific developments and clinical practices. Existing decision support is based on the expert systems approach, which usually requires manual updates when changes in clinical practice occur. In order to automatically revise decision rules, the occurrence of concept drift (CD) must be detected and handled. The existing CD handling techniques are often specialized; it is challenging to develop a more generic technique that performs well regardless of CD type. Experiments are conducted to measure the impact of CD on prediction performance and to reduce CD impact. The experiments evaluate and compare TBE to three existing CD handling methods (AWE, Active Classifier, and Learn++) on one real-world dataset and one artificial dataset. TBA significantly outperforms the other algorithms on both datasets but is less accurate on noisy synthetic variations of the real-world dataset. The application of data mining and machine learning techniques has helped many service providers to improve their decision-making process. The healthcare domain applies an increasing number of data mining solutions for decision-making and knowledge discovery. Notable applications include: the analysis of clinical parameters for diagnosis, prediction of the effectiveness of surgical procedures, and discovery of the relationships among clinical and diagnosis data [6] . Today, the demand for non-critical elective surgical care is increasing rapidly. The increase in demand has made patient referral an important process to optimize. Also, surgery is one of the most expensive treatments in the secondary care [15] .. One example of the application of supervised learning to improve the referral process is the identification of surgical indicators by mining combined sets of historical patient record data and the corresponding decisions about whether to perform surgery [15] . If the need for surgery can be predicted as early as the referral stage, it is possible to optimize the incoming patient queue to the secondary care and the allocation of surgeons and other resources. However, the decision of whether to refer a patient to the secondary care for surgery evolves through time because of changes in scientific developments and clinical practices. Consequently, the performance of the prediction model will decrease because the learned concept becomes invalid due to concept drift [1] . The existing decision support systems for patient referral require manual updates when changes in clinical practice occur. Automatically updating the decision support system by handling the concept drift can improve the efficiency of healthcare systems. Accordingly, the impact of concept drift in surgery prediction and the relationship between temporal changes in data distribution and concept drift need to be investigated. Moreover, in the state-of-the-art, there are only specific ways of handling concept drift; developing a more generic technique that performs well regardless of concept drift type (e.g.: slow, fast, sudden, gradual, cyclical, noisy) or distribution change is still a challenge [3] .. This article presents a concept drift handling algorithm, the Trigger-based Ensemble (TBE), which is based on ensemble-based batch learning [25, 26] and boosting [14] . TBE predicts the need for surgery without suffering from a significant decrease in prediction performance over time. Experiments are conducted to investigate the impact of concept drift, the relation between concept drift and temporal changes in the data distribution, and to compare the proposed handling algorithm to the state-of-the-art. The algorithms are evaluated on a real-world data set (from the orthopedic department at Blekinge hospital in Sweden) and an artificial data set that represents a different domain. The artifical data set is obtained from the UCI machine learning repository. 1 The artifical data set is included in the experiments to investigate the generalizability of the proposed approach.. The remainder of the article is organized as follows: The next section presents a discussion about surgery prediction and concept drift, which is followed by a review of related work in Sect. 3. In Sect. 4, the proposed algorithm is presented. The experimental procedure is described in Sect. 5. Finally, Sect. 6 concludes the article with an analysis and provides some pointers to future work. The future research has three main directions: (i) optimizing the performance of TBE and developing noise handling capabilities, (ii) performing additional experiments on datasets from other domains with different characteristics to validate and optimize the performance of the Trigger-based Ensemble method, and (iii) investigating how to properly distinguish real concept drift from noise for selected domains. The additional experiments should also include additional performance measures as well as time, complexity, and memory consumption measurements. In this article, we have used error rate as the primary performance measure. The rationale for this decision is that error rate is the predominantly employed measure in comparable studies on concept drift. The authors believe, however, that a more deepened analysis of the performance impact of concept drift is warranted. Sub-sequent experiments should therefore encompass alternative performance measures such as the area under the precision-recall curve, sensitivity, and specificity. In addition, the computational complexity of concept drift detection and handling is an important aspect in this area of research. A simplified complexity analysis can of course be performed by reviewing the presented algorithm pseudocode. We are, however, planning a future theoretical analysis of the TBE detection and handling algorithms. This article investigated a concept drift handling algorithm designed for the surgery prediction task, which is a supervised learning task where the aim is to generate a mapping between patient record instances and a binary target indicating whether the corresponding patient needs surgery or not. Today, this task is performed manually. The general practitioner who examines the patient need to decide whether to refer the patient to the secondary care for specialist treatment. The scope is delimited to elective surgical specialist care. If the surgery prediction task is to be automated, it is important to be able to handle concept drift since the guidelines for making decisions about the need for surgery are revised, sometimes gradually and sometimes abruptly. The occurrence of concept drift in the hip-replacement dataset caused a sudden decrease in classification performance. If the distribution from which examples are drawn is similar or identical across batches, the classification performance should not decrease for subsequent (and larger) batches. However, the results on the hip-replacement dataset indicate that the error rate increases as the number of examples increase. There is a significant variation in classification performance, when the learned concept is changed. The negative effect of concept drift can be reduced through concept drift handling algorithms.. State-of-the-art concept drift handling algorithms (based on either single classifiers or ensemble approaches) are here evaluated on a real-world dataset of patients with hip problems and the poker-hand dataset from the UCI machine learning repository (the latter is used for generalization purposes). The investigation led to the development of an algorithm called the Trigger-based Ensemble, which is based on ensemble learning and boosting. This proposed algorithm showed a comparatively better ability to detect and handle concept drift than the state-of-the-art algorithms.. The Trigger-based Ensemble actively detects the occurrence of changes on each incoming batch of instances and adapts to the changes incrementally. It uses the current and past predictions of classifiers combined with dynamically updated voting weights. It is assumed that adding an active detector reduces the chance of ensemble classifiers suffering from outvoting, that is, the growth of the number of incompetent classifiers. Moreover, the ensemble size does not become overly large. Thus, the contribution of this research is twofold; improving the performance on the surgery prediction task and presenting a generic concept drift handling algorithm that performed comparatively better than the existing concept drift handling algorithms. STAGGER is the first technique designed to cope with concept drift [13, 16] . It uses a concept description consisting of class nodes connected to attribute-value nodes by probabilistic arcs. The probabilities are updated when new training examples arrive. It also adds nodes corresponding to new classes and new features. To address concept drift, STAGGER decays its probabilities over time. The Active classifier is another single classifier approach that focuses on learning an accurate model with as few labels as possible. It studies how to label selectively instead of asking for all true labels. The method is based on random labeling, a fixed uncertainty strategy, variable allocation of labeling efforts over time, and randomization of the search space. An active classifier encapsulates all the active learning strategies and allows benchmark streaming data experiments through stored, shared, and repeatable settings for synthetic and real-world data [27] . When a change is detected by the Active Classifier, the old classifier is replaced by a new model. In such a case, recurrent concept drifts may not be handled. The concept drift detection techniques used by the Active Classifier are the Drift detection method (DDM) and Early Drift detection method (EDDM). Both DDM and Early Drift Detection (EDDM) can be embedded on single classifier as detectors in many concept drift handling techniques [17] . Gama et al. [4] propose the DDM, each online classifier used to predict the class of an example that can either true or false. The error rate is modeled by the number of classification errors with a Binomial distribution. However, DDM only detects sudden changes. To improve detection of gradual changes, EDDM extends DDM by relying on the distance between two classification error rates instead of considering only the number of errors [5] . These concept drift detection methods employ change detection mechanisms, or triggers.. Streaming Ensemble of Algorithms (SEA) is based on a fixed number of ensemble classifiers each constructed from relatively small subsets of data, read sequentially in blocks [18] . Once the ensemble is full, new classifiers are added only if they satisfy some quality criterion, based on their estimated ability to improve the ensemble performance. Since the ensemble size is fixed, one of the existing classifiers must be replaced when adding a new model. However, because of the replacement of the ensembles recurrent concepts are not easily addressed. Wang et al. [21] also propose an ensemble of classifiers called the Accuracy Weighted Ensemble. This method maintains classifiers built from batches of training samples, but it weighs each classifier based on their performance on the most recent batch. One of the drawbacks of evolving ensembles of classifiers, in general, is that they build a new base classifier for each batch of new data. Elwell and Polikar [3] introduce a relatively more generic ensemble of classifiers. It incrementally learns in the presence of concept drift and is commonly called Learn++ or Learn++.NSE. The classifiers are incrementally trained (with no access to previous data) on incoming batches of data and then combined with weighted majority voting. Classifiers capable of identifying previously unknown instances get more credits while classifiers that misclassify previously known data are penalized. However, since the weight adjustment mechanism used is based on historical classification accuracies, classifiers may get penalized or rewarded wrongly because of noisy input. The inclusion of a noise detector before updating the classifiers would make this framework more effective. In addition, a new set of classifiers is created for each new batch of data. Thus, the ensemble size can become very large over time.. In general, the current approaches are either tested on synthetic data or are studied for specific drift types in specific environments [3] . For example, techniques used effectively in spam filtering may not perform well in surgery prediction or weather forecasting. Developing an adaptive learning model that handles concept drift in dynamic environments with the treatment of concept drift and noise is an area of research that demands attention and improvements to the state-of-the-art [13, 22] .

O B I O O B I O O O O O O O O O O O B I O B I O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O


Language classes generated by tree controlled grammars with bounded nonterminal complexity A tree controlled grammar is specified as a pair (G, G ′ ) where G is a context-free grammar and G ′ is a regular grammar. Its language consists of all terminal words with a derivation in G such that all levels of the corresponding derivation tree -except the last level -belong to L(G ′ ). We define the nonterminal complexity Var(H) of H = (G, G ′ ) as the sum of the numbers of nonterminals of G and G ′ . In Turaev et al. (2011) [23] it is shown that tree controlled grammars H with Var(H) ≤ 9 are sufficient to generate all recursively enumerable languages. In this paper, we improve the bound to seven. Moreover, we show that all linear and regular simple matrix languages can be generated by tree controlled grammars with a nonterminal complexity bounded by three, and we prove that this bound is optimal for the mentioned language families. Furthermore, we show that any contextfree language can be generated by a tree controlled grammar Besides the efficiency of algorithms and devices for the acceptance of languages with respect to time and space a very important topic of theoretical computer science is the study of succinct descriptions of algorithms and languages. For instance, algorithms are described by programs whose size is measured by the number of commands (or lines of codes). If languages are described by (finite) automata, then the number of states is one of the possible measures of descriptional complexity, and the minimization of finite automata is a very early result in the theory of automata. With respect to the generation of languages by (different types of) grammars, the number of nonterminals, or the number of productions, or the total number of symbols in rules are well-known measures of size.. The study of the descriptional complexity with respect to regulated grammars started in [1, [4] [5] [6] 21] . In recent years several interesting results on this topic have been obtained. There are results which compare the conciseness of minimal descriptions of languages by different types of regulated grammars as well as statements that grammars with a bounded size suffice to generate all languages of certain language classes. For instance, the nonterminal complexity of programmed and matrix grammars is studied in [9] , where it is shown that three nonterminals for programmed grammars with appearance checking, and four nonterminals for matrix grammars with appearance checking are enough to generate every recursively enumerable language. A more detailed investigation with respect to the appearance checking is given in [10] . There are several papers which present analogous results for scattered context grammars [2, 11, 12, 17, 24] , semi-conditional grammars [18, 19, 21, 24] , and multi-parallel grammars [16] .. In this paper, we study the nonterminal complexity of tree controlled grammars. A tree controlled grammar is specified as a pair (G, G ′ ) where G is a context-free grammar and G ′ is a regular grammar. Its language consists of all terminal words with a derivation in G such that all levels of the corresponding derivation tree -except the last level -belong to L(G ′ ). We define the nonterminal complexity Var(H) of H = (G, G ′ ) as the sum of the numbers of nonterminals of G and G ′ . In contrast to most of the papers cited above, we do not only take the number of nonterminals of G, but also add the number of nonterminals of G ′ , i.e., we also measure the complexity of the control device (however, we note that, for the matrix, programmed and scattered context grammars, it is not clear how one can measure the complexity of the matrices and the success field and failure field in terms of nonterminals). In [23] , it is shown that there is an infinite hierarchy with respect to the nonterminal complexity, if we consider tree controlled grammars with non-erasing rules only. It is worth noting that the proof uses regular languages. On the other side, the allowance of erasing rules leads to the result that every recursively enumerable language can be generated by a tree controlled grammar with not more than nine nonterminals in G and G ′ . In this paper, we continue the research by showing that some known language classes can be generated by tree controlled grammars with three, four, or seven nonterminals.. The paper is organized as follows. In Section 2, we recall the necessary concepts and notations. In Section 3, we improve the bound for recursively enumerable languages from nine to seven. In Section 4, we show that all linear and regular simple matrix languages can be generated by tree controlled grammars with a nonterminal complexity bounded by three, and we prove that this bound is optimal for the mentioned language families. In Section 5, we show that tree controlled grammars with the nonterminal complexity bounded by four are sufficient to generate all context-free languages. Finally, we add some concluding remarks which summarize the results and mention some open problems and directions for further research. First we summarize our results in the diagram shown in Fig. 1 , where (upward) lines and arrows denote inclusion and proper inclusion, respectively, and families are incomparable if they are not connected.. It is an open problem whether the inclusions L n (TC) ⊆ L n+1 (TC) are proper for 3 ≤ n ≤ 7. We know that L 2 (TC) does not contain all regular sets (Lemma 7), i.e., L(REG), L(LIN) and L(RSM) are not included in L 2 (TC). However, we do not know whether or not L(CF ) is included in L 3 (TC).. Moreover, we do not know good bounds for matrix or ET0L languages which can be obtained by special choices of control languages (see [8] ).. The aim of the control is to check that the levels of the derivation tree have a special form described by a regular language. That means that one has to check whether the levels belong to some given regular language. Such a check can easily be done by a finite automata but hardly by a regular grammar. Therefore, it is of interest to study a complexity measure whichbesides the number of nonterminals of the underlying context-free grammar -takes into consideration the complexity of the finite automaton (for instance, its number of states). Using this approach, we get much higher bounds since we need more states to accept the considered regular languages than nonterminals to generate them. An improvement of such bounds remains to be done.

O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Textual and behavioral views of function changes In this paper, we describe an approach that automatically computes function change information between consecutive revisions along the revision history of C language projects. Function changes are computed at two abstract levels. First, we compute the textual changes between two function revisions. Computed results include function additions and deletions, and the quantity and the ratio of textual change in changed functions across two revisions. Second, we compute the behavioral changes of functions using program slicing techniques. We use an XMLformatted document to represent computed function change information. The function change information, together with the SCM change log, helps maintainers understand code changes between two revisions. The structured format of the function change information also helps create traceability links between the changes and other artifacts. We describe our prototype implementation for computing function changes, and we evaluate our approach through a case study on the Sed project. Software Configuration Management (SCM) tools such as CVS [1] , Subversion [2] , and ClearCase [3] are intensively used to perform version control and manage source code changes in modern software development projects. When submitting source code changes using these tools, best practice is for programmers to write a brief explanation of the change into the change log, which is saved together with the source code deltas in the SCM repository. After the source code of a software project has undergone many revisions, the change logs help maintainers to understand how the source code evolves, providing details on who changed which part of the code, and for what purpose.. Unfortunately, the quality of change logs varies greatly. Their quality depends on the programmers that submit the changes: how disciplined they are in making log entries, how well they understand the source code, and how well they write the change logs. Unclear or empty change logs make it difficult for software maintainers to understand the code. Even when they are present, the change logs are written in natural language and are mostly format-free. These facts make it hard to build traceability links based on information found in change logs.. To address the understandability and traceability issues in change logs, we propose an approach that automatically computes function-level change information across software revisions. Since functions are the basic functional block in C programs, we compute source code change information at the function level of granularity. Function change information has two abstract levels. The first level is the textual changes between two revisions of a function, which records the addition or deletion of text content. In our implementation, we use a C program analyzer to compute the text boundary of each function in the source code file of every revision. We retrieve the text body of a function and compare it with the text body of the same function in the previous revision using diff (GNU Diffutils) [4] . The diff results are used to check whether this function has textual changes in the new revision and compute the change ratio if new changes exist.. The second abstract level is behavioral changes of functions. We identify fine-grained function behavior aspects by using program slice information to compute the behavioral change of functions between two revisions. Program slicing techniques [5, 6] study the behavior of source code through the flow dependency and control dependency relationships among statements. The concept of program slicing was introduced by Mark Weiser [5] , who defined a slice as all the program code that may influence the values computed at a criterion, which consists of a (line-number, variable) pair [5] . Horwitz et al. [6] introduced a method to compute intra-procedural and inter-procedural slices based on program dependence graphs. Since program slices capture the behavior aspects of a program, we can use them to identify the behavioral changes of functions across different revisions. A behavior aspect of a function can be represented by a program slice with respect to the sensitive components of a function at the end of the function. A sensitive component of a function is a variable that is or may be modified in this function and may be used by the other parts of the program. A function may have multiple sensitive components, such as the function return value, and the non-local variables directly or transitively modified in the function. We developed an algorithm, PSE (program slice encoding), that encodes a program slice to a hash value, so the change of a slice hash indicates the change of the behavior of this program slice. We store the slice hashes for functions in each revision in the function change information to identify function behavioral changes across revisions.. Combining the information for function textual changes and the information for function behavioral changes, the function-level change information serves as complement to the change logs to help maintainers to understand the changes better.. We represent the function change information in XML format, so the change information can be identified at various granularities, including file, function, and function behavior aspect. The XML format also permits traceability links to be built between the change information and other software development artifacts. In this paper, we describe an approach that computes function change information for C projects across revisions. Two levels of abstraction, function textual change and function behavioral change, are included in the function change information. We compute function textual changes between two revisions by retrieving function text from these revisions and comparing their difference using the diff tool. We capture function behavior aspects using program slicing techniques. We introduce the PSE algorithm that encodes a program slice to a hash value. We apply the PSE algorithm on C functions by computing the hash values for program slices with respect to sensitive components of a function. The slice hashes for a function can be used to identify function behavioral changes across revisions. The function textual change information and the function behavioral change information serve as complement to the change log to help maintainers understand program changes across revisions.. We represent the function change information with the XML format and define the syntax to locate components in the XML. This representation of change information opens the door for creating traceability links between the function change information and other software artifacts.. For the future work, we will integrate our approach with an SCM system, Subversion, so function-level change information can be stored in SCM change logs and, at the same time, it can guide the change submitter to write change logs in structured way. Computing document difference based on document syntax or structure has been explored by many research efforts. Yang [11] developed a syntactic comparison and merge tool based on parse trees for the C programming language. Different files are parsed to generate corresponding parse trees. Then, a tree matching algorithm runs to match nodes and locate differences. Finally, a pretty-printer traverses the trees and highlights the different code sections in the files. Cdiff [12] takes a similar approach for C++. Due to the limitation of the C++ Information Abstractor cdiff uses, it only handles comparison at the procedure level. There are also syntactic comparison approaches that use graph structure to represent the code. For example, [13] uses labeled typed nested graphs and graph rewriting techniques to provide a formal foundation for software diff and merge. Our approach that computes the function textual changes combines the use of syntax analyzer and text diff. Our approach relies much less on the understanding of the full program syntax, since only the syntax units at the function level are retrieved, the text diff is still heavily used in our approach.. The program behavior comparison problem has been explored somewhat. Horwitz and Reps [7] introduced an algorithm to compare two program slices. Their algorithm is based on the dependence graph representation of program slices. The labels on the dependence edges in the graph and the dependence type between graph vertices guide the comparison of two slices. Though our PSE algorithm is based on Horwitz's algorithm in [7] , our algorithm requires only one entity, a program slice, and maps it to a hash value, which is reusable for comparing behaviors across revisions. In [14] , Apiwattanapong et al. introduced the CalcDiff algorithm that compares the behaviors of object-oriented programs. To compare program behaviors, their approach employs enhanced control flow graphs, which neither address variable renaming and statement permutation, nor extract finergrained behavior aspects from a method.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O