Skip to content
Permalink
Browse files

RLS Release 0.11.0

A collection of several bugfixes and performance improvements over the
last few months.

Full ChangeLog:

    * Switch to diagrams package for plotting
    * Update minimap2 version to 2.14
    * Module samtools (version 0.1) now includes samtools_view
    * Fix bug with orf_find & prots_out argument
    * Call bwa/minimap2 with interleaved fastq files
    * Add --verbose flag to check-install mode
    * Avoid leaving open file descriptors after FastQ encoding detection
    * Fix bug in garbage collection
    * Compress intermediate SAM files (#22)
    * Tar extraction uses much less memory (#77)
    * Add early checks for input files in more situations (#33)
    * Support compression in collect() output (#42)
    * Fix CIGAR (#92) for select() blocks
    * Update to LTS-13 (GHC 8.6)
  • Loading branch information...
luispedro committed Mar 15, 2019
1 parent 7070d78 commit 88301edf9bffc7276ec40cac28c3f265ae1bc40b
@@ -1,4 +1,4 @@
Version 0.10.0+
Version 0.11.0 2019-03-15 by luispedro
* Switch to diagrams package for plotting
* Update minimap2 version to 2.14
* Module samtools (version 0.1) now includes samtools_view
@@ -214,21 +214,22 @@ loadScript (ScriptFilePath fname) =


parseVersion :: Maybe T.Text -> NGLess NGLVersion
parseVersion Nothing = return $ NGLVersion 0 10
parseVersion Nothing = return $ NGLVersion 0 11
parseVersion (Just "0.0") = return $ NGLVersion 0 0
parseVersion (Just "0.5") = return $ NGLVersion 0 5
parseVersion (Just "0.6") = return $ NGLVersion 0 6
parseVersion (Just "0.7") = return $ NGLVersion 0 7
parseVersion (Just "0.8") = return $ NGLVersion 0 8
parseVersion (Just "0.9") = return $ NGLVersion 0 9
parseVersion (Just "0.10") = return $ NGLVersion 0 10
parseVersion (Just "0.11") = return $ NGLVersion 0 11
parseVersion (Just v) = case T.splitOn "." v of
[majV,minV,_] ->
throwScriptError $ concat ["The NGLess version string at the top of the file should only\ncontain a major and a minor version, separated by a dot.\n\n"
,"You probably meant to write:\n\n"
,"ngless \"" , T.unpack majV, ".", T.unpack minV, "\"\n"]
[_, _] -> throwScriptError $ concat ["Version ", T.unpack v, " is not supported (only versions 0.0/0.5-10 are available in this release)."]
_ -> throwScriptError $ concat ["Version ", T.unpack v, " could not be understood. The version string should look like \"0.10\" or similar"]
[_, _] -> throwScriptError $ concat ["Version ", T.unpack v, " is not supported (only versions 0.0/0.5-11 are available in this release)."]
_ -> throwScriptError $ concat ["Version ", T.unpack v, " could not be understood. The version string should look like \"0.11\" or similar"]

modeExec :: NGLessMode -> IO ()
modeExec opts@DefaultMode{} = do
@@ -255,8 +256,8 @@ modeExec opts@DefaultMode{} = do
outputConfiguration
sc' <- runNGLess $ parsengless fname reqversion ngltext >>= maybe_add_print
activeVersion <- runNGLess . parseVersion $ (nglVersion <$> nglHeader sc')
when (activeVersion <= NGLVersion 0 7) $
outputListLno' WarningOutput ["Using old version (in compatibility mode). If possible, upgrade your version statement."]
when (activeVersion <= NGLVersion 0 10) $
outputListLno' WarningOutput ["Using old version (in compatibility mode). If possible, upgrade your version statement to ngless \"0.11\"."]
updateNglEnvironment (\e -> e {ngleVersion = activeVersion })
when (debug_mode opts == "ast") $ liftIO $ do
forM_ (nglBody sc') $ \(lno,e) ->
@@ -19,7 +19,7 @@ versionStr :: String
versionStr = showVersion version

dateStr :: String
dateStr = "Unreleased (post 0.10.0)"
dateStr = "Mar 15 2019"

gitHashStr :: String
gitHashStr = $(gitHash)
@@ -26,7 +26,7 @@ If you are using NGLess, please cite:

## Example

ngless "0.10"
ngless "0.11"
input = fastq(['ctrl1.fq','ctrl2.fq','stim1.fq','stim2.fq'])
input = preprocess(input) using |read|:
read = read[5:]
@@ -57,22 +57,22 @@ The recommended way to install NGLess is through
Alternatively, a docker container with NGLess is available at
[biocontainers](https://quay.io/repository/biocontainers/ngless):

docker run -v $PWD:/workdir -w /workdir -it quay.io/biocontainers/ngless:0.8.0--py35_0 ngless --version
docker run -v $PWD:/workdir -w /workdir -it quay.io/biocontainers/ngless:0.11.0--py35_0 ngless --version

Adapt the mount flags (``-v``) as needed.

### Linux

You can get a [statically linked version of
NGless 0.8.1](https://ngless.embl.de/releases/ngless-0.8.1-Linux64) or a [nighly
NGless 0.11.0](https://ngless.embl.de/releases/ngless-0.11.0-Linux64) or a [nighly
build of the latest development
code](https://gitlab.com/ngless/ngless/builds/artifacts/master/raw/bin/ngless?job=build-and-test-ubuntu).
This should work across a wide range of Linux versions (please
[report](https://github.com/ngless-toolkit/ngless/issues) any issues you encounter):

curl -O https://ngless.embl.de/releases/ngless-0.8.1-Linux64
chmod +x ngless-0.8.1-Linux64
./ngless-0.8.1-Linux64
curl -O https://ngless.embl.de/releases/ngless-0.11.0-Linux64
chmod +x ngless-0.11.0-Linux64
./ngless-0.11.0-Linux64

This download bundles bwa, samtools and megahit (also statically linked).

@@ -30,7 +30,7 @@ NGLess

NGLess is best illustrated by an example::

ngless "0.8"
ngless "0.11"
input = paired('ctrl1.fq', 'ctrl2.fq', singles='ctrl-singles.fq')
input = preprocess(input) using |read|:
read = read[5:]
@@ -103,7 +103,7 @@ This is equivalent to the full script:

::

ngless "0.7" # <- version declaration, optional on the command line
ngless "0.11" # <- version declaration, optional on the command line
samcontents = samfile("file.sam") # <- load a SAM/BAM file
reads = as_reads(samcontents) # <- just get the reads (w quality scores)
write(reads, ofname=STDOUT) # <- write them to STDOUT (default format: FASTQ)
@@ -113,7 +113,7 @@ out a single FQ file. Otherwise, you can always do:

::

ngless "0.7"
ngless "0.11"
write(as_read(samfile("file.sam")),
ofile="output.fq")

@@ -135,7 +135,7 @@ This is equivalent to the full script:

::

ngless "0.7" # <- version declaration, optional on the command line
ngless "0.11" # <- version declaration, optional on the command line
samcontents = samfile("file.sam") # <- load a SAM/BAM file
samcontents = select(samcontents, keep_if=[{mapped}]) # <- select only *mapped* reads
reads = as_reads(samcontents) # <- just get the reads (w quality scores)
@@ -2,6 +2,37 @@
What's New (History)
====================

Version 0.11.0
--------------

Released March 15 2019

User-visible improvements
~~~~~~~~~~~~~~~~~~~~~~~~~

- Module samtools (version 0.1) now includes `samtools_view`
- Add `--verbose` flag to check-install mode (`ngless --check-install --verbose`)
- Add early checks for input files in more situations (`#33 <https://github.com/ngless-toolkit/ngless/issues/33>`__)
- Support compression in `collect()` output (`#42 <https://github.com/ngless-toolkit/ngless/issues/42>`__)
- Add `smoothtrim() <https://ngless.embl.de/Functions.html#smoothtrim>`__ function

Bugfixes
~~~~~~~~
- Fix bug with `orf_find` & `prots_out` argument
- Fix bug in garbage collection where intermediate files were often left on disk for far longer than necessary.
- Fix CIGAR (`#92 <https://github.com/ngless-toolkit/ngless/issues/92>`__) for select() blocks

Internal improvements
~~~~~~~~~~~~~~~~~~~~~
- Switched to diagrams package for plotting. This should make building easier as cairo was often a complicated dependency.
- Update to LTS-13 (GHC 8.6)
- Update minimap2 version to 2.14
- Call bwa/minimap2 with interleaved fastq files. This avoids calling it twice (which would mean that the indices were read twice).
- Avoid leaving open file descriptors after FastQ encoding detection
- Compress intermediate SAM files. In some situations this should even speed up the process as Zstandard compression is used and the process was often IO bound (`#22 <https://github.com/ngless-toolkit/ngless/issues/22>`__)
- Tar extraction uses much less memory now (`#77 <https://github.com/ngless-toolkit/ngless/issues/77>`__)


Version 0.10.0
--------------

@@ -1,5 +1,5 @@
name: NGLess
version: '0.10.0'
version: '0.11.0'
category: Domain Specific Language
author: Luis Pedro Coelho and others (see AUTHORS)
maintainer: luis@luispedro.org
@@ -1,4 +1,4 @@
NGLess v0.10.0 (C) NGLess authors
NGLess v0.11.0 (C) NGLess authors
https://ngless.embl.de/

When publishing results from this script, please cite the following references:
@@ -1,4 +1,4 @@
NGLess v0.10.0 (C) NGLess authors
NGLess v0.11.0 (C) NGLess authors
https://ngless.embl.de/

When publishing results from this script, please cite the following references:
@@ -1,4 +1,4 @@
NGLess v0.10.0 (C) NGLess authors
NGLess v0.11.0 (C) NGLess authors
https://ngless.embl.de/

When publishing results from this script, please cite the following references:
@@ -1,4 +1,4 @@
NGLess v0.10.0 (C) NGLess authors
NGLess v0.11.0 (C) NGLess authors
https://ngless.embl.de/

When publishing results from this script, please cite the following references:
@@ -1,4 +1,4 @@
NGLess v0.10.0 (C) NGLess authors
NGLess v0.11.0 (C) NGLess authors
https://ngless.embl.de/

When publishing results from this script, please cite the following references:

0 comments on commit 88301ed

Please sign in to comment.
You can’t perform that action at this time.