dataesr/scientific-paragraphs-categorization huggingface dataset:
For this purpose, their first task consists in having a look at basic Octave and Python programmes. The educational target of this task is that they understand the similarities and differences between Octave, Python and other structured text languages. The second task for them is to study some image processing programmes in Python, aiming for instance at extracting the visually salient points in an image. The third task consists in writing their own image processing programme with Python language: keypoint extraction and matching. The steps of the programme are as follows: importation of required SimpleCV modules; definition of the size of the image provided by the camera; definition of the display window; definition of the variable which will contain the matrix image provided by the camera; performing binarization, dilation, and erosion.
We split the practical work session into three phases: 10 to 20% for a large group lecture/face-to-face, 35 to 45% for a pair working, and 35 to 45% for the combination of the codes produced by each pair. During the second phase, each pair logs to the provided RPi with the 'Putty' software, and checks that two other pairs of their team are also connected with the $ who command line. A common folder is created and each pair is supposed to edit files inside this folder. Then, each pair creates a python program (first typing sudo nano Prog. py on the CLI). During a 4-hour session for instance, several exercises can be performed. In the following we detail a face detection application: pair 1 encodes image acquisition, pair 2 encodes face detection and pair 3 encodes image display. The code must be preceded by the following code lines to import of the required packages: from SimpleCV import Camera, Display from SimpleCV import Image During the third phase, the 3 pairs of each team combine together their codes, firstly checking that the acquisition and the display of the image are running correctly, secondly inserting the face detection step.
V. CONCLUSION This paper describes a new manner to teach new trends on micro-computers and digital signal processing. It is centered on the Raspberry Pi. As it is a low-cost micro-computer, designed entirely using open source software components, it is a valuable candidate to teach the students a whole chain of real-time image processing system. Firstly, we propose a project approach as an alternative to the theory-oriented introductory courses. It aims at improving the students' understanding of the computers: the difference between hardware and software, between graphical user interface and command line interface, between operating system, memory chip and processor. The interest of the students for our project approach has been confirmed by an evaluation. Secondly, we propose a time-limited practical work approach: we took advantage of the possibility to control an RPi remotely, to create a low-cost classroom setup where several student pairs share one RPi, to emphasize the interest of collaborative work.
Background: Many entries in the protein data bank (PDB) are annotated to show their component protein domains according to the Pfam classification, as well as their biological function through the enzyme commission (EC) numbering scheme. However, despite the fact that the biological activity of many proteins often arises from specific domain-domain and domain-ligand interactions, current on-line resources rarely provide a direct mapping from structure to function at the domain level. Since the PDB now contains many tens of thousands of protein chains, and since protein sequence databases can dwarf such numbers by orders of magnitude, there is a pressing need to develop automatic structure-function annotation tools which can operate at the domain level. Results: This article presents ECDomainMiner, a novel content-based filtering approach to automatically infer associations between EC numbers and Pfam domains.
ECDomainMiner finds a total of 20,728 non-redundant EC-Pfam associations with a F-measure of 0. 95 with respect to a "Gold Standard" test set extracted from InterPro. Compared to the 1515 manually curated EC-Pfam associations in InterPro, ECDomainMiner infers a 13-fold increase in the number of EC-Pfam associations. Conclusion: These EC-Pfam associations could be used to annotate some 58,722 protein chains in the PDB which currently lack any EC annotation. The ECDomainMiner database is publicly available at http://ecdm. loria. fr/.
Background Proteins perform many essential biological functions such as catalysing metabolic reactions and mediating signals between cells. These functions are often carried out by distinct "domains", which may be identified as highly conserved regions within a multiple alignment of a group of similar protein sequences, as in the Pfam classification  [1]. It is widely accepted that such protein domains often correspond to distinct and stable three-dimensional (3D) structures, and that there is often a close relationship between protein structure and protein function  [2]. Indeed, it is well known that protein structures are often more highly conserved than protein sequences  [3] , and this suggests that proteins with similar structures will have similar biological functions  [4]. The Protein Data Bank *Correspondence: dave.
Similarly, a protein may have two or more distinct domains, each of which provides a distinct enzymatic (or non-enzymatic) function (Fig. 1b ). On the other hand, a protein domain could be involved in more than one catalytic activity, as illustrated in Fig. 1c. Finally, a catalytic site may be at the interface between two domains, or one domain serves as a necessary co-factor for the other (Fig. 1d ). Clearly, it is biologically relevant to be able to distinguish all such cases. However, except for the simplest case (Fig. 1a ), it can be seen that finding domain-EC associations automatically is a non-trivial task. Several groups have described approaches or resources that can associate entire PDB protein chains with enzyme EC numbers  [8] [9] [10] [11]. Probably the most up-to-date and exhaustive association between PDB chains and EC numbers is provided by SIFTS  [12] , which is a collaboration between the Protein Data Bank in Europe and UniProt  [13].
SIFTS incorporates a semi-automated procedure which links PDB chain entries to external biological resources such as Pfam, and IntEnz  [14]. While all of the above mentioned approaches can provide associations between PDB protein chains and enzyme EC numbers, to our knowledge, very few approaches have been published for automatically assigning EC numbers to structural domains. SCOPEC  [15]  uses sequence information from SwissProt and PDB entries that have been previously annotated with EC numbers in order to assign EC numbers to SCOP domains  [16]. It first looks for PDB chains that fully map to SwissProt entries (to within up to 70 residues) and that match on at least the first three EC number digits. In this way, SCOPEC identifies single domain structures that can be associated unambiguously with an EC number.
Although SCOPEC can subsequently propagate a known EC-domain association to a matching domain in a multi-domain protein, it is generally not able to resolve cases where multiple ECs are associated with multi-domain chains (parts B, C, and D in Fig. 1. Furthermore, it appears that the SCOPEC database is no longer available on-line. In contrast, the dcGO ontology database for protein domains produced in 2012 is still available online and provides several ontological annotations (Gene Ontology: GO, EC, pathways, phenotype, anatomy and disease ontologies) for more than 2000 SCOP domain families  [17]. The dcGO approach follows the principle that if a GO term tends to be attached to proteins in UniPro-tKB that contain a certain domain, then that term should be associated with that domain. The statistical significance of an association is assessed against a random chance association using a hypergeometric distribution followed by multiple hypotheses testing in terms of false discovery rate.
Such an approach has recently been applied to a quite different problem of discovering novel cancer drug combinations  [24]. Here, we use content-based filtering to associate EC numbers with Pfam domains from existing EC-chain and Pfam-chain associations from SIFTS, and from ECsequence and Pfam-sequence associations from SwissProt and TrEMBL, where protein chains and sequences serve as the common attributes through which EC-Pfam associations are made. Note that our approach does not attempt to identify catalytic sites or catalytic residues. Rather, we aim to detect frequent co-occurrences of Pfam domains and EC numbers in order to deconvolute the often complex EC-Pfam relationships within multidomain and multi-function protein chains. We assess the performance of our approach against a "Gold Standard" dataset derived from InterPro  [25] , and we compare our results with the Pfam-EC associations derived from the dcGO database.
Data preparation Our data sources are SIFTS for EC number and Pfam domain annotations of PDB chains, and Uniprot for EC number and Pfam domain annotations of protein sequences. UniProt is divided into three parts: (i) the nonredundant, high quality, manually curated SwissProt part, (ii) the TrEMBL data that are annotated using Unified Rules  [26] , called here UniRule, and (iii) the rest called here TrEMBL. In addition, in order to parameterise and evaluate ECDomainMiner, we use the InterPro database  [25]  which contains a large number of manually curated EC-Pfam associations. Flat data files of SIFTS (July 2015), Uniprot (July 2015), and InterPro (version 53. 0) were downloaded and parsed using in-house Python scripts. From the SIFTS data, associations between EC numbers and PDB chains, and associations between PDB chains and Pfam domains were extracted.
Associations between Uniprot sequence accession numbers (ANs) and EC numbers, and AN-Pfam associations were then extracted from the Swis-sProt section of Uniprot to give a dataset of Swissprot associations. For the TrEMBL entries, we collected and stored the corresponding AN-EC and AN-Pfam associations which had been annotated by UniRule, and those associations lacking UniRule annotations to give two further sequence-based datasets of associations, which we call the UniRule and TrEMBL association datasets. To avoid bias due to duplicate structures or sequences in the four source datasets, all PDB chains and Uniprot sequences were grouped into clusters having 100% sequence identity using the Uniref non-redundant cluster annotations  [27] , and each cluster was assigned a cluster unique identifier (CID).
Note that since just a few point mutations can dramatically change an enzyme's substrate specificity, making clusters of identical rather than highly similar sequences avoids the risk of falsely clustering proteins that share highly similar folds but which have quite different substrates. The source EC-chain and EC-AN associations were then mapped to the corresponding CID in order to make four sets of EC-CID associations. A similar mapping was applied to the source Pfam-chain and Pfam-AN associations to give four sets of Pfam-CID associations. For the reference data, we extracted from InterPro a total of 1515 EC-Pfam associations in which each EC number had all four digits and each Pfam accession number referred either to a Pfam domain or a Pfam family (i. e. Pfam motifs and repeats were excluded).
These associations were considered to be "positive examples", and were randomly divided into two equal "training" and "test" subsets. However, for training purposes, we also needed some "negative examples". We therefore created a set of "false" EC-Pfam associations by first shuffling the CID-EC and CID-Pfam associations from SIFTS dataset, and by then randomly collecting 1515 wrong EC-Pfam associations from the shuffled datasets. In the rest of this article, we will refer to the combined set of 758 randomly chosen positive examples from InterPro and 758 randomly chosen negative examples as our "training dataset" and the remaining 1513 positive and negative examples as our "test dataset".
Inferring EC-Pfam domain associations The main idea underlying the discovery of hidden EC-Pfam associations is to assign a feature vector to each EC number and each Pfam domain, where the length of the vector is given by the total number of PDB and UniProt CIDs, and where each vector element marks the existence (1) or absence (0) of an EC number or Pfam domain annotation for a particular CID. Each possible EC-Pfam association is then scored using the cosine similarity between the corresponding pair of EC and Pfam feature vectors. The various steps of our content-based filter approach for finding associations between 4-digit EC numbers and Pfam domains are illustrated in Fig. 2  for the SIFTS dataset. First, all relations between PDB CIDs and EC numbers, and between PDB CIDs and Pfam domains are extracted from SIFTS, as described above.
Similarly, raw EC-Pfam association scores are calculated from EC-CID and Pfam-CID relations extracted from SwissProt, TrEMBL and Unirule. Then, because we wish to draw upon the relations from all four datasets, we combine the four raw scores as a weighted average to give a single normalized confidence score, CS ec,d : CS ec,d = i w i S i (ec, d) i w i ( 1 ) where i ∈ {SIFTS, Swissprot, TrEMBL, UniRule} enumerates the four datasets, w i are weight factors, to be determined, and where an individual association score, S i (ec, d), is set to zero whenever there is no data for the (ec, d) pair in dataset i. In order to find the best values for the four weight factors, receiver-operator-characteristic (ROC) curves  [28]  were calculated using the positive examples of our Interpro-based training dataset, against the remaining associations (background associations).
Defining a confidence score threshold Having determined the best weight for each data source, we next wished to determine an overall threshold for the confidence score. To do this in an objective way, we scored and ranked the members of the training dataset, and labeled them true or false according to a threshold value that was varied from 0. 0 to 1. 0 in steps of 0. 01. For each threshold value, we counted the number of positive examples above the threshold (TPs), negative examples above the threshold (FPs), negative examples below the threshold (TNs), and positive examples below the threshold (FNs). We then calculated the recall, R, precision, P, and their harmonic mean in order to obtain a "F-measure" using: R = TP TP + FN , P = TP TP + FP , F = 2RP P + R. (2) The score threshold that gave the best F-measure was checked on the test subset and selected as the best threshold to use for accepting inferred associations.
Exploiting the EC number hierarchy The above approach has focused on finding explicit cooccurrences between Pfam domains and 4-digit EC numbers. However, it is possible to find more associations by relaxing the criteria for co-occurrences of EC-Pfam annotations by looking for matches only at the 3-digit EC level. Indeed, we have observed several cases where true associations according to the InterPro training dataset were assigned confidence scores below the threshold value because they had too few (4-digit EC number) instances to provide sufficient support. Therefore, the above procedure was repeated using and a different score threshold). Then, any 4-digit EC-Pfam association below the 4-digit threshold, but consistent with a 3-digit EC-Pfam association above the 3-digit threshold, was added to the final list of accepted 4-digit EC-Pfam associations.
Hypergeometric distribution p-value analysis While the above procedure provides a systematic way to infer EC-Pfam associations, we wished to estimate the statistical significance, and thus the degree of confidence, that might be attached to those predictions. More specifically, we wished to calculate the probability, or "p-value", that an EC number and a Pfam domain might be found to be associated simply by chance. For example, it is natural to suppose such associations can be predicted at random if ec or d are highly represented in the structure/sequence CIDs. In principle, in order to estimate the probability of getting our EC-Pfam associations by chance, one could generate random datasets by shuffling the relations between EC numbers and CIDs on the one hand, and between Pfam domains and CIDs on the other hand.
However, this is quite impractical given the very large numbers of CIDs, EC numbers, and Pfam domains, and the complexity of the filtering procedure that would have to be repeated for each shuffled version of the dataset. Therefore, as in  [17] , we assume that a random association of CIDs to pairs of ec and d follows a hypergeometric distribution. Letting N denote the total number of CIDs, N d the number of CIDs related to the Pfam domain d, and N ec the number of CIDs related to the EC number ec, the hypergeometric probability distribution is given by p(X ec,d K ec,d ) = min (N d ,N ec ) i=K ec,d N ec i N-N ec N d -i N N d , (3) where p(X ec,d K ec,d ) represents the probability of having a number X ec,d equal to or greater than the observed number K ec,d of CIDs associated with both d and ec.
Traditionally, a p-value of less than 0. 05 is taken to be statistically significant. However, because this test is applied to a large number of EC-Pfam associations, we apply a Bonferoni correction which takes into account the so-called family-wise error rate (FWER)  [29]. We therefore consider any p-value less than 0. 05/T as denoting a statistically significant inferred EC-Pfam association in a dataset, with T the total number of tested EC-Pfam associations for this dataset, In order to distinguish EC-Pfam associations using both confidence scores and p-values, we classify them into three classes, "Gold", "Silver", and "Bronze". An association is assigned to the Gold class if both its EC-Pfam score is greater than the determined threshold and all its p-values (in all datasets) are statistically significant.
Data source weights and score threshold After clustering identical structures and sequences, and calculating raw association scores (Fig. 2 ), our merged dataset contains 6306 SIFTS, 18,917 SwissProt, 124,699 TrEMBL, and 141,990 UniRule candidate EC-Pfam associations, giving a total of 262,571 distinct EC-Pfam associations to draw from Table  1. In our ROC-based training procedure, the best AUC value of 0. 985 was obtained with weights w SIFTS = 0. 1, w SwissProt = 1. 0, w TrEMBL = 0. 1, and w UniRule = 0. 6. These weights clearly give greater importance to the candidate associations in SwissProt and UniRule, respectively, compared to those in SIFTS and TrEMBL. The optimal score threshold was determined according to the F-measure training procedure using our training dataset ("Defining a confidence score threshold" section).
Global analysis of inferred EC-Pfam associations The results of the ECDomainMiner approach are summarized in Table  1. This table shows the numbers of 4-digit EC-Pfam associations along with the numbers of distinct EC numbers and Pfam entries involved in those associations for the four sources and the merged datasets before filtering. After applying the 0. 04 score threshold, the number of EC-Pfam associations falls to 8,256 with an overlap of about 96% of InterPro reference associations. Using the relaxed 3-digit association approach ("Exploiting the EC number hierarchy" section), the final ECDomainMiner dataset contains 20,728 EC-Pfam associations that overlap by 99. 3% the InterPro reference dataset. These numbers show that our approach efficiently retrieves the Inter-Pro reference EC-Pfam associations, including a small percentage (about 3.
3%) that have a low confidence score. Table  1  also shows that our ECDomainMiner set of EC-Pfam associations represents a 13. 7 fold-increase (20,728/1515) in EC-Pfam associations with respect to InterPro. Moreover, the list of EC-Pfam associations produced by ECDomainMiner contains 6. 4 times more EC Figure  3  shows how this increase in EC-Pfam associations distributes across the 6 top-level branches (i. e. 1-digit codes) of the EC classification. The greatest ECDomainMiner scale-up factor occurs for associations involving the oxydoreductases (EC branch 1). The smaller scale-up factor observed for Pfam domains (2. 8 versus 6. 4 for EC numbers) can be explained by the fact that not all Pfam domains display an enzymatic activity. Thus there is a natural limit in the coverage of Pfam database by our EC-Pfam associations, whereas there is no such limit for the coverage of EC numbers.
Combining the confidence scores with the calculated p-values as described in "Hypergeometric distribution p-value analysis" section gave 4552 Gold associations (having scores above the threshold and significant p-values in all source datasets), 11,426 Silver associations (with either scores above the threshold and one or more non-significant p-values, or with a score below the threshold but with Fig. 3  Scale-up factors for ECDomainMiner compared with InterPro. Ratios between the numbers in ECDomainMiner and in Interpro have been calculated for associations (red), EC numbers (yellow), and Pfam domains (green) after dividing the dataset according to each EC branch represented in the associations (1 to 6) and for all the dataset (All). 1: oxydoreductases; 2: transferases; 3: hydrolases; 4: lyases; 5: isomerases; 6: ligases significant p-values in all source datasets), and 4201 Bronze associations.
Comparison with dcGO In order to compare ECDomainMiner with the dcGO approach  [17] , we extracted SCOP2EC associations from the Domain2EC file available from the dcGO database (http://supfam. org/SUPERFAMILY/dcGO). The Domain2EC file includes 7249 associations with 4-digit EC numbers, of which 3774 are related to SCOP "Families" and 3475 to SCOP "SuperFamilies". Because InterPro only tabulates SCOP family domains, we limited our comparison to the set of 3774 SCOP2EC family associations. The SCOP families were mapped to Pfam families according to InterPro mapping files in order to generate a set of 2500 "Pfam2EC" associations (i. e. EC-Pfam associations which may be deduced directly from the SCOP2EC data). This set (shown as set a in Fig. 4 ) was compared with the set of all 262,571 merged EC-Pfam associations found by ECDomainMiner (set b in Fig.
4 ). This comparison showed that a total of 480 Pfam2EC associations from SCOP2EC are not present in our merged dataset. The remaining 2020 Pfam2EC associations were then compared with the 20,728 associations calculated by ECDomainMiner (set c in Fig. 4 ). This comparison (the intersection of sets a and c) produced a total of 1892 EC-Pfam associations which are common to Pfam2EC and ECDomainMiner, indicating that ECDomainMiner agrees with 75. 7% of the Pfam2EC associations from dcGO. Furthemore, this comparison also shows that ECDomainMiner result set contains 18,836 (20, 728 -1, 892) additional EC-Pfam associations that are not available through dcGO.
Selecting plausible associations in multi-domain proteins Because ECDomainMiner finds many new EC-Pfam associations, it is important to ask to what extent it also  Consequently, the association score of PF00188 with any EC number is zero for both the SIFTS and SwissProt datasets and is quite low (less than 0. 02) for both the TrEMBL and UniRule datasets. Thus, the confidence scores of all of the associations involving PF00188 in ECDomainMiner are lower than our threshold of 0. 04, and so these candidate associations are filtered out. This mechanism explains how an accessory domain is not assigned to an EC number by ECDomainMiner, and suggests that most of the retained associations are proper candidates for domain functional annotation.