dataesr/scientific-paragraphs-categorization huggingface dataset:
Including causative QTN Figure  2  presents the accuracies obtained when using non-coding SNPs and causative QTN together. Including causative QTN in the unweighted GRM increased accuracies by 0. 04, which is similar to the 2. 5% increase in reliability reported by VanRaden et al. [25]. Karaman et al. [37]  found that, as in Bayesian regressions, GBLUP partially accounts for QTL regions, in particular for very large datasets because the variances of the SNP effects constitute prior information that vanishes as the amount of data increases. Using weighted GRM with weights obtained by GWAS as described by Wang et al. [31] , the accuracy increased further, by 0. 10 for the data with 100 QTN and by 0. 05 with 1000 QTN. This increase was higher with 100 QTN because these have larger effects, and because there are fewer effects to be estimated by the model.
Dimensionality of the genomic relationship matrix Table  2  shows the number of eigenvalues required to explain a certain percentage of variance of GRM with various options. For unweighted and unblended GRM, the number of eigenvalues required to explain 90, 95 and 98% variance was about 8500, 12,000, and 17,000, respectively, with little difference between 100 and 1000 QTN datasets. According to Pocrnic et al. [16, 17] , the optimal dimensionality of the genomic information-for prediction-corresponds to the number of eigenvalues associated with 98% of variance in GRM, and linked those values to the number of independent chromosome segment (ICS). While the GRM is not full rank, the NRM is full rank. In theory, the number of ICS depends on the effective population size and the length of genome but not on the number of QTN  [44].
Computational Experiments We considered VCP, Max-col, ECP and BPPC instances, we derived the auxiliary graph Ĝ as described in the previous section, and solved the resulting MWSSP (with additional constraints (4) and (  5 ) in the case of the ECP and BPPC, respectively). In the following, we denote this solution procedure by M W SS( Ĝ). Experiments were performed on a single core of a i5 linux PC with 8 GB RAM. Results are compared with state-of-the-art algorithms for the corresponding problems, all based on Branch-and-Price for the VCP, Max-col and BPPC, and Branch-and-Cut algorithms and a Branch-and-Bound algorithm for the ECP. An important parameter in these experiments is the density of the graph, denoted by δ, which is the number of edges divided by the maximum possible number of edges (so δ(G) + δ(G) = 1).
Motivations Understanding how species react to spatio-temporal environmental heterogeneity and how this conditions the patterns of genetic variation is of great importance in the context of conservation biology, for example to predict future species distributions under global climate change  (Pauls et al. , 2013). Spatially explicit simulation studies have proven to be of fundamental importance when tackling such dynamical processes, especially in the context of range expansions  (Excoffier et al. , 2009). Despite a growing number of simulation programs dedicated to coalescence-based models of genetic variation, code reuse is still limited. We present Quetzal, a new C++ library with reusable generic components designed to ease the implementation of a wide range of coalescence-based environmental demogenetic models, and to embed the simulation in an 1.
, 2010; Massatti and Knowles, 2016). DIY ABC  (Cornuet et al. , 2014)  is an open-source program that provides the ability to conduct inference under a wide range of complex biological scenarios combining an arbitrary number of admixture, divergence or demographic change events. It offers very strong ABC support and an intuitive Graphic User Interface (GUI). IBDsim  (Leblois et al. , 2009)  is an open-source program for simulating genetic variation under isolation by distance, and provides much flexibility in the choice of dispersal kernels. MSMS  (Ewing and Hermisson, 2010)  puts emphasis on incorporating selection and proposing extensible design. These programs, and others, have provided invaluable support to the non-developer communities for a wide range of applications and studies. Paradoxically, these programs collectively failed to help the software developers community to write new programs, mainly due to very low rate of reusability in their source code.
We need standard, general, reusable tools for helping us to quickly build programs that can solve new problems. As written in  Stroustrup (2003) : "The key to fast development, correctness, efficiency, and maintainability is to use a suitable level of abstraction supported by good libraries". Reusable code such as library's relies on abstractions, syntactic constructions often opposed to performance. However, when it comes to ABC and massive simulations, performances become critical. C++ offers the template mechanism, a key feature allowing to build very high levels of abstraction without loss of efficiency, so we do not have to choose between reusability and performance. As a first attempt to offer reusable components to the coalescence software community, we present here Quetzal, an open-source C++ template library.
Quetzal offers powerful abstractions for building coalescencebased simulation programs. It contains several independent modules, each directed towards a general simulation purpose (demography, geography, coalescence, genetics, ABC. ) in which are located the files containing the sources of generic components. The extensive documentation and the wiki  (Becheler, 2017) , both avalaible on the github project, ease to pick and combine the desired functionalities and the template mechanism allows to adapt it to a new problem with minimal recoding (if no recoding at all). We insist on the possibility to extend the behaviors of the Quetzal algorithms with very few new lines of code. The high level of abstraction in Quetzal allows its generic components to be used to write expressive and maintainable code with appreciable terseness and efficiency.
Their genericity make them applicable to a large range of programs and the user can change the design of its application without major changes in the code (what typically arises when changing a finally-not-so-minor detail in the theoretical model). Each documented functionality comes with a small demonstration program and its output, providing valuable and intuitive insights on the way to manipulate the component. The library design insists heavily on modularity, extensibility and efficiency, and is intended to respect the standards of the Standard Template Library with STL-like algorithms and interfaces. Template rules make the library header-only. This first version focuses on coalescence-based environmental demogenetic models. Consequently, Quetzal first features are designed to bring efficiency and flexibility in defining demographic quantities as functions of space and time of landscape heterogeneity, to couple these quantities to the coalescence process, and to use ABC methodology to conduct inference.
First we present a simple mathematical ecological model for estimating ecological features of a species from a genetic sample with the ABC procedure. This model is purposely general, as it will serve as an illustration to facilitate the understanding of Quetzal functionalities by enforcing its genericity, but it is still of strong biological interest as it relaxes several constraints that were previously made in the literature. Of course Quetzal is flexible and its use is not limited to this model as other features can be added or removed. Then we present a core feature of Quetzal for the coalescence, the abstraction of the ancestry relationship between a child gene copy and its parent, and we point out its importance to use and extend the library. Lastly, we give an overview of Quetzal functionalities and concepts and we apply them in a demonstration program implementing a fully-specified version of the previous general theoretical model.
Motivations Let be a spatial sample S of n haploid individuals that have been sampled at time t S across the landscape and that have been genotyped at a microsatellite locus, and a dataset giving the values of environmental quantities across the same landscape. From these data, we want to infer ecological properties of the species such as the niche functions (defined here as the functions relating the environmental quantities to demographic quantities, for example the local growth rate) and the dispersal function, so we need a statistical model to link observed data and processes to infer (see Figure  1 ). We present here a description of a general bayesian model for estimating these functions using an ABC framework (see Figure  2 ): a demographic history is simulated forward in time conditionally to the features of the heterogeneous landscape, then the genealogy of the sampled gene copies is simulated backward in time conditionally to the demography.
Geography Let consider a given set of demes X (typically reduced to the geographic coordinates of their centroïd). The environment E is defined by i known ecological quantities which are functions of space and time, typically climate layers from the WorldClim global climate database (www. worldclim. org), or a niche suitability dataset estimated from an external niche modeling step  (He et al. , 2013a). E : X × N → R i (x, t) → (E i (x, t)) i∈I.
Motivations When exposing the concept of coalescent trees above in the mathematical model, it has been useless to define exhaustively the tree properties or the exact nature of its nodes and branches. These are details humans typically abstract away, which leads to high generalization and low intellectual overhead. However, a computer program has to deal with an impressive number of details, and if these details are not carefully separated from the general concerns when writing the code, it leads to poor generalization (see  Alexandrescu, 2001, p. xvii). Indicators of a lack of generalization are typically numerous dependencies across code, monolithic classes and a high rate of code duplication. Consequences are defined by  Martin (2000)  and Alexandrescu (see 2001, p. 5) as being rigidity (the software is difficult to change), fragility (the software breaks at several points after a small change), immobility (the software can not be reused in another context, so it is entirely rewritten), gruesome intellectual overhead and poor performances.
Object-oriented paradigm In C++, the genericity of the implementation can be realized by using inheritance and dynamic binding enable by the virtual keyword (Object Oriented Programming, OOP). Algorithms manipulating trees would then rely on an interface defined in terms of an abstract class AbstractTree, but will be applied on instances of concrete classes that inherit from AbstractTree and that present the specific desired behaviors, for example TreeForStoringCoalescenceTimes or TreeForStoringCoalescenceDemes. This design avoids the well-known problems of a class that would expose a monolithic interface to store all possible features like demes, times, mutations and others, (Single Reponsability Principle,  Martin 2002)  but it has a number of well-known drawbacks. First, if inheritance can be very useful when the set of classes to be treated by the algorithm can naturally be thought as a hierarchy of concepts, in most cases this is not the case: it would result very unnatural to order them into a class hierarchy, and, importantly, it would lead to hardly maintainable code design  (Stroustrup, 2014).
Count hanging subtrees leaves Achieving genericity is of fundamental importance to efficiently tackle a wide range of situations. For example most of the current simulation softwares focuse on generating genetic variation samples, because this is most of the time the only information available. However, in some cases the mutational process can be negligible compared to the recent genealogical process in shaping the sample configuration (see  Becheler et al. , in preparation) , so topological properties like the number of leaves of hanging subtrees (see  Hein et al. , 2004, p. 78)  become the desired output. This is very unlikely that the developer of a program could ever foresee this specific need. Fortunately, it does not mean one should recode everything from scratch each time a new simulation behavior is needed by a new methodological advance: Quetzal allows the user to inject the desired behaviors into its generic components.
Construct a Newick tree format Code with a suitable level of abstraction allows to readapt old code to new problems with ease. Studying genealogies topological properties can be the main statistical focus, but visualizing genealogies is still the most instinctive way to shed light on some properties, to assert correctness of algorithms generating them, or to present results. However, when it comes to data visualization, C++ is not the most suited platform. Many tree visualizer use a Newick tree format (see  Olsen, 1990 ) as an input for nice plot rendering. The implementation is straightforward when using Quetzal abstractions: the type of the nodes is now a character string, the parent node is by default constructed as an empty string, and the branching event is defined as a formating function taking the parent node p and the child node c as argument to build the Newick The output can be exported for example on an online tree viewer such as iTol  (Letunic and Bork, 2006).
Discrete landscape construction In the geography module, Quetzal uses the Geospatial Data Abstraction Library  (GDAL Development Team, 2017)  to read grids of ecological data through the instantiation of a DiscreteLandscape object. In this class, the demes are represented by the grid cells and identified by the geographic coordinate of their centroid. The class allows to retrieve the set of demes centroid geographic coordinates (so it can be used to represent the demic structure to run spatially explicit simulations), to reproject a set of sampled coordinates to the nearest centroid (so compatibility is ensured between a spatial sample and the geographic support), or to deliver lightweight function-objects that give access to the underlying ecological quantities and that are susceptible to be coupled to the demographic model by composing them into arbitrarily complex mathematical expressions of space and time.
Demographic variables definition In the demography module, Quetzal defines two class templates (PopulationSize and PopulationFlux) to construct and consult (N t x ) and (Φ t ij ), providing expressive interface for secured and intuitive manipulation. Both class templates do not depend on geography module as they are templated on the type of the locations (the demes) and on the type of values that are stored. It makes possible to use any geographic coordinate system (for example longitude/latitude using the geography::GeographicCoordinates) to spatialize the model. Any arithmetic type can be chosen to define the set in which (N t x ) and (Φ t ij ) take value (typically N N N or R+ R+ R+). Indeed, the type of the stored time values is not necessarily an integer but can be a more complex date type.
As C++ has strong static typing, it is impossible to directly sum constants (literals) with functions, as it would be possible under others languages. So the first step is to transform the constants as functions with the same definition space as the other functions we want to combine: literal_factory < space_type , time_type > lit ; auto r = lit (3); Here r is now callable with time and space arguments, and can be composed with other expressive callable objects. Assuming that E 1 and E 2 are function-objects callable with time and space arguments (for example the function-objects delivered by the DiscreteLandscape class), the function use allows expressive to manipulate the expressions and gives them an enriched mathematical interface, so the addition or division operator can be applied on them: auto K = ( use ( E_1 )+ use ( E_2 ))/ lit (2); And finally, assuming that N is a function-object callable with space and time arguments, the whole growth expression can be built: auto g = ( use ( N )*( lit (1)+ r )/( lit (1)+(( r * use ( N ))/ K )); This expression can be captured in a lambda expression to simulate the number of gene copies after reproduction in deme x at time t: This last code snippet illustrates an important benefit of expressive: to allow the separation of concerns when writing the application code.
In other terms, the details of the logistic growth expression are not intricate with the code where the expression is invoked, what would result in an obfuscated and hardly maintenable code. Moreover, as the expression is known at compile-time, it is a perfect candidate for all compile-time optimizations done by the compiler such as inlining: as the compiler knows exactly which functions will be called when g is called, he should be able to replace a function call directly by the body of the function, potentially leading to extremely efficient code with very few indirections. auto sim_growth = [ g ](.
Quetzal components for inference The Quetzal abc module provides abstractions allowing to embed efficiently an open-ended range of simulation models into an ABC framework. To this purpose, an ABC object associates a simulation model and the prior distribution of its (possibly multidimensional) parameter to conduct inference. We present here key elements of the abc module, notably the concept of GenerativeModel used to abstract out the model-specific details. As ABC-based inference on spatial coalescents involves complex functions for dimensional reduction and distance computation that are far beyond the scope of this article, the ABC inference examples will be presented with a toy generative model (the poisson distribution), a toy dimensional reduction function η (identity) and a toy distance ρ (absolute value of the difference).
Then we step away from the toy-model and propose a concrete example of a class satisfying Generative-Model and implementing a fully-specified version of the general theoretical model of coalescence presented in section 3. This example will make use of Quetzal components to illustrate how to build original coalescence simulations objects with ABC-compatible interface. 2012), while embedding the simulation model and the inference framework in the same C++ application code has the benefit to make all the type information available for the compiler, decreasing the computational cost, so the generation of the reference table alone is expected to be useful for a wide range of situations. Furthermore, we expect that if more sophisticated versions of algorithms are needed, the Quetzal existing concepts will greatly ease their implementation.
We assume that each introduced individual had different allelic states and that mutational process is negligible. Under these hypotheses, the observed clustering of the data is only shaped by the genealogical process, so we can reject all simulated coalescent forests that do not clusterize the dataset into as many subsets of same cardinality than in the observed clustering. Consequently, we just need to construct the vector of the hanging subtrees leaves count (a way to do it efficiently was presented above) and to compare it to the observed vector of clusters size. We accept the parameter used for the simulation only if the two vectors are equals. For a demonstration purpose, we construct a reference table by sampling 5 × 10 5 simulated data into the prior predictive distribution, and we generate 100 pseudo-observed data under the parameter K = 50 for validation.
Encapsulating θ The point here is to hide useless details (such as dimensionality) from ABC procedures while allowing the user to have control over its implementation. We warn against using vectors or arrays to represent multidimensional parameters: it would impose all dimensions to be of same type, and their index-based value access interface would later favor confusion between dimensions. Instead, we suggest to follow the STL standards and to implement user-defined small classes, with expressive getter/setter syntax. Here we show an extract of the Param class, where the member k represents K, the carrying capacity of each deme in the landscape. Other dimensions are not given here, but can be set to constants for better code maintainability, as found in the supplementary material. Figure  2 : Flow chart illustrating the information flows between components of a general environmental demogenetic model (see section 3).
In grey parenthesis are indicated the Quetzal modules (see section 5) that allow to represent these components in the code. The way the landscape conditions the demographic processes form the main focus of a number of approaches (landscape-ABC  (Estoup et al. , 2010) , iDDC modeling  (He et al. , 2013b) ) in the literature, such that the inference is usually driven on the underlying niche and/or dispersal model. Infering such ecological properties from a spatial genetic sample is made possible by using a coalescence model to link the sample to the demographic processes that shaped it. Inference is run in an ABC framework, where parameters to estimate are sampled in a distribution, allowing a dataset simulated by the generative model to be compared to the observed data by some dissimilarity function to build the posterior.
Acknowledgements We thank  Ambre Marques  who importantly contributed to the present Quetzal state by taking on her free-time to provide advice on generic paradigm and design issues, and to develop the expressive library. We thank  Florence Jornod  who participated as an intern. Arnaud Becheler  was funded by a multidisciplinary project founded by the  French Government (LabEx BASC ,  ANR-11-LABX-0034 ) that aims to provide new knowledge regarding the drivers of species distribution and to design innovative guidelines toward sustainable land management. This work was partially supported by the Chair " Modélisation Mathématique et Biodiversité " of VEOLIA-Ecole Polytechnique-MNHN-F. X. , by the  Mission for Interdisciplinarity at CNRS  and by the  Institute for the Diversity, Ecology and Evolution of the Living World.
Metavisitor is a software package that allows biologists and clinicians without specialized bioinformatics expertise to detect and assemble viral genomes from deep sequence datasets. The package is composed of a set of modular bioinformatic tools and workflows that are implemented in the Galaxy framework. Using the graphical Galaxy workflow editor, users with minimal computational skills can use existing Metavisitor workflows or adapt them to suit specific needs by adding or modifying analysis modules. Metavisitor works with DNA, RNA or small RNA sequencing data over a range of read lengths and can use a combination of de novo and guided approaches to assemble genomes from sequencing reads. We show that the software has the potential for quick diagnosis as well as discovery of viruses from a vast array of organisms.
SearchS-mallRNA, a standalone tool with a graphical interface, used a similar approach to reconstruct viral genomes  [6]. Importantly, both programs require known, closely related viral references for proper guidance of genome reconstructions from viRNAs, precluding the identification of more distant viral species or discovery of novel or unexpected viruses. To circumvent the need for viral reference sequences, Velvet  [7]  de novo assembled contigs from plant  [8] , fruit fly and mosquito  [9]  have been aligned to NCBI sequence databases, allowing the identification of partial or complete viral genomes. Several studies improved this strategy by combining two de novo assemblers  [10] [11] [12] [13] , or scaffolding virus-aligned contigs using an additional translation-guided assembly step  [14].