NeuroXidence: reliable and efficient analysis of an excess or deficiency of joint-spike events Abstract We present a non-parametric and computationally efficient method named NeuroXidence that detects coordinated firing of two or more neurons and tests whether the observed level of coordinated firing is significantly different from that expected by chance. The method considers the full auto-structure of the data, including the changes in the rate responses and the history dependencies in the spiking activity. Also, the method accounts for trialby-trial variability in the dataset, such as the variability of the rate responses and their latencies. NeuroXidence can be applied to short data windows lasting only tens of milliseconds, which enables the tracking of transient neuronal states correlated to information processing. We demonstrate, on both simulated data and single-unit activity recorded in cat visual cortex, that NeuroXidence discriminates reliably between significant and spurious events that occur by chance. It is commonly held that neurons encode information by modulations of their discharge rate. A complementary hypothesis is that information is also encoded in the precise relation between the discharges of spatially distributed neurons (Hebb 1949; von der Malsburg 1981; Fetz 1997; Singer 1999) . These complementary views are addressed in the literature as the rate coding and the temporal coding hypotheses. Multiple methods have been developed to detect temporal relations between spiking events and to investigate whether these relations that are forming a spike pattern are correlated with stimulus configurations, behavior, or particular states of neuronal systems Perkel 1969, 1972; Abeles and Gerstein 1988; Gray et al. 1989; Brown et al. 1998 Brown et al. , 2004 Grün et al. 1999 Grün et al. , 2002a Martignon et al. 2000; Tetko and Villa 2001; Nakahara and Amari 2002; Pipa and Grün 2003; Barbieri et al. 2004 Barbieri et al. , 2005 Sharpee et al. 2004; Samonds and Bonds 2004; Ikegaya et al. 2004; Czanner et al. 2005; Okatan et al. 2005; Kass et al. 2005; Pipa et al. 2006; Oweiss et al. 2007; Schneider et al. 2006) . The methods differ in the definitions of the spike patterns, the techniques to detect these patterns, and the approaches to analyze the resulting data (descriptive, statistical hypothesis testing, maximum likelihood, and Bayesian approaches). Even though the temporal coding hypothesis formulates precisely what constitutes a spike pattern, it turns out to be a non-trivial problem to design a method that detects the existence of such patterns and to investigate their information content, without being confounded by other properties of the data (Oram et al. 1999; Brody 1999; Roy et al. 2000; Baker and Gerstein 2001; Grün et al. 2003) .. In this article we present the novel method NeuroXidence 1 (Pipa 2003; Pipa et al. 2006 ) for analyzing precise and consistent temporal relations between discharges of simultaneously recorded neurons that are referred to as coordinated firing events. NeuroXidence (see www.NeuroXidence.com) has been designed to deal with four main properties of neuronal spike trains that make the analysis of coordinated firing events difficult: variability, short timescales, history dependencies and auto-structures of the spiking activities, as well as the rareness of coordinated firing events. First, neuronal recordings show a high degree of variability, which is partially caused by noise, changes in the properties of neuronal responses, and by the dynamics of the information processing. Any analysis of coordinated firing events has to consider all three kinds of variability. Second, evidence indicates that neuronal states linked to the processing of information can last for only a short period of time (e.g., a few tens of milliseconds; Oram and Perrett 1992; Thorpe et al. 1996) . This implies that analysis methods need to operate on short time series containing a very limited number of samples. Third, neuronal activity might have strong history dependencies, where the likelihood that a spike will occur at a certain point in time depends on the times at which previous spikes have occurred. Therefore, the auto-structures of the spike trains need to be considered in the analysis of potentially meaningful coordinated firing events. Fourth, past investigations of coordinated firing events indicated that these events are rare (Abeles and Gerstein 1988; Ikegaya et al. 2004) . Thus, analysis of coordinated firing events might be difficult, since even highly parallel recordings from up to a hundred simultaneous recording sites might still grossly under-sample the neurons that participate in the actual temporal code.. In the present article we first describe the statistical hypothesis test and the detection algorithm used by NeuroXidence. Next, we utilize simulated data to illustrate the statistical properties, performance, and applicability of NeuroXidence based on calibration studies for false positives and for test-power. To this end we use simulated data with and without spike-rate modulations as well as epochs in which spike-rate modulations coincide with epochs of coordinated firing. We next compare the performance and concept of NeuroXidence to related methods such as the unitary events analysis (Grün et al. 2002a, b) , the conventional cross-correlation analysis (König 1994) , and maximum entropy approaches (Schneidman et al. 2006) . Finally, we apply NeuroXidence to an example dataset consisting of 42 single units recorded simultaneously from visual area 17 of an anesthetized cat. In conclusion, we have presented the new analysis tool NeuroXidence (www.NeuroXidence.com) for detecting temporally coordinated firing events in spike trains. We have demonstrated its performance, reliability, and applicability, and compared it to currently used methods. The results obtained in the analysis of real data provide strong evidence that precise temporal relations between the discharges of distributed neurons contain information about the stimulus configurations and, therefore, support the temporal coding hypothesis.. The resolution of overlapping JSEs might multiply subpatterns that are included in the resulting isolated JSEs. The recursive algorithm has to correct this multiplication to allow for an exact derivation of the frequency of occurrence of each JSE. The algorithm first identifies, one spike train at a time, all sets of spikes that have an inter-spike interval smaller than G +/− , a kernel defining the amount of allowed jitter. Operational fields (see Fig. 12(b) , Appendix 1) describe the temporal windows spanning such sets. A field includes the G − bins preceding the first and the G + bins following the last spikes of a set. To separate the JSEs localized by the overlapping operational fields (see Fig. 12(b) , Appendix 1, dark green), a modified copy of the overlapping JSEs is appended to the end of the dataset. Note, that only the data covered by operational fields is replicated and not the entire dataset. The copy is missing the second spike in the overlapping field, leaving an intact and isolated JSE. Likewise, in the original of the overlapping JSEs, the first spike is deleted, producing the second isolated JSE. Next, the sub-patterns that were doubled by the copying process, i.e. those spikes that did not have overlapping operational fields, are copied into a d-dataset. Since the algorithm is applied sequentially in time, there is no difficulty in separating three or more spikes that occur in an interval smaller than G +/− . For uncovering all overlapping JSEs in the original dataset, as well as in the d-dataset, the recursive algorithm is applied sequentially to all units in the dataset and in the d-dataset. The algorithm first processes unit n in the original dataset and then it processes unit n+1 in the d-dataset. This ensures that JSEs that are copied from the original dataset into the d-dataset no longer contain any overlapping operational fields for units 1 to n. To accurately count the total number of isolated JSEs, one has to consider that JSEs contained in the d-dataset have been doubled. Hence, the number of individual JSEs in the d-dataset has to be subtracted from the number of matching JS-patterns in the original data. In contrast, JS-patterns that contain overlapping operational fields in the d-dataset lead to an overcorrection of the actual frequency in the original dataset. Therefore, the number JSEs that were doubled in the d-dataset should be tracked in the original dataset and added to the total. The computational complexity of resolving overlapping JSEs increases approximately exponentially with the number of spikes that are less than G +/− apart. Thus, a higher computational effort is required if spike trains contain a lot of short intervals, as in the case of bursting cells or Poissonian firing. overlapping patterns in two steps: first, the copying of patterns, and second, the deletion of single spikes. After revealing the overlapping patterns, the 'modified' dataset contains all isolated patterns, while the 'd-data' dataset contains all patterns that had been multiplied. The total frequency of occurrence of a test-pattern in the original data is given by the frequency in the 'modified' dataset, minus the frequency in the 'd-data' set Appendix 2: Parametric t test versus non-parametric Wilcoxon rank test. In practical applications, the Wilcoxon rank test (Wilcoxon test) is more likely to be appropriate for hypothesis testing than Student's t test. The t test assumes that the mean value of ΔF k is normally distributed, while the Wilcoxon test does not make any assumptions about the distribution of the mean. This difference between the two tests is important since JSEs are expected to be rare when spike rates are low and JSE complexities are high (i.e., large numbers of neurons are recorded in parallel). With such rare events, the probability distribution of the total number of JSEs is expected to be better approximated by a Poisson than by a normal distribution. Thus, the distribution of JSEs is likely to violate the assumptions of the t test. Although the t test is to some degree robust against skewed distributions (Boneau 1960) , the Wilcoxon test may, in many cases, be a much better choice, especially when spike rates are low and complexities of JSEs are greater than two. The distinction between rate codes and temporal codes in the cerebral cortex has been the origin of heated discussions over recent years (von der Malsburg 1981; Aertsen et al. 1989; Gerstein et al. 1989; Shadlen and Newsome 1994; Riehle et al. 1997; Fetz 1997; Brody 1999; Baker and Lemon 2000; Aertsen et al. 2001; Grün et al. 2003; Ikegaya et al. 2004 ). The rate hypothesis assumes that information is encoded in the discharge frequency of individual cells, while the temporal code assumes that information is encoded in the precise timing relations between individual discharges of distributed neurons. The latter can be tested by a statistical hypothesis test that checks whether fine temporal crossstructure represented by joint-spike events (JSE) exists and is beyond chance level. Therefore, the statistical hypothesis test is crucially dependent on the statistical formulation of the chance level of JSEs under the null hypothesis (H0: ratehypothesis). To distinguish the temporal from the rate code hypothesis, H0 has to consider all features of the data that might be causally related to the rate hypothesis. Only then is a rejection of H0 interpretable in favor of the temporal coding hypothesis and provides evidence for cooperative coding based on joint-spike activity.. We next outline the properties of the NeuroXidence method in detail, starting with statistical testing and the basic idea of timescale separation for NeuroXidence. Then we describe the distinction between rare, spurious, and reliably reoccurring events, the choice of appropriate window lengths, the impact of oscillatory and coherent rate modulations, and the differences between NeuroXidence Fig. 11 Analysis of simultaneously recorded single-unit activity from 42 neurons from an anesthetized cat. The recordings were made in area 17 during visual stimulation with moving gratings, which were presented for 3.5 seconds. Stimulus onset occurs at 0 s. Data comprise 20 trials. In (a) the stimulus direction was 30°while it was 120°in (b). (a 1, b 1) Average PSTHs across all 42 neurons for both stimulus directions. NeuroXidence was applied on sliding windows (0.2 s) that were shifted by 0.1 s (τ c =5 ms, τ r =20 ms, S=20). (a 2, b 2) The numbers of unique JS-patterns detected per sliding window are color coded and sorted according to their complexities (y-axis) (no significance criteria applied, color code is logarithmic). (a (3, 4) ), (b (3, 4)) The frequencies of significant JS-patterns (test-level 1%, tested on significant excess) for each sliding window (x-axis) are color coded and sorted according to their complexities ( y-axis). Frequencies shown in (a (3)), (b (3)) are based on the original dataset, while in (a (4)), (b (4)) the spikes in the original data were jittered by ±10 ms to destroy fine temporal cross-structure and other methods that are used for detecting coordinated firing. Last, we discuss results obtained form real data recorded from area 17 in an anesthetized cat. In the following sections we report the statistical and computational properties of NeuroXidence. To this end we utilize simulated data as well as an example dataset consisting of 42 single units simultaneously recorded from cat visual area 17 of an anaesthetized cat.

O O 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 B I O O O O


Iterative experimental and virtual high-throughput screening identifies metabotropic glutamate receptor subtype 4 positive allosteric modulators Abstract Activation of metabotropic glutamate receptor subtype 4 has been shown to be efficacious in rodent models of Parkinson's disease. Artificial neural networks were trained based on a recently reported high throughput screen which identified 434 positive allosteric modulators of metabotropic glutamate receptor subtype 4 out of a set of approximately 155,000 compounds. A jury system containing three artificial neural networks achieved a theoretical enrichment of 15.4 when selecting the top 2 % compounds of an independent test dataset. The model was used to screen an external commercial database of approximately 450,000 drug-like compounds. 1,100 predicted active small molecules were tested experimentally using two distinct assays of mGlu 4 activity. This experiment yielded 67 positive allosteric modulators of metabotropic glutamate receptor subtype 4 that confirmed in both experimental systems. Compared to the 0.3 % active compounds in the primary screen, this constituted an enrichment of 22 fold. This study implements a machine learning approach (Artificial Neural Networks, ANNs) to virtually screen commercially available compounds for positive allosteric modulators (PAMs) of metabotropic glutamate receptor subtype 4 (mGlu 4 ). Marino and Conn [1, 2] showed that activation of mGlu 4 is a viable option in treating Parkinson's disease (PD), a debilitating movement disorder that afflicts more than 1 million people in North America. In Parkinson's patients, there is a decrease in GABAergic transmission at the inhibitory striatopallidal synapse within the basal ganglia; this abnormality is thought to contribute to the motor dysfunctions observed in PD patients. Current PD treatments that are focused on dopamine-replacement strategies ultimately fail in most patients because of loss of efficacy and severe adverse effects that worsen as the disease progresses [2, 3] . Selective activation of mGlu 4 could provide palliative benefit in PD. Further, selectively targeting mGlu 4 avoids the loss of efficacy and severe side-effects of long-term dopamine replacement therapy. In 2003 Maj [2, 4] et al. reported on the discovery of (−)-PHCCC, the first positive allosteric modulator of mGlu 4 with demonstrated selectivity for group III mGlus, but also a partial antagonist for mGlu 1 (group I). Around the same time, Mathiesen [5] et al. showed that SIB-1893 and MPEP (a known mGlu 5 antagonist [6] ) are mGlu 4 PAMs.. Despite the success of many GPCR-based drug discovery programs, many of the developed ligands lack selectivity. The traditional approach to target the endogenous ligand (orthosteric)-binding site has suffered from a paucity of suitably subtype-selective ligands as orthosteric binding sites are highly conserved between GPCR subtypes. An alternative approach is to target allosteric sites that are topographically distinct from the orthosteric site, either enhancing or inhibiting receptor activation [7] . Discovery and characterization of allosteric modulators of GPCRs has gained significant momentum over the last few years, especially since the clinical validity of GPCR allosteric modulators was demonstrated with two allosteric modulators entering the market [8, 9] . Thus, allosteric modulation represents an exciting novel means of targeting GPCRs particularly for CNS disorders, a therapeutic area with one of the highest rates of attrition in drug discovery [10] .. Recently, Niswender [11] et al. reported the discovery of 434 PAMs of mGlu 4 from a high-throughput screen of approximately 155,000 compounds. The study highlighted a series of cyclohexyl amides joined to a substituted phenyl ring. The structures of these tested molecules and their experimentally determined EC 50 towards mGlu 4 potentiation were employed in the ANNs described in this paper. Engers et al. [12] discuss the synthesis and evaluation of a set of heterobiarylamides optimized for penetrating the central nervous system. Around the same time, several pyrazolo [3,4-d] pyrimidines were also described to be novel mGlu 4 positive allosteric modulators [13] . Two challenges in further developing PAMs of mGlu 4 as a PD treatment strategy are the low hit-rate of 0.3 % in the original highthroughput screen resulting in a small number of available ligands and the 'flat' structure activity relationship (SAR) around the 'proof of concept' compound PHCCC. Even slight structural modifications lead to complete loss of activity for the reported compounds [14] . However, successful modifications of PHCCC were reported later by our group [15] . The present study addressed both challenges by identifying additional PAMs from commercially available compound libraries and exploring the chemical space around the known active compounds.. Quantitative structure activity relationship (QSAR) models describe the often complex, non-linear relation between the chemical and physical properties of molecules and their biological activity; for a review of different methods see Todeschini et al. [16, 17] . Classical QSAR was introduced by Hansch et al. by deriving biological activity from electron density [18] . In 1988 Cramer [19] introduced Comparative Molecular Field Analysis (CoMFA.) CoMFA establishes 3D-QSAR by correlating sterics and electrostatics to the bioactivity data. This approach was expanded into the Comparative Molecular Similarity Index Analysis (CoMSIA) by Klebe [20] in 1994. However, both approaches rely on the spatial alignment of small molecules sharing a common scaffold. The QSAR techniques employed in the present and similar studies utilize 2D molecular fingerprints and 3D molecular descriptors coupled with machine learning [21] [22] [23] . These descriptors are independent from the orientation of the small molecule and the existence of a common scaffold. ANNs have been successfully applied in biochemistry to generate QSAR models [23] [24] [25] [26] [27] . Our group recently published a theoretical comparison of machine learning techniques for identification of compounds that are predicted allosteric modulators of the mGlu 5 glutamate response [28, 29] .. In the present study, artificial neural networks (ANNs) were trained on descriptors computed with the software package ADRIANA [30] linking chemical properties of small molecules to their potency as PAMs of mGlu 4 . Fragment-independent scalar descriptors, 2D and 3D surface and auto-correlation functions, and radial distribution functions are employed to encode a large diversity of chemotypes into comparable mathematical representations [29] . Artificial Neural Networks were trained to generate QSAR models from an HTS experimental dataset of compounds with hmGlu 4 G qi5 assay activity. A jury system, based on the three ANN models, generated improved enrichments when compared to each individual model. The enrichment factor of 22 determined from biological testing of 1,100 compounds prioritized from a commercial library of~450,000 substances demonstrates the predictive power of the method. Artificial Neural Networks (ANNs) were trained to predict the capability of drug-like molecules for allosteric potentiation of the metabotropic glutamate receptor subtype 4 (mGlu 4 ) based on a High Throughput Screen (HTS) as reported by Niswender et al. [11] . Commercially available databases of small molecules were virtually screened for novel PAMs of mGlu 4 . Hit compounds were verified experimentally in a human mGlu 4 G qi5 -mediated calcium assay and a rat mGlu 4 thallium flux assay. The ANN and the Resilient Propagation training algorithm [34] were implemented in the BioChemistryLibrary (BCL).. The BCL is an in house developed, object-oriented library written in the C++ programming language currently consisting of approximately 400 classes and 300,000 lines of code. Chemical descriptors were computed with ADRIANA [30, 33] based on three-dimensional structures generated by CORINA [32] .

O O O B I I O B I I I I O O O O O O B I 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 B I I I I 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 B I I I I 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 B I O O O O O O O O O O O O O O O O O B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 I 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 O O O O O O O O O O O O O


PYTHIA-II: a knowledge/database system for managing performance data and recommending scientific software Often scientists need to locate appropriate software for their problems and then select from among many alternatives. We have previously proposed an approach for dealing with this task by processing performance data of the targeted software. This approach has been tested using a customized implementation referred to as PYTHIA. This experience made us realize the complexity of the algorithmic discovery of knowledge from performance data and of the management of these data together with the discovered knowledge. To address this issue, we created PYTHIA-II-a modular framework and system which combines a general knowledge discovery in databases (KDD) methodology and recommender system technologies to provide advice about scientific software/hardware artifacts. The functionality and effectiveness of the system is demonstrated for two existing performance studies using sets of software for solving partial differential equations. From the end-user perspective, PYTHIA-II allows users to specify the problem to be solved and their computational objectives. In turn, PYTHIA-II (i) selects the software available for the user's problem, (ii) suggests parameter values, and (iii) assesses the recommendation provided. PYTHIA-II provides all the necessary facilities to set up database schemas for testing suites and associated performance data in order to test sets of software. Moreover, it allows easy interfacing of alternative data mining and recommendation facilities. PYTHIA-II is an open-ended system implemented on public domain software and Complex scientific, engineering, or societal problems are often solved today by utilizing libraries or some form of problem-solving environments (PSEs). Most software modules are characterized by a significant number of parameters affecting efficiency and applicability that must be specified by the user. This complexity is significantly increased by the number of parameters associated with the execution environment. Furthermore, one can create many alternative solutions of the same problem by selecting different software for the various phases of the computation. Thus, the task of selecting the best software and the associated algorithmic/hardware parameters for a particular computation is often difficult and sometimes even impossible. In Houstis et al. [1991] we proposed an approach for dealing with this task by processing performance data obtained from testing software. The testing of this approach is described in Weerawarana et al. [1997] using the PYTHIA implementation for a specific performance evaluation study. The approach has also been tested for numerical quadrature software [Ramakrishnan et al. 2000] and is being tested for parallel computer performance [Adve et al. 2000; Verykios et al. 1999] . This experience made us realize the high level of complexity involved in the algorithmic discovery of knowledge from performance data and the management of these data together with the discovered knowledge. To address the complexity issue together with scalability and portability of this approach, we present a knowledge discovery in databases (KDD) methodology [Fayyad et al. 1996 ] for testing and recommending scientific software. PYTHIA-II is a system with an open software architecture implementing the KDD methodology, which can be used to build a Recommender System (RS) for many domains of scientific software/hardware artifacts [Weerawarana et al. 1997; Ramakrishnan et al. 2000; Verykios 1999; Verykios et al. 2000] . In this paper, we describe the PYTHIA-II architecture and its use as an RS for PDE software.. Given a problem from a known class of problems and given some performance criteria, PYTHIA-II selects the best-performing software/machine pair and estimates values for the associated parameters involved. It makes recommendations by combining attribute-based elicitation of specified problems and matching them against those of a predefined dense population of similar types of problems. Dense here means that there are enough data available so that it is reasonable to expect that a good recommendation can be made. The more dense the population is, the more reliable the recommendation. We describe case studies for two sets of elliptic partial differential equations software found in PELLPACK ].. We now describe a sample PYTHIA-II session ( Figure 1 ). Suppose that a scientist or engineer uses PYTHIA-II to find software that solves an elliptic partial differential equation (PDE) . The system uses this broad categorization to direct the user to a form-based interface that requests more specific information about features of the problem and the user's performance constraints. Figure 1 illustrates a portion of this scenario where the user provides features about the operator, right side, domain, and boundary conditions-integral parts of a PDE-and specifies an execution time constraint (measured on a Sun SPARCstation 20, for instance) and an error requirement to be satisfied. Thus the user wants software that is fast and accurate; it is possible that no such software exists. The RS contacts the PYTHIA-II (web) server on the user's behalf and uses the knowledge acquired by the learning methodology presented in this paper to perform a selection from a software repository. Then the RS consults databases of performance data to determine the solver parameters, such as grid lines to use with a PDE discretizer, and estimates the time and accuracy using the recommended solver. Note that the RS does not involve the larger databases used in the KDD process, it only accesses specialized, smaller databases of knowledge distilled from the KDD process.. The paper is organized as follows. Section 2 describes a general methodology for selecting and recommending scientific software implemented in PYTHIA-II. The architecture for an RS based on the PYTHIA-II approach is presented in Section 3. A description of the data management subsystem of PYTHIA-II is presented in Section 4. We include a database schema appropriate for building an RS for elliptic PDE software from the PELL-PACK library to illustrate its use. Section 5 outlines the knowledge discovery components of PYTHIA-II. The data flow in PYTHIA-II is illustrated in Section 6. The results of applying PYTHIA-II to two case studies

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 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 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 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 I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Abstracting runtime heaps for program understanding Modern programming environments provide extensive support for inspecting, analyzing, and testing programs based on the algorithmic structure of a program. Unfortunately, support for inspecting and understanding runtime data structures during execution is typically much more limited. This paper provides a general purpose technique for abstracting and summarizing entire runtime heaps. We describe the abstract heap model and the associated algorithms for transforming a concrete heap dump into the corresponding abstract model as well as algorithms for merging, comparing, and computing changes between abstract models. The abstract model is designed to emphasize high-level concepts about heap-based data structures, such as shape and size, as well as relationships between heap structures, such as sharing and connectivity. We demonstrate the utility and computational tractability of the abstract heap model by building a memory profiler. We use this tool to identify, pinpoint, and correct sources of memory bloat for programs from DaCapo. M ODERN programming environments provide excellent support for visualizing and debugging code, but inspecting and understanding the high-level structure of the data manipulated at runtime by said code is typically not well supported. Visualizing entire runtime heap graphs is a nontrivial problem as the number of nodes and edges is typically so large that displaying these graphs directlyeven with excellent graph visualization tools-results in useless jumbles of nodes and edges. As a result, little of interest can be gleaned from such visualizations.. In this paper, we propose an abstract domain for runtime heap graphs that captures many fundamental properties of the data structures on the heap, such as shape, connectivity, and sharing, but abstracts away other often less useful details. The abstract heap graphs we compute are both small enough to visualize and navigate and at the same time precise enough to capture essential information useful in interactive debugging and memory profiling scenarios. Further, the abstract heaps can be computed efficiently from a single concrete heap and further merged/compared with other abstract heap graphs. These graphs can come from across a set of program runs or from multiple program points in order to get an even more general view of the heap configurations that occur during program execution.. Example. Fig. 1a shows a heap snapshot of a simple program that manipulates arithmetic expression trees. An expression tree consists of binary nodes for Add, Sub, and Mult, and leaf nodes for Constants and Variables. The local variable exp (rectangular box) points to an expression tree consisting of four interior binary expression objects, 2 Var, and 2 Const objects. Local variable env points to an array representing an environment of Var objects that are shared with the expression tree. Fig. 1b shows the abstract heap produced by our tools from this concrete heap with the default visualization mode. 1 Additional information can be obtained by hovering over the nodes, the edges, or by restyling for a specific task as in our case studies (Section 6). The abstraction summarizes the concrete objects into three distinct summary nodes in the abstract heap graph: 1) an abstract node representing all interior recursive objects in the expression tree (Add, Mult, Sub), 2) an abstract node representing the two Var objects, and 3) an abstract node representing the two Const objects. Specific details about the order and branching structure of expression nodes are absent in the abstraction, but other more general properties are still present. For example, the fact that there is no sharing or cycles among the interior expression nodes is apparent in the abstract graph by looking at the self-edge representing the pointers between objects in the interior of the expression tree. The label tree{l,r} on the self-edge expresses that pointers stored in the l and r fields of the objects in this region form a tree structure (i.e., no sharing and no cycles). The abstract graph maintains another useful property of the expression tree, namely, that no Const object is referenced from multiple expression objects. On the other hand, several expression objects might point to the same Var object. The abstract graph shows possible sharing using wide orange colored edges (if color is available), whereas normal edges indicate non-sharing pointers. The abstract graph shows pointer nullity via full versus dashed lines-in our example, all pointers, except in the environment array, are nonnull.. Rudimentary information on the number of objects represented by each node is encoded in the shading. Nodes that always abstract a single object are given a white background, while nodes which represent multiple objects are shaded (silver if color is available). Size information of arrays and other containers is encoded by annotating the type label with the container size (Var [3] to indicate an array is of length 3).. Overview. This paper addresses the problem of turning large concrete runtime heaps into compact abstract heaps while retaining many interesting properties of the original heap in the abstraction. Our abstraction is safe in the sense that properties stated on the abstract heap graph also hold in the corresponding concrete heaps. To achieve this abstraction safety, we adopt the theory for the design of abstract domains developed in abstract interpretation [1] , [2] . The theory of abstract interpretation provides a general framework for 1) defining an abstract domain and relating it to possible concrete program states and 2) a method for taking an abstract domain and computing an overapproximation of the collecting semantics for a given program as a static analysis. The static analysis component of the abstract interpretation framework is not relevant here as we are interested in abstracting runtime heaps. However, the framework provides theoretical structure and guarantees when constructing the abstract domain and the operations for comparing (v ) and merging ( e t) abstract domain elements. The theory provides a formal relationship between the abstract heap graphs with their concrete counterparts, and ensures that the operations for comparing and summarizing heaps from different program points or different program runs are safe and semantically meaningful. The guarantees provide confidence that all inferences made from the abstract model are valid.. Our abstract heap domain encodes a fixed set of heap properties identified in previous work on static heap analysis [3] , [4] , [5] that are fundamental properties of heaps and can be computed efficiently. These properties include the summarization of recursive and composite data structures, the assignment of shape information to these structures, and injectivity of fields (given two distinct objects, does the field f in each object point to a distinct target). The abstraction is also able to provide information on the number and types of objects in the various structures, as well as nullity information. Our focus on a fixed set of heap properties (as opposed to user defined properties) enables the abstraction to be computed efficiently in time OððOb þ P tÞ Ã logðObÞÞ, where Ob is the number of objects and P t is the number of pointers in the concrete heap.. The contributions of this paper are:. . An abstract domain for heap graphs and its concretization function formalizing the safe relationship to concrete heaps. . Efficient OðE Ã logðNÞÞ algorithms for computing the abstract heaps and for comparing or merging them. . Graphical representations of abstract heap graphs that allow on-demand collapsing or expansion of substructures, allowing a form of semantic zoom [6] from a very abstract view of the heap down to the level of individual objects. . The construction of a general purpose heap memory profiler and analysis tool that augments the basic abstraction with specialized support for profiling and identifying common memory problems in a program. . A qualitative evaluation of the visualization and memory profiler in tracking down and identifying solutions to memory inefficiencies in a range of programs (up to a 25 percent reduction in memory use). This paper introduces a new runtime technique for program understanding, analysis, and debugging. The heap abstraction presented in this work constructs compact representations of the runtime heap in order to allow effective visualization and navigation. At the same time, the abstraction retains crucial high-level properties of the heap, such as pointer relations and the shape of various subgraphs. The construction of the abstraction ensures that the abstract graph is a safe representation of the concrete heap, allowing the programmer (or other tools) to confidently reason about the state of the memory by looking at the abstract representation. Our benchmarks and case studies demonstrate that abstract heap graphs can be efficiently computed, contain interesting information on the heap structure, and provide valuable information for identifying and correcting memory use related defects. Given the utility of the abstraction in these studies, we believe there are a number of other applications, including thread races, refactoring for parallelism, interactive debugging, and computing runtime heap invariants, where this abstraction would be useful. Developing debugger support for the program heap is an ongoing active research area. The work in [26] outlines many of the basic issues that arise when attempting to visualize concrete program heaps and [27] presents some abstractions to help alleviate some of these issues. There is a large body of work on techniques to improve the efficiency and effectiveness of debugging [28] , [29] , [30] , [31] , [32] , [33] . Work in [34] takes the same general approach as this work but focuses on the interactive aspects of visualizing the heap, in particular allowing the developer to inspect individual objects in a larger structure.. Work by Mitchell et al. [16] , [17] has a number of similarities to the work in this paper. Both approaches use a set of grouping heuristics to partition structures in the heap and then extract information about the partitions, but the partitioning strategy and information extracted differ substantially. The approach to abstraction taken in this work focuses on identifying structures and sharing/aliasing relations using type information and predecessor fields. In contrast, [16] , [17] focus on ownership and memory consumption using dominator relations plus information on predecessor types. On the SPEC JVM98 raytracer, [17] produces a graph with four nodes and does not resolve the Face and Point structure. As shown in our case study, Section 6.1, the abstraction in this paper produces a graph with 50 nodes and provides detailed information on memory use and sharing in the Face and Point structure. Given these differences in grouping heuristics, there is also a large difference in the focus on what type of information is extracted. In particular, the abstraction in this paper is designed to aid programmer understanding of the structure and connectivity of various heap structures and so it explicitly extracts information on shape, edge injectivity, pointer nullity, container sizes, in addition to information on the sizes of various data structures. While some of these properties can, in some cases, be reconstructed using fan-in/ fan-out and object count information, the majority of the information computed in [16] , [17] focuses on the specific task of identifying memory inefficiencies in large Java programs. We also note that the approach taken in [16] , [17] has the same asymptotic cost as the work in this paper. There is a substantial amount of work on the development of heap models for use in static program analysis [9] , [4] , [35] , [36] . Whereas program analysis is concerned with computability and obtaining enough precision at reasonable cost, the main challenge in abstracting runtime heaps is to obtain very small models that can be visualized while retaining many useful properties of the original heap. We believe, though, that insights in static heap analysis can inform the abstractions of runtime heaps and vice versa. For example, it would be interesting to provide programmers with more control over the abstractions produced via instrumentation predicates [9] , [36] . The approach in [35] uses a less descriptive model than the one presented in this paper; for example, it does not consider information such as injectivity or shape. Work in [37] , [10] uses a related idea of taking a concrete heap from a C/C++ or Java program and inferring the types [37] or basic shapes [10] of heap structures.

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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


RCytoscape: tools for exploratory network analysis Background: Biomolecular pathways and networks are dynamic and complex, and the perturbations to them which cause disease are often multiple, heterogeneous and contingent. Pathway and network visualizations, rendered on a computer or published on paper, however, tend to be static, lacking in detail, and ill-equipped to explore the variety and quantities of data available today, and the complex causes we seek to understand. Detailed, data-driven network visualization and the open-ended computational power and statistical richness of the R programming environment can be useful at all stages of analysis of biological data. RCytoscape enables the construction of detailed molecular maps that reveal significant heterogeneity beyond statistically robust classifier consensus average linkage hierarchical clustering obtained by Verhaak et al. [16] . Differences seen in the RCytoscape-derived maps suggest different autocrine loops may be active in proneural glioblastoma tumors, with two complimentary gene/protein pairs in each. Such a classification is valuable, and can set the stage for the careful characterization of individual tumors and design of new treatment strategies. Subsequent steps along the road to clinically useful prediction and control of these phenomena will involve more rounds of confirmatory and exploratory data analysis, simulation and modeling.. Linking R with Cytoscape has value for many different kinds of analyses beyond what is described here. Recently, Grimes et al., [26] used RCytoscape to graph nodes in two and three dimensions using coordinates derived from dimension reduction (embedding) algorithms, and plot networks using protein-protein interaction edges merged from three different databases, setting visual properties for nodes and edges based on quantitative information from a lung cancer phosphoproteomic data set. RCytoscape will be useful to anyone who wishes to add network visualization and analysis to the rich resources available in the R programming environment. Molecular biology has made great progress in recent years by measuring the abundance and characteristics of many kinds of molecules, often at a global level. Whole genomes have been sequenced, global mRNA and miRNA levels assessed, protein expression measured, phosphorylation and methylation states assayed. Many protein structures have been determined. Progress towards understanding the dynamic relations and interactions among these molecular components, however, has lagged significantly [1] . It is precisely these complex system behaviors which must be understood in order to comprehensively predict and control cellular processes in health and disease.. Causal explanations in molecular biology of sufficient depth and completeness to explain disease, and to create the basis for successful therapy, are almost never simple. Cancer, for example, is currently understood to consist of six separate processes, or "hallmarks", each of which is controlled by redundant and overlapping pathways [2] . Even classic single gene disorders show variable age of onset and severity, apparently due to the influence of modifier genes [3] . A recent theoretical framework establishes that the control of gene regulatory networks requires prior control of more than half the constituent nodes [4] . Phosphorylation networks exhibit similar complexity and resistance to manipulation [5] . As we explore and map this complex terrain, using ever larger amounts of heterogeneous (and often noisy) data, network visualization tools integrated within a statistically powerful programming environment will prove indispensable. RCytoscape provides one such set of tools.. Many and diverse kinds of software will be needed in order to achieve prediction and control of cellular processes. We distinguish two broad classes on the basis of novelty. Software for routine bioinformatics, in which wellstudied algorithms are applied to well-understood kinds of data, can be distinguished from software required for novel bioinformatics and computational biology, in which the data are often less well understood, and for which new algorithms must be developed. Routine bioinformatics is often accomplished with web-based and point-and-click desktop applications. Gene Set Enrichment Analysis (GSEA), a Java application offered by the Broad Institute calculates over-representation in curated gene data sets for an experimenter's expression data: one loads mRNA expression data from a file, chooses the gene set categories of interest, obtains a list of enriched categories. No opportunity is provided to filter the input data, to transform it in possibly revealing ways, to correlate with related data, to display in the context of known gene and protein interactions, to apply experimental algorithms before and after the enrichment step. Novel bioinformatics and computational biology, however, require a programming language (or languages). They depend upon robust and full-featured statistical and modeling libraries, easy access to many kinds of data and annotation, and strong visualization capabilities, harnessed together into a programming environment for exploration, modeling and analysis.. In a recent review of network display software incorporating high throughput molecular biology data [6] Gehlenborg et al. conclude that "truly integrated visualization of systems biology data across the entire range of possible data types is still very much in its infancy." With one notable exception, the software included in this review are point-and-click web or desktop applications. (The exception is a small set of multivariate gene expression analyses and visualizations accomplished with R, whose special capabilities and utility we discuss below). The effective integration and visualization of large quantities of multiple kinds of data requires frequent recourse to statistical programming and exploratory visualization. Normalization techniques, for example, must be chosen and applied with caution, iteratively and provisionally, with frequent recourse to visual assessment when data from diverse sources are combined. For the foreseeable future these integration and visualization activities will not be routine, will require programming and interactive engagement with the data, and will thus be beyond the capabilities of point-and-click software performing routinized analyses.. In addition to the above classification of software by novelty, we also distinguish, on another axis, different types of bioinformatic and computational biology activities. Drawing in part upon an NIH classification [7] these categories include: exploratory data analysis, confirmatory data analysis (including hypothesis testing), statistical inference (including clustering and classification), mathematical modeling, and simulation. Listed in an ascending order of complexity and rigor, and sorted into what might be early, medium and late stage bioinformatic or computational research activities, in fact these activities are interleaved and repeated, in an improvised manner, throughout such research projects.. Exploratory Data Analysis (EDA) [8] and information graphics [9] are two related disciplines associated, respectively, with statistician John Tukey and data visualization pioneer Edward Tufte. Together they provide the rationale for high quality network visualization, and describe the role it can play in novel bioinformatics and computational biology. Their combined claim may be summarized thus: that the judicious display and exploration of data contributes insight into the data and into possible causal relationships which may otherwise be missed. John Tukey: "[Visualization methods] … are there, not as a technique, but rather as recognition that the picture-examining eye is the best finder we have of the wholly unanticipated" [10] . As a proponent of good techniques for visualizations, Tufte has said, "There is no such thing as information overload, just bad design. If something is cluttered and/or confusing, fix your design" [11] . Integrating a powerful scripting language with network visualization software, as we argue for here, empowers Tukey's picture-examining eye, and makes possible Tufte's injunction to "fix your [visual] design".. Thus the goal is to improve network visualization: to increase the ease and sophistication with which detailed molecular maps can be constructed, in order that they may contribute to all of the novel bioinformatic and computational biology, network-related activities listed above. RCytoscape connects R and Cytoscape using XMLRPC, a standard WWW protocol for transmitting messages and data between programs. It is implemented in the 'CytoscapeRPC' plugin and by the complementary open source RCytoscape package, written in R and freely available through the Bioconductor web site. Nearly all of Cytoscape's operations appear as function calls in R. Networks can be assembled from data marshaled in R from public or proprietary network databases and then displayed in Cytoscape. Conversely, data and networks loaded into Cytoscape using native Cytoscape methods may be imported into an R session via a simple function call. Network layout and visual mapping for nodes and edges can be specified and applied. Zooming and selection, filtering based on attributes, animation (changing node positions, changing node and edge colors, shapes and sizes) all become possible. R is a complete, interpreted and batchoriented programming environment, so network creation, manipulation, exploration and analysis can proceed one command at a time, or be combined into scripts and programs, encouraging reproducible analysis, and thus reproducible research. By contrast, recreating visualizations in Cytoscape, and any analyses performed through the traditional Cytoscape combination of interactive commands and plugins, can only be accomplished by recapitulating a precise sequence of mouse clicks, which is error-prone and which restricts the dissemination of useful analyses.. Another virtue of scripting control of Cytoscape is the ease which with animations (dynamic displays) can be made. When a sequence of Cytoscape maps are displayed, or when a single map is modified by scripted commands, an extra dimension of information is added. This extra dimension may be time, based upon timeseries experimental data, but it can equally well, for example, be cell-type, or treatment. The underlying scripting and display techniques are the same: several frames are shown in sequence, and optionally saved as replayable images (see Additional files 1, 2 and 3).. RCytoscape provides three methods for distributing ('publishing') biomolecular maps, static or dynamic, each tailored to a different audience. Simple browser publishing is supported by exporting dynamic network images from RCytoscape into a web page. For experienced Cytoscape users, networks created with RCytoscape may be saved and shared as Cytoscape session files. In laboratory settings where some programming skill is available, and particularly where cross-laboratory collaborations are involved, code and data can be combined into easily shared R packages so that networks, experimental data, algorithms and visualization become 'live documents' shared and evolving over time (the case study, below, is provided as an R package; Additional files 4 and 5 demonstrate this valuable scientific practice).. With the release of Cytoscape 3.0 in February of 2013, a new application architecture is available. With version 3.1, expected in late 2013, built-in support for a "RESTful" [25] inter-process communication protocol is planned, coupled to the new "TaskFactory" API. This will provide the basis for the next version of RCytoscape. A native Python scripting interface will very likely appear then as well. However, even with the availability of native Python scripting for Cytoscape, R and RCytoscape will continue to offer unique capabilities, power and convenience due to R's long history, and its current capabilities and popularity for doing bioinformatics and computational biology.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 B 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 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 O O O O O O O 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 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 B O O O O O O O O O O O O B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I I 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 B 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 O O O 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 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 B O O O


The Cognitive Internet of Things: A Unified Perspective Abstract In this article, we present a unified perspective on the cognitive internet of things (CIoT). It is noted that within the CIoT design we observe the convergence of energy harvesting, cognitive spectrum access and mobile cloud computing technologies. We unify these distinct technologies into a CIoT architecture which provides a flexible, dynamic, scalable and robust network design road-map for large scale IoT deployment. Since the prime objective of the CIoT network is to ensure connectivity between things, we identify key metrics which characterize the network design space. We revisit the definition of cognition in the context of IoT networks and argue that both the energy efficiency and the spectrum efficiency are key design constraints. To this end, we define a new performance metric called the 'overall link success probability' which encapsulates these constraints. The overall link success probability is characterized by both the self-sustainablitiy of the link through energy harvesting and the availability of spectrum for transmissions. With the help of a reference scenario, we demonstrate that well-known tools from stochastic geometry can be employed to investigate both the node and the network level performance. In particular, the reference scenario considers a large scale deployment of a CIoT network empowered by solar energy harvesting deployed along with the centralized CIoT device coordinators. It is assumed that CIoT network is underlaid with a cellular network, i.e., CIoT nodes share spectrum with mobile users subject to a certain co-existence constraint. Considering the dynamics of both energy harvesting and spectrum sharing, the overall link success probability is then quantified. It is shown that both the self-sustainability of the link, and the availability of transmission opportunites, are coupled through a common parameter, i.e., the node level transmit power. Furthermore, provided the co-existence constraint is satisfied the link level success in the presence of both the inter-network and intra-network interference is an increasing function of the transmit power. We demonstrate that the overall link level success probability can be maximized by employing a certain optimal transmit power. Characterization of such an optimal operational point is presented. Finally, we highlight some of the future directions which can benefit from the analytical framework developed in this paper. The term 'internet-of-things' (IoT) was coined by Kevin Ashton in 1999. The central idea was to empower everyday objects with internet connectivity thus enabling pervasive and autonomous communication. The foundation of IoT is based on Weiser's [1] vision of profound software/hardware technologies that weave themselves into the fabric of everyday life such that they become indistinguishable. The functionality and modalities of these technologies is distributed across a variety of interconnected objects. This inter-connectivity of these objects is pivotal as the collective intelligence of the IoT network emerges from simple object level interactions.. In turn, such a collective intelligence can be credited with driving significant innovations in the context of various applications under the umbrella of smart homes and cities. In this article, we provided a unified architecture for the cognitive internet-of-things (CIoT) framework. We advocate that the definition of cognition must be extended to incorporate IoT specific design challenges. We solicited a cloud based cognitive underlay spectrum access for the IoT radio platforms. Furthermore, energy harvesting is proposed to attain so called self-sustainable network design. We introduce a novel statistical framework to characterize the energy and spectral success in CIoT networks. The relationship between energy and spectral outages was explored for a reference scenario of solar energy harvesting with stochastic cloud cover. It was shown that both metrics are coupled as 'overall success' as they are governed by same underlying parameter, i.e., transmit power. Finally, there exists a tradeoff between maximizing spectral success and the availability of energy and thus an analytical framework was developed to obtain the optimal transmit power to maximize network level performance. He is also interested in deriving emerging wireless application oriented unified frameworks for machine type communications, emerging cognitive radio communications and ubiquitous remote/mobile healthcare communications. He has published/produced more than 75 technical journal and conference papers and has contributed to 6 books, all in well reputed venues. His most of the research has been sponsored by Qatar National Research Fund (QNRF) and national industrial partners. Muhammad Ali Imran Surrey (the 5G innovation Centre and an outdoor cellular test bed is being developed at Surrey University with a recent grant of above £35m). He has a global collaborative research network spanning both academia and key industrial players in the field of wireless communications. He has supervised 17 successful PhD graduates and published over 150 peer-reviewed research papers including more than 20 IEEE Journals. His research interests include the derivation of information theoretic performance limits, energy efficient design of cellular system and learning/self-organizing techniques for optimization of cellular system operation. He was tutorial chair for EW 2013 and TPC member of several IEEE conferences. He is active reviewer for IEEE Trans. and Letters, editor for the Journal of Information Technology and software feature topic issue Engineering (JITSE) and the International Journal of Applied Control, Electrical and Electronics Engineering (IJACEEE). He is a guest editor for IEEE Commun. feature topic issue on emerging applications, services and engineering for cognitive cellular systems to appear in 2015. He has been awarded the 2014 IEEE ComSoc Fred W. Ellersick Prize Award. His research team is currently involved in EU funded iJoin project which specifically focuses on backhaul solutions. 1. As seen from Figs. 4 and 5, there always exists an optimal transmit power point which maximizes the overall success probability. This is due the fact that as the transmit power increases, the maximum SAP (p max c ) reduces to activate lesser CIoT devices and the SIR increases and hence the probability of successful transmission increases. However, as the desired transmit power goes high, the available harvested energy becomes insufficient. The optimal transmit power point may lie in either the spectrum limited regime, i.e. when ǫ The location of the optimal point depends solely on the solar panel parameters and other network related parameters which affect the slope of ǫ {e} suc (P c ) and ǫ {s} suc (P c ). As illustrated in Fig. 4 , the decrease in ǫ {e} suc (P c ) is more rapid than the increase in ǫ {s} suc (P c ) for the given set of parameters hence, the optimal power point lies in the spectrum limited regime. 2. Cloud cover plays an immensely important role in determining the CIoT performance. Comparing the clear sky (okta 0) and heavily cloudy conditions (okta 8) in Fig. 5 , a drop of almost 76% in the maximum overall success probability is observed while for partially cloudy conditions, this drop is fairly reasonable (around 17% and 24% for okta 6 and less and okta 7 respectively). Not only does the cloud cover affect the maximum overall success probability, it also changes the optimal transmit power. This can be intuitively explained by the fact that as the sky becomes clearer, a higher amount of energy can be harvested and also consumed in achieving a high spectral coverage. Thus, the a higher optimal power can be adopted when the harvested energy is high. (11), (21) and (29)).

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 O O O O O O O O O O B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Reconstructing building mass models from UAV images We present an automatic reconstruction pipeline for large scale urban scenes from aerial images captured by a camera mounted on an unmanned aerial vehicle. Using state-of-the-art Structure from Motion and Multi-View Stereo algorithms, we first generate a dense point cloud from the aerial images. Based on the statistical analysis of the footprint grid of the buildings, the point cloud is classified into different categories (i.e., buildings, ground, trees, and others). Roof structures are extracted for each individual building using Markov random field optimization. Then, a contour refinement algorithm based on pivot point detection is utilized to refine the contour of patches. Finally, polygonal mesh models are extracted from the refined contours. Experiments on various scenes as well as comparisons with state-of-the-art reconstruction methods demonstrate the effectiveness and robustness of the proposed method.

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 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 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