<div dir="ltr"><div>Dear colleagues,</div><div><br></div><div>I am very happy to announce the release of version 1.0 of the khmer project.</div><div><br></div><div><a href="https://khmer.readthedocs.org/en/v1.0/">https://khmer.readthedocs.org/en/v1.0/</a><br>

</div><div><br></div><div>The team has been hard at work since v0.8 to refine the codebase into a stable product.</div><div><br></div><div>With the 1.0 release we are making a commitment to using Semantic Versioning[0]: the version number will reflect the impact of the changes between releases. New major versions will likely require you to change how you use the project. Minor versions indicate new functionality that doesn&#39;t impact the existing. Patch versions indicate backwards-compatible fixes. Right now we are limiting this promise to the command-line interface. A future release will introduce a stable and mature Python API to the khmer project and at that time we will extend the version system to include that API.</div>

<div><br></div><div>## New items of note:</div><div><br></div><div>CITATION: Each script now outputs information on how to cite it. There is a new paper to describes the project overall: <span style="color:rgb(0,0,0)">MR Crusoe et al., 2014. doi: 10.6084/m9.figshare.979190</span></div>

<div><br></div><div>The documentation for the scripts has undergone an overhaul. The scripts now output extensive notes and the formal documentation website is generated from the scripts themselves and will never be out of sync.</div>

<div><br></div><div><a href="https://khmer.readthedocs.org/en/v1.0/scripts.html">https://khmer.readthedocs.org/en/v1.0/scripts.html</a><br></div><div><br></div><div>## Notable bugs fixed/issues closed:<br></div><div><div>

<br></div><div>git clone of the khmer repo reqs &gt; 0.5 GiB #223 @mr-c<br></div></div><div><div>new khmer/file module #357 @RamRS<br></div></div><div><div>Floating point exception in count-overlap.py #282 @qingpeng</div>

<div></div></div><div><div>add documentation for sample-reads-randomly #192 @mr-c</div><div>only build zlib and bzip2 when needed #168 @mr-c</div></div><div><br></div><div>## Minor updates</div><div><br></div><div>khmer tools should output intelligent error messages when fed empty files #135 @RamRS<br>

</div><div>set IParser::ParserState::ParserState:fill_id to zero at initialization #356<br></div><div>demote nose &amp; sphinx to extra dependencies. #351 @mr-c<br></div><div>CID 1054792 (Medium) Uninitialized scalar field (UNINIT_CTOR) #179 @mr-c<br>

</div><div>CID 1077117 (Medium): Division or modulo by zero (DIVIDE_BY_ZERO) #182 @mr-c<br></div><div>if --savehash is specified then don&#39;t continue if there is not enough free disk space #245 @RamRS<br></div><div>finish fixing implicit downcasts #330 @mr-c<br>

</div><div>Clean up compile warnings in subset.cc #172 @mr-c<br></div><div>all scripts need to output their version #236 @mr-c<br></div><div>environmental variables need documenting #303 @mr-c<br></div><div>C++ code should be consistently formatted #261 @mr-c<br>

</div><div>Clean up ancillary files #146 @mr-c<br></div><div>squash option not implemented in abundance-dist-single.py #271 @RamRS<br></div><div>Add documentation on how to tie into a particular tagged version #29 @mr-c<br>

</div><div>pip install -e fails with compile error #352 @mr-c<br></div><div>remove the unused KTable object #337 @luizirber</div><div><div>zlib 1.2.3 -&gt; zlib 1.2.8 #336 @mr-c</div></div><div>CID 1173035: Uninitialized scalar field (UNINIT_CTOR) #311 @mr-c<br>

</div><div>CID 1153101: Resource leak in object (CTOR_DTOR_LEAK) #309 @mr-c<br></div><div>remove khmer::read_parsers::IParser::ParserState::thread_id #323 @mr-c<br></div><div>several modifications about count-overlap.py script #324 @qingpeng<br>

</div><div>fixed runscript to handle SystemExit #332 @ctb<br></div><div>CID 1063852: Uninitialized scalar field (UNINIT_CTOR) #313 @mr-c<br></div><div>[infrastructure] update to new Doxyfile format, make version number autoupdate #315 @mr-c</div>

<div><div>Removed an extraneous using namespace khmer; in kmer.hh, #276 @fishjord<br></div></div><div><div>Minimum and recommended python version #94 @mr-c</div></div><div><div>KmerCount class appears to be unused #302 @mr-c</div>

</div><div>If loadhash is specified in e.g. normalize-by-median, don&#39;t complain about default hashsize parameters #117 @RamRS<br></div><div><br></div><div>## Known Issues</div><div><br></div><div><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px">All of these are pre-existing.</span><br>

</div><div><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><div><font color="#000000" face="arial, sans-serif">Some users have reported that normalize-by-median.py will utilize more</font></div>

<div><font color="#000000" face="arial, sans-serif">memory than it was configured for. This is being investigated in</font></div><div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/266">https://github.com/ged-lab/khmer/issues/266</a></font></div>

<div><font color="#000000" face="arial, sans-serif"><br></font></div><div><font color="#000000" face="arial, sans-serif">Some FASTQ files confuse our parser when running with more than one thread.</font></div><div><font color="#000000" face="arial, sans-serif">For example, while using load-into-counting.py. If you experience this then</font></div>

<div><font color="#000000" face="arial, sans-serif">add &quot;--threads=1&quot; to your command line. This issue is being tracked in</font></div><div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/249">https://github.com/ged-lab/khmer/issues/249</a></font></div>

<div><font color="#000000" face="arial, sans-serif"><br></font></div><div><font color="#000000" face="arial, sans-serif">If your k-mer table (hashfile) gets truncated, perhaps from a full filesystem, then our</font></div>

<div><font color="#000000" face="arial, sans-serif">tools currently will get stuck. This is being tracked in </font></div><div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/247">https://github.com/ged-lab/khmer/issues/247</a> and</font></div>

<div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/96">https://github.com/ged-lab/khmer/issues/96</a> and</font></div><div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/246">https://github.com/ged-lab/khmer/issues/246</a></font></div>

<div><font color="#000000" face="arial, sans-serif"><br></font></div><div><font color="#000000" face="arial, sans-serif">Paired-end reads from Casava 1.8 currently require renaming for use in</font></div><div><font color="#000000" face="arial, sans-serif">normalize-by-median and abund-filter when used in paired mode. The</font></div>

<div><font color="#000000" face="arial, sans-serif">integration of a fix for this is being tracked in</font></div><div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/23">https://github.com/ged-lab/khmer/issues/23</a></font></div>

<div><font color="#000000" face="arial, sans-serif"><br></font></div><div><font color="#000000" face="arial, sans-serif">annotate-partitions.py only outputs FASTA even if given a FASTQ file. This</font></div><div><font color="#000000" face="arial, sans-serif">issue is being tracked in <a href="https://github.com/ged-lab/khmer/issues/46">https://github.com/ged-lab/khmer/issues/46</a></font></div>

<div><font color="#000000" face="arial, sans-serif"><br></font></div><div><font color="#000000" face="arial, sans-serif">A user reported that abundance-dist-single.py fails with small files and many</font></div><div><font color="#000000" face="arial, sans-serif">threads. This issue is being tracked in</font></div>

<div><font color="#000000" face="arial, sans-serif"><a href="https://github.com/ged-lab/khmer/issues/75">https://github.com/ged-lab/khmer/issues/75</a></font></div></div><div><font color="#000000" face="arial, sans-serif"><br>

</font></div><div><font color="#000000" face="arial, sans-serif"><div>## Contributors</div><div><br></div><div>@camillescott, @mr-c, @ctb, @luizirber, @RamRS, @qingpeng</div></font></div><br clear="all"><div>[0] <a href="http://semver.org/">http://semver.org/</a></div>

<div><br></div>-- <br><div dir="ltr"><span style="font-family:&#39;courier new&#39;,monospace;font-size:small">Michael R. Crusoe:  Programmer &amp; Bioinformatician   </span><a href="mailto:mcrusoe@msu.edu" style="color:rgb(17,85,204);font-family:&#39;courier new&#39;,monospace;font-size:small" target="_blank">mcrusoe@msu.edu</a><br style="font-family:&#39;courier new&#39;,monospace;font-size:small">

<span style="font-family:&#39;courier new&#39;,monospace;font-size:small"> @ the Genomics, Evolution, and Development lab; Michigan State U</span><br style="font-family:&#39;courier new&#39;,monospace;font-size:small"><a href="http://ged.msu.edu/" style="color:rgb(17,85,204);font-family:&#39;courier new&#39;,monospace;font-size:small" target="_blank">http://ged.msu.edu/</a><span style="font-family:&#39;courier new&#39;,monospace;font-size:small"> </span><a href="http://orcid.org/0000-0002-2961-9670" style="color:rgb(17,85,204);font-family:&#39;courier new&#39;,monospace;font-size:small" target="_blank">http://orcid.org/0000-0002-2961-9670</a><span style="font-family:&#39;courier new&#39;,monospace;font-size:small"> </span><a href="http://twitter.com/biocrusoe" style="color:rgb(17,85,204);font-family:&#39;courier new&#39;,monospace;font-size:small" target="_blank">@biocrusoe</a><br>

</div></div>