dataesr/scientific-paragraphs-categorization huggingface dataset:
Additionally, tutorials are provided to Reachy users in the form of Jupyter notebooks  (Kluyver et al. , 2016) , which are interactive development supports combining source code, formatted text, plots, and graphical input/output widgets. Jupyter notebooks can be created from a Web navigator and don't require any dedicated code editor. As a result, this software environment is accessible enough to allow Poppy robots to be currently used as educational platforms in several middle and high schools 2. Pypot also includes features to operate a virtual robot within the simulator V-REP  (Freese, 2015) , as illustrated in Figure  2. In this way, users can experiment and verify their developments on a simulated Reachy before deploying them on an actual robot in a physical setup. Migrating from a simulated to an actual robot, and vice versa, does not require any modification on the source code apart from a single keyword while configuring the connection to a robot.
Due to their price and complexity in terms of electronics and mechanics, these advanced robotic devices are much more difficult to replicate or customize in depth. In this sense, their users depend significantly on the robot's designers and makers to assemble, modify and repair it, whereas Reachy's design allows users to handle every step of the fabrication process. Its architecture is simple enough to allow non-experts to build it and connect it to a computer. Regarding control and interfacing, both of these robots rely on complex control architectures  (Bridges et al. , 2011; Grebenstein et al. , 2011)  running in Simulink, proprietary software owned by MathWorks, Inc. In this regard, the pieces of software operating these devices are less open and more difficult for a user to modify or adapt to a given use case.
Conversely, Reachy benefits from its open-source software architecture providing many interfacing options, with a variety of command signals and external software tools. Although Reachy does not compare to these advanced robots in terms of performance, its connectability and highly modifiable structure make it a suitable research platform. In this sense, we wish to promote Reachy as a complete platform combining both hardware and software characteristics fostering replication, customization and versatility. We are not aware of a similar robotic system that would offer as many possibilities, based on the comparison detailed in this section.
Sharing Philosophy Reachy is developed in partnership with and distributed by Pollen Robotics 3  as a fully open-source project. Besides, users willing to assemble the robot by themselves can buy all the hardware in spare parts, at a total price below 4,000$ for the standard version. Any laboratory can build their own Reachy, modify its components and customize it at will, on both hardware and software sides. This allows researchers to adapt the robot to their specific needs and interface it with their own devices and tools. The source files from the Computer-Aided Design (CAD) models of the different printable parts are shared under the Creative Commons BY-SA license 4  and available online 5. The bill of materials and software components that are specific to Reachy are shared under the Lesser GNU General Public License 6 and available online in the project's repository 7.
The Pypot library is shared under the GNU General Public License 8 and available online in a dedicated repository 9. As Reachy relies on the same software and hardware architecture as Poppy robots, it is worth noting that its users can benefit from the help and contributions shared by the Poppy project's community on its repository 10. Indeed, this community hub gives access to many tips regarding the different aspects of the robot, from configuring and assembling the servomotors to setting up the software tools and troubleshooting.
Local Optimization Instead, a widespread method used by roboticists to solve IK problems is to employ local optimization. This method relies on a cost function, attributing a scalar value to any set of angles to quantify to what extent it is a good solution with respect to the IK problem: a lower cost means a better solution. Usually, this cost function is based on the distance between the target and the endpoint position, which can be analytically determined with the geometrical model of the robot. Then, through a step-by-step process, the optimization finds and returns a local minimum of this cost function, that should correspond to one of the sets of angles putting the endpoint at the required position. We used the Python library IKPy  (Manceron, 2015) , a generic IK solver, to apply this method on Reachy.
The robot's software resources include a Universal Robot Description Format (URDF) file describing Reachy's mechanical properties, such as the relative position and orientation of each joint and skeleton part. These geometrical data can then be imported with IKPy to build the corresponding kinematic chain, by going through the sequence of joints from the robot's base to its endpoint. In this way, this interfacing between IKPy and Reachy's software interface can be performed straight out of the box, and works as a standalone, without requiring any external device or specific hardware. As a result, combining IKPy's features with the motors' command options provides a new and easy way to control Reachy by sending 3D coordinates as commands, instead of joint angles. A code sample showing how to use IKPy with Reachy is available online 11.
Therefore, in the context of a continuous endpoint position control, it can be dealt with 11 http://github. com/pollen-robotics/reachy/blob/master/doc/notebook/ Kinematics. ipynb during a calibration phase performed prior to the control phase. In this way, this interfacing between IKPy and Reachy can be conveniently employed in applications where there is no strong need for endpoint accuracy in the operational space. To assess repeatability, the robot was tasked to perform several times the same movement while the endpoint's position was recorded with a motion tracking system (Optitrack V120 Trio, Natural Point Inc. ). Firstly, the robot was tasked to travel accross a 40 cm-wide circle in a frontal plane, in 3. 5 s. A comparison of the recorded trajectories showed that on keyframes distributed along the movement, for a given set of motor goals, the robot's resulting endpoint positions were spread within a 12 mm-radius sphere.
, 2016). Our results were obtained with a feed-forward multi-layer perceptron including two fully connected hidden layers of, respectively 64 and 128 neurons. We employed the TensorFlow  (Abadi et al. , 2015)  backend and Keras  (Chollet, 2015) , a Python programming interface for ANNs to implement and train this network to perform IK solving, that is to say: take endpoint coordinates as input and return corresponding joint angles as output. Relatively to using IKPy, implementing this method is more demanding and requires to carry out the previously described two-phase data acquisition process using motion capture equipment. However, as this technique is based on movements performed by the physical robot instead of a mechanically perfect model, the ANN implicitly takes into account the deviations between the motor commands sent to the robot and the angles actually reached by the motors.
Tele-operation Based on the endpoint position control feature made available by these IK solving techniques, we developed a second proof of concept, which we refer to as "tele-operation. " The goal of this proof of concept is to provide users with an intuitive and transparent way to drive the robot in real time, that would not require them to send explicit, quantitative commands such as joint angles or endpoint coordinates. With this aim, the tele-operation driving mode works by continuously tracking a subject's hand trajectory and simultaneously mapping it on the robot's hand, considered its endpoint. Our implementation of this driving mode makes use of the Optitrack V120 Trio as the motion tracking system, to determine the 3D position of a marker placed on the hand. We interfaced the device with a Python program using OptiRX  (Astanin, 2016)  to retrieve marker data in real time at 120 Hz.
CONCLUSION AND PERSPECTIVES Reachy, a seven-DoF human-like robotic arm, was developed to act as a test platform for research on human-driven robotic arms. Following an open-source approach, its design was elaborated to allow for easy sharing and low fabrication cost, with the purpose of enabling extensive customization in a wide variety of applications. Software and hardware resources were made available online so that researchers and laypeople can build a Reachy robot and integrate it in their own experiments and projects. In the short term, immediate applications of Reachy include the exploration, development and testing of control strategies and interfaces for robotic arms. In this way, several prototypes were produced and proofs of concepts were developed in order to illustrate potential use cases in various fields in relation with human-driven robotics.
68c2411483d5bc65c7f54234/e/581d46ba9b8ee98de9d636ee 6 http://gnu. org/licenses/lgpl-3. 0. html 7 http://github. com/pollen-robotics/reachy 8 http://gnu. org/licenses/gpl. html 9 http://github. com/poppy-project/pypot 10 http://github. com/poppy-project Frontiers in Neurorobotics | www. frontiersin. org.
Mice All procedures were carried out in accordance with the national guidelines on the ethical use of animals of EU Directive 2010/63/EU and were approved by the Ethics Committee CETEA of Institut Pasteur (protocol number 160066). Adult C57BL/6J male mice (Janvier Labs) were used for all experiments at an age of 6-16 weeks. After their arrival at 4-5 weeks old, mice were housed in a room with a temperature of 21°C, maintained on a 12/12 h light-dark cycle and grouped in 2-4 in cages enriched with running wheels. Food and water were available ad libitum until the beginning of the experiments, when they were placed under controlled water supply (0. 5 mg of hydrogel per day, Clear H2O, BioService) and maintained at 80-85% of their initial body weight over the course of imaging experiments. In total, imaging data from 13 mice (DG, n=6; CA1, n=7) were used in this study.
A reward zone was located within each linear virtual track, at the end (0. 81-1. 15 m) or at the centre (0. 34-0. 68 m) of the vertical and oblique corridors, respectively. An enriched environment, used to drive better behavioural discrimination and neuronal discrimination in CA1, consisted in a substantially different virtual scene, with different visual cues and textures on the walls, but maintaining the same reward location as for the oblique corridor. The Blender Game Engine ( www. blender. org ) was used in conjunction with the Blender Python API to drive the virtual reality system.
Data analysis Imaging data processing Motion correction of the imaging data was performed using a phase-correlation algorithm built into the suite2p software ( 41 ) ( http://github. com/cortex-lab/Suite2P ). Segmentation into regions of interest (ROIs) was performed with suite2p using a singular value decomposition algorithm. To select dentate gyrus granule cells, we only used ROIs corresponding to small, densely packed cell bodies. ROIs corresponding to large isolated cell bodies were discarded in order to avoid interneurons and mossy cells. The neuropil signal was subtracted from the extracted fluorescence using suite2p. Neuronal activity was quantified by adapting previously published methods ( 40 ) : "Events" were identified as contiguous regions in the d F / F signal exceeding a threshold of mean +2.
Place cell identification To compute spatial activity maps, we used data from continuous running periods with a duration > 1 s at a speed > 0. 5 cm/s. For each lap crossing, spatial maps were computed by dividing the 12 track into 50 spatial bins and then smoothing the occupancy vector of events with a gaussian kernel (sigma = 5 cm). We defined spatially-modulated cells as those neurons that fire consistently at the same location between different lap crossings, independently of the exact shape of their place fields. Therefore, spatially modulated cells were selected based on the mean cross-correlation between their spatial maps in different lap crossings. For each neuron, we dissociated firing activity and spatial position by shuffling the recorded position in chunks of 300 ms, and repeated this bootstrap procedure 100 times to obtain a null model for the mean cross correlation.
Acknowledgments We thank  Josef Bischofberger ,  Rémi Monasson ,  Yaniv Ziv , and  David DiGregorio  for helpful discussions and comments on the manuscript. We thank  Lucile Sontag  and  Claire Lecestre  for their technical support. This work was supported by grants from the  ERC (StG 678790  NEWRON to C. S. -H. ), the  Pasteur Weizmann Council , and a  Pasteur-Roux  fellowship to M. A.
These transfers are important for understanding the accessory genomes of prokaryotes  [15] [16] [17]. Further, studying gene transfers in real bacterial communities from different environments can help to test the effect of LGT on ecology and evolution of communities  [18]. Given the prevalence of introgression  [9] [10] [11] 19] , one interesting question is whether gene transfer has led to the formation of novel fusion genes that combine parts of genes originating from separate domains of life  [20]. An ecologist may wish to analyze the distribution of genes and species in the environment  [21]. A metagenome analyst may need to overcome an additional challenge exploring the nature of the large proportion of sequences in metagenome datasets that have little or no detectable similarity to characterize sequences and to study the "microbial dark matter"  [22].
The need for efficient computation and analyses for large biological databases still pervades; however, more recently SSNs have been increasingly appreciated as useful approaches to describe complex biological systems, including inferring the "social networks" of biological life forms  [30] , producing maps of genetic diversity  [27] , detecting distant homologues  [47] [48] [49] , and exploring gene and genome rearrangements  [50, 51]. A SSN is a graph in which each node is a sequence and edges connect any two nodes that are similar at the sequence level above a certain threshold (e. g. , coverage, percent identity, and E-value) as determined by their pairwise alignment (Box 1) (Fig. 1 ). While the principle behind SSN construction is simple, the expression of similarity data in this structure can enable the use of powerful Fig.
Visualization of networks can be performed with programs such as Cytoscape  [54]  or Gephi  [55] , both of which also have a range of internal tools and external plugins for network analysis. While these programs are useful for the visualization and analysis of relatively small networks, it can be difficult to load large and complex networks with a lot of edges (e. g. , !50,000 edges). In these cases the iGraph library offers an extremely powerful and well-supported implementation of a broad range of commonly used methods for both complex graph generation and analysis in R, Python, and C++  [56]. However, using iGraph requires knowledge of programming in at least one of these languages. An additional package for network analysis in Python is NetworkX  [57]. It is our goal here to further generalize network approaches by explaining how evolutionary biologists with less programming knowledge could analyze their data.
A list including many of the tools and programs available for SSN generation is available at https://omictools. com. The first and most important step of SSN construction is the assembly of a dataset of sequences relevant to your biological question, usually in fasta format. This can be used as the initial input for wizards such as EGN or EGN2  [52] , which can fully automate the process. The nature of the dataset is highly dependent on the research question, so here we focus on the practicalities of database assembly. To construct the similarity network, all sequences in the dataset are aligned against one another in a similarity search. This similarity search is often the time-limiting step in an analysis, and the total number of searches required is quadratic to the number of sequences in the dataset.
(continued) Box 1: (continued) 2. Similarity search: To generate a sequence similarity network, all sequences must be aligned against one another in an allversus-all search, in which the dataset of sequences is searched against a database including the same sequences. For gene networks, the alignment is usually done with a fast pairwise aligner such as BLAST  [58, 59]  as implemented in EGN  [52]. Filters are often used to remove low-complexity sequences from the search, as these can cause artefactual hits (BLAST options --seg yes, -soft-masking true). The BLAST method of alignment will be the focus of future discussion in this chapter; however, alternatives are available including BLAT  [60]  (also implemented in EGN), SWORD  [61] , USEARCH  [62] , and DIAMOND  [63]. These alternatives generally include an option to produce a "BLAST" style tabulated output, making them compatible with programs commonly used in network analyses.
Within alignment tools like BLAST, it is possible to assign thresholds, such as the maximum E-value of the alignment. It is not recommended to set minimal thresholds for some parameters (such as % sequence identity) unless required due to memory constraints so that you can generate networks from a single sequence alignment with different thresholds for comparison (e. g. , comparison of a 30% similarity threshold to a 90% threshold, where edges will only be drawn between highly similar genes). Note: It may be intuitive to use additional CPUs to speed up the alignment process; however, in BLAST it can be more efficient to split the query file and launch multiple searches on separate cores instead of using the BLAST multithreading option. The pairwise alignment step is generally the most time-limiting part of generating a SSN, so benchmarking should be used to establish the optimal settings for the pairwise and/or determine the feasibility of a project given the size of the dataset and the available computational resources.
Filtering similarity search results: In an all-versus-all similarity search, any given query sequence will have a self-hit in the corresponding database. For example, with sequences A and B, a self-hit is query sequence A matching to sequence A in the database, cases of which must be removed prior to network construction (Fig. 2 ). When query sequence A in a similarity search is aligned with sequence B in the database, often the reciprocal result is also identified (an alignment between query sequence B and sequence A in the database). These are called reciprocal hits; while the sequences involved (continued) Box 1: (continued) are identical, the alignments and scores are not. Retaining both hits would generate two different edges between the same two nodes in a SSN, so generally only the best results from reciprocal hits are retained, based on a score such as the E-value (Fig.
2 ). Finally, a single query sequence may be significantly aligned multiple times in different positions of the same sequence in the database; however, for SSN construction only the best BLAST hit is generally retained (Fig. 2 ). The selection of the best BLAST hit is again generally often based on the E-value. Removing multiple hits against the same sequence allows the generation of an undirected network where a single edge connects two nodes, representing the best possible alignment between these nodes.
4. Thresholding and network construction: Constructing a SSN from a BLAST output is conceptually simple; an edge is created between two sequences (nodes) that have been aligned in the sequence similarity search. It is common to apply thresholding criteria such as minimal % ID and/or coverage and/or maximal E-value to determine whether an edge is drawn between two sequences in the network (Fig. 1 ). There are different ways to calculate the % coverage of an alignment. This could be based on the coverage of a single sequence in the alignment, selecting either the query or the database sequence in each alignment or the longest or shortest sequence in each alignment. Alternatively both (mutual coverage) can be used, retaining an alignment (continued) Fig. 2  Filtering sequence similarity results for network construction.
Scalability of Sequence Similarity Network Analysis As with other computational approaches, the scale of network analysis is limited by the available computational resources. The limiting factor in terms of the size of network it is possible to construct is predominantly governed by the pairwise alignment. All sequences in the dataset need to be aligned against one another in a pairwise manner, meaning the number of alignments is quadratic to the size of the dataset. For example, computing an allagainst-all comparison of 1,000,000 sequences requires computation of 10 12 alignments. BLAST  [64]  is the standard tool for this step, with a relatively good speed and accuracy for sequence similarity searches; however, the use of BLAST can be a bottleneck for the analysis of large datasets. This is an especially important consideration given the growth in the number of gene and genome sequences available in public databases.
Exploiting Sequence Similarity Networks for Identification of Gene Families A gene family is usually defined as a group of sequences that are similar at the sequence level, indicative of homology and potentially of shared functions; however, there is no uniform way to define this similarity  [70, 71]. One of the early contributions of SSNs in molecular sequence analysis was the construction of the COG database of homologous protein sequences  [39, 40]. This study attempted to define gene families based on similarity at the sequence level using the results of sequence similarity searches. Within the results of an all-versus-all BLAST search, groups of at least three proteins encoded by different genomes that were more similar to each other than they were to other proteins found in the same genomes were defined as a likely orthologous gene family.
The network is assembled from the results of an all-versus-all alignment, as previously described. Edges can be weighted by E-value, percentage of identity, or bitscore. For the purpose of simplification, we consider strong or weak weights rather than actual values. (a) A giant connected component at relaxed threshold. (b) Three connected components at a more stringent threshold. (c) Three communities with Louvain clustering algorithm, taking into account edge weights constructing the SSN as well as the relationships between sequences in the network. For example, for a given dataset at a given mutual coverage threshold, a threshold of 90% sequence identity will identify a large number of small connected components that only include highly similar genes, while at a threshold of 30% sequence identity, there will be fewer but larger connected components including genes with more variation in sequence similarity.
3  and 4 )  [73]. MCL is a strong deterministic algorithm that has been implemented, for example, in tribeMCL  [74]  and orthoMCL  [76]. A potential drawback of MCL is that it requires user specification of the "inflation index," a parameter which controls cluster granularity (or "tightness"). A high inflation index increases the tightness of clustering, producing a larger number of clusters that are smaller on average than those that would be obtained clustering the same dataset using a low inflation index. Selecting an appropriate inflation index is not trivial and requires optimization  [74]. A number of the above approaches have been used to compile additional databases of orthology that can act as useful reference datasets. OMA is a program that uses graph-based algorithms and exact Smith-Waterman alignments to identify orthology between genes  [77] [78] [79] [80].