42,257 research outputs found
biobambam: tools for read pair collation based algorithms on BAM files
Sequence alignment data is often ordered by coordinate (id of the reference
sequence plus position on the sequence where the fragment was mapped) when
stored in BAM files, as this simplifies the extraction of variants between the
mapped data and the reference or of variants within the mapped data. In this
order paired reads are usually separated in the file, which complicates some
other applications like duplicate marking or conversion to the FastQ format
which require to access the full information of the pairs. In this paper we
introduce biobambam, an API for efficient BAM file reading supporting the
efficient collation of alignments by read name without performing a complete
resorting of the input file and some tools based on this API performing tasks
like marking duplicate reads and conversion to the FastQ format. In comparison
with previous approaches to problems involving the collation of alignments by
read name like the BAM to FastQ or duplication marking utilities in the Picard
suite the approach of biobambam can often perform an equivalent task more
efficiently in terms of the required main memory and run-time.Comment: 17 pages, 3 figures, 2 table
A study of systems implementation languages for the POCCNET system
The results are presented of a study of systems implementation languages for the Payload Operations Control Center Network (POCCNET). Criteria are developed for evaluating the languages, and fifteen existing languages are evaluated on the basis of these criteria
libcppa - Designing an Actor Semantic for C++11
Parallel hardware makes concurrency mandatory for efficient program
execution. However, writing concurrent software is both challenging and
error-prone. C++11 provides standard facilities for multiprogramming, such as
atomic operations with acquire/release semantics and RAII mutex locking, but
these primitives remain too low-level. Using them both correctly and
efficiently still requires expert knowledge and hand-crafting. The actor model
replaces implicit communication by sharing with an explicit message passing
mechanism. It applies to concurrency as well as distribution, and a lightweight
actor model implementation that schedules all actors in a properly
pre-dimensioned thread pool can outperform equivalent thread-based
applications. However, the actor model did not enter the domain of native
programming languages yet besides vendor-specific island solutions. With the
open source library libcppa, we want to combine the ability to build reliable
and distributed systems provided by the actor model with the performance and
resource-efficiency of C++11.Comment: 10 page
A quantum genetic algorithm with quantum crossover and mutation operations
In the context of evolutionary quantum computing in the literal meaning, a
quantum crossover operation has not been introduced so far. Here, we introduce
a novel quantum genetic algorithm which has a quantum crossover procedure
performing crossovers among all chromosomes in parallel for each generation. A
complexity analysis shows that a quadratic speedup is achieved over its
classical counterpart in the dominant factor of the run time to handle each
generation.Comment: 21 pages, 1 table, v2: typos corrected, minor modifications in
sections 3.5 and 4, v3: minor revision, title changed (original title:
Semiclassical genetic algorithm with quantum crossover and mutation
operations), v4: minor revision, v5: minor grammatical corrections, to appear
in QI
Customisable Handling of Java References in Prolog Programs
Integration techniques for combining programs written in distinct language
paradigms facilitate the implementation of specialised modules in the best
language for their task. In the case of Java-Prolog integration, a known
problem is the proper representation of references to Java objects on the
Prolog side. To solve it adequately, multiple dimensions should be considered,
including reference representation, opacity of the representation, identity
preservation, reference life span, and scope of the inter-language conversion
policies. This paper presents an approach that addresses all these dimensions,
generalising and building on existing representation patterns of foreign
references in Prolog, and taking inspiration from similar inter-language
representation techniques found in other domains. Our approach maximises
portability by making few assumptions about the Prolog engine interacting with
Java (e.g., embedded or executed as an external process). We validate our work
by extending JPC, an open-source integration library, with features supporting
our approach. Our JPC library is currently compatible with three different open
source Prolog engines (SWI, YAP} and XSB) by means of drivers. To appear in
Theory and Practice of Logic Programming (TPLP).Comment: 10 pages, 2 figure
- …