Skip to content

Commit ffb8865

Browse files
committed
update v1.4 release notes
1 parent 97b897f commit ffb8865

2 files changed

Lines changed: 272 additions & 76 deletions

File tree

doc/release-notes/release-1.4.md

Lines changed: 158 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,237 @@
11
# khmer v1.4 release notes
22

3-
This is the v1.4 release of khmer featuring the results of our March coding sprint; the use of the new v0.8 release of screed (the library we use for pure Python reading of nucleotide sequence files); and the addition of @luizirber's HyperLogLog counter for quick cardinality estimation.
3+
This is the v1.4 release of khmer featuring the results of our March and April
4+
(PyCon) coding sprints and the 16 new contributors; the use of the new v0.8
5+
release of screed (the library we use for pure Python reading of nucleotide
6+
sequence files); and the addition of @luizirber's HyperLogLog counter for quick
7+
cardinality estimation.
48

59
Documentation is at https://khmer.readthedocs.org/en/v1.4/
610

711
## New items of note:
812

9-
Casava 1.8 read naming is now fully supported and in general the scripts no longer mangle read names. Side benefits: `split-paired-reads.py` will no longer drop reads with 'bad' names; `count-median.py` can generate output in CSV format. #759 #818 @ctb
13+
Casava 1.8 read naming is now fully supported and in general the scripts no
14+
longer mangle read names. Side benefits: `split-paired-reads.py` will no longer
15+
drop reads with 'bad' names; `count-median.py` can generate output in CSV
16+
format. #759 #818 @ctb #873 @ahaerpfer
1017

11-
Most scripts now support a "broken" interleaved paired-read format for FASTA/FASTQ nucleotide sequence files. [`trim-low-abund.py`](http://khmer.readthedocs.org/en/v1.4/user/scripts.html#trim-low-abund-py) has been promoted from the sandbox as well. #759 @ctb
18+
Most scripts now support a "broken" interleaved paired-read format for FASTA/
19+
FASTQ nucleotide sequence files.
20+
[`trim-low-abund.py`](http://khmer.readthedocs.org/en/v1.4/user/scripts.html#trim-low-abund-py)
21+
has been promoted from the sandbox as well (with streaming support). #759 @ctb
22+
\#963 @sguermond #933 @standage
1223

13-
The script to transform an interleaved paired-read nucleotide sequence file into two (`extract-paired-reads.py`) now allows one to name the output files which can be useful in combination with named pipes for streaming processing #762 @ctb
24+
The script to transform an interleaved paired-read nucleotide sequence file
25+
into two files now allows one to name the output files which can be useful in
26+
combination with named pipes for streaming processing #762 @ctb
1427

15-
Streaming everywhere: thanks to screed v0.8 we now support streaming of almost all inputs and outputs. #830 @aditi9783 #812 @mr-c
28+
Streaming everywhere: thanks to screed v0.8 we now support streaming of almost
29+
all inputs and outputs. #830 @aditi9783 #812 @mr-c #917 @bocajnotnef #882
30+
@standage
1631

17-
Need a quick way to count total number of unique k-mers in very low memory? the `unique-kmers.py` in the sandbox uses a HyperLogLog counter to quickly (and with little memory) provide an estimate with a controllable error rate. #257 #738 #895 #902 @luizirber
32+
Need a quick way to count total number of unique k-mers in very low memory? the
33+
`unique-kmers.py` script in the sandbox uses a HyperLogLog counter to quickly
34+
(and with little memory) provide an estimate with a controllable error rate.
35+
\#257 #738 #895 #902 @luizirber
36+
37+
`normalize-by-median.py` can now process both a paired interleaved sequence
38+
file and a file of unpaired reads in the same invocation thus removing the need
39+
to write the counting table to disk as required in the workaround. #957
40+
@susinmotion
1841

1942
## Notable bugs fixed/issues closed:
2043

21-
Paired-end reads from Casava 1.8 no longer require renaming for use in normalize-by-median and abund-filter when used in paired mode #818 @ctb
44+
Paired-end reads from Casava 1.8 no longer require renaming for use in
45+
`normalize-by-median.py` and `abund-filter.py` when used in paired mode #818
46+
@ctb
2247

2348
Python version support clarified. We do not (yet) support Python 3.x #741 @mr-c
2449

25-
If a single output file mode is chosen for normalize-by-median.py we now default to overwriting the output. Appending the output is available by using the append redirection operator from the shell. #843 @drtamermansour
50+
If a single output file mode is chosen for normalize-by-median.py we now
51+
default to overwriting the output. Appending the output is available by using
52+
the append redirection operator from the shell. #843 @drtamermansour
53+
54+
Scripts that consume sequence data using C++ will now properly throw an error
55+
on truncated files. #897 @kdmurray91 And while writing to disk we properly
56+
check for errors #856 #962 @mr-c
2657

27-
Scripts that consume sequence data using C++ will now properly throw an error on truncated files. #897 @kdmurray91
58+
`abundance-dist-single.py` no longer fails with small files and many threads.
59+
\#900 @mr-c
2860

2961
## Additional fixes/features
3062

3163
### Of interest to users:
3264

33-
Misc documentation updates #753 @PamelaM, #782 @bocajnotnef, #845 @alameldin, #804 @ctb, #870 @SchwarzEM
65+
Many documentation updates #753 @PamelaM, #782 @bocajnotnef, #845 @alameldin,
66+
\#804 @ctb, #870 @SchwarzEM, #953 #942 @safay, #929,@davelin1, #687 #912 #926
67+
@mr-c
3468

35-
Installation instructions for Arch Linux have been added #723 @reedacartwright
69+
Installation instructions for Conda, Arch Linux, and Mac Ports have been added
70+
\#723 @reedacartwright #952 @elmbeech #930 @ahaerpfer
3671

37-
The example script for the STAMPS database has been fixed to run correctly #781 @drtamermansour
72+
The example script for the STAMPS database has been fixed to run correctly #781
73+
@drtamermansour
3874

39-
split-paired-reads.py: added -o option to allow specification of an output directory #752 @bede
75+
`split-paired-reads.py`: added `-o` option to allow specification of an output
76+
directory #752 @bede
4077

41-
Fixed a string formatting glitch in `sample-reads-randomly.py` #773 @qingpeng
78+
Fixed a string formatting and a boundry error in `sample-reads-randomly.py`
79+
\#773 @qingpeng #995 @ctb
4280

43-
CSV output also added to `abundance-dist.py`, `abundance-dist-single.py`, and `count-overlap.py` #831 #854 #855 @drtamermansour
81+
CSV output added to `abundance-dist.py`, `abundance-dist-single.py`, and
82+
`count-overlap.py`, and `readstats.py` #831 #854 #855 @drtamermansour #959
83+
@anotherthomas
4484

45-
interleave-reads.py now prints the output filename nicely #827 @kdmurray91
85+
TSV/JSON output of `load-into-counting.py` enhanced with the total number of
86+
reads processed #996 @kdmurray91 Output files are now also checked to be
87+
writable *before* loading the input files #672 @pgarland @bocajnotnef
88+
89+
`interleave-reads.py` now prints the output filename nicely #827 @kdmurray91
4690

4791
Cleaned up error for input file not existing #772 @jessicamizzi #851 @ctb
4892

4993
Fixed error in `find-knots.py` #860 @TheOneHyer
5094

51-
The help text for `load-into-counting.py` for the `--no-bigcounts`/`-b` flag has been clarified #857 @kdmurray91
95+
The help text for `load-into-counting.py` for the `--no-bigcounts`/`-b` flag
96+
has been clarified #857 @kdmurray91
97+
98+
@lexnederbragt confirmed an old bug has been fixed with his test for whitespace
99+
in sequence identifiers interacting with the `extract-partitions.py` script
100+
\#979
101+
102+
Now safe to copy-and-paste from the user documentation as the smart quotes have
103+
been turned off. #967 @ahaerpfer
104+
105+
The script `make-coverage.py` has been restored to the sandbox. #920
106+
@SherineAwad
107+
108+
`normalize-by-median.py` will warn if two of the input files have the same name
109+
\#932 @elmbeech
52110

53111
### Of interest to developers:
54112

55-
Switched away from using `--user` install for developers #740 @mr-c @drtamermansour & #883 @standage
113+
Switched away from using `--user` install for developers #740 @mr-c
114+
@drtamermansour & #883 @standage
56115

57-
Developers can now see a summary of important Makefile targets via `make help` #783 @standage
116+
Developers can now see a summary of important Makefile targets via `make help`
117+
\#783 @standage
58118

59119
The unused `khmer.load_pe` module has been removed #828 @kdmurray91
60120

61121
Versioneer bug due to new screed release was squashed #835 @mr-c
62122

63123
A Python 2.6 and 2.7.2 specific bug was worked around #869 @kdmurray91 @ctb
64124

65-
added functions hash_find_all_tags_list and hash_get_tags_and_positions to CountingHash objects #749 #765 @ctb
125+
Added functions hash_find_all_tags_list and hash_get_tags_and_positions to
126+
CountingHash objects #749 #765 @ctb
66127

67-
The `make diff-cover` and ChangeLog formatting requirements have been added to checklist #766 @mr-c
128+
The `make diff-cover` and ChangeLog formatting requirements have been added to
129+
checklist #766 @mr-c
68130

69-
A useful message is now presented if large tables fail to allocate enough memory #704 @mr-c
131+
A useful message is now presented if large tables fail to allocate enough
132+
memory #704 @mr-c
70133

71134
A checklist for developers adding new CPython types was added #727 @mr-c
72135

73-
Specific policies for sandbox/ and scripts/ content, and a process for adding new command line scripts into scripts/ have been added to the developer documentation #799 @ctb
136+
The sandbox graduation checklist has been updated to include streaming support
137+
\#951 @sguermond
74138

75-
Sandbox scripts update: corrected #! Python invocation #815 @Echelon9, executable bits, copyright headers, no underscores in filenames #823 #826 #850 @alameldin several scripts deleted, docs + requirements updated #852 @ctb
139+
Specific policies for sandbox/ and scripts/ content, and a process for adding
140+
new command line scripts into scripts/ have been added to the developer
141+
documentation #799 @ctb
142+
143+
Sandbox scripts update: corrected #! Python invocation #815 @Echelon9,
144+
executable bits, copyright headers, no underscores in filenames #823 #826 #850
145+
@alameldin several scripts deleted, docs + requirements updated #852 @ctb
76146

77147
Avoid running big-memory tests on OS X #819 @ctb
78148

79149
Unused callback code was removed #698 @mr-c
80150

81-
The CPython code was updated to use the new checklist and follow additional best practices #785 #842 @luizirber
151+
The CPython code was updated to use the new checklist and follow additional
152+
best practices #785 #842 @luizirber
82153

83-
Added a read-only view of the raw counting tables #671 @camillescott #869 @kdmurray91
154+
Added a read-only view of the raw counting tables #671 @camillescott #869
155+
@kdmurray91
84156

85-
Added a Python method for quickly getting the number of underlying tables in a counting or presence table #879 #880 @kdmurray91
157+
Added a Python method for quickly getting the number of underlying tables in a
158+
counting or presence table #879 #880 @kdmurray91
86159

87-
The C++ library can now be built separately for the brave and curious developer #788 @kdmurray91
160+
The C++ library can now be built separately for the brave and curious developer
161+
\#788 @kdmurray91
88162

89-
The ReadParser object now keeps track of the number of reads processed #877 @kdmurray91
163+
The ReadParser object now keeps track of the number of reads processed #877
164+
@kdmurray91
90165

91166
Documentation is now reproducible #886 @mr-c
92167

93168
Python future proofing: specify floor division #863 @mr-c
94169

95-
Miscellaneous spelling fixes; thanks codespell! #867 @mr-c
170+
Miscellaneous spelling fixes; thanks codespell! #867 @mr-c
96171

97-
## Known issues:
172+
Debian package list update #984 @mr-c
98173

99-
All of these are pre-existing.
174+
`khmer.kfile.check_file_status()` has been renamed to `check_input_files()`
175+
\#941 @proteasome `filter-abund.py` now uses it to check the input counting
176+
table #931 @safay
177+
178+
`normalize-by-median.py` was refactored to not pass the ArgParse object around
179+
#965 @susinmotion
180+
181+
Developer communication has been clarified #969 @sguermond
182+
183+
Tests using the 'fail_okay=true' parameter to `runscript` have been updated to
184+
confirm the correct error occurred. 3 faulty tests were fixed and the docs were
185+
clarified #968 #971 @susinmotion
186+
187+
FASTA test added for `extract-long-sequences.py` #901 @jessicamizzi
100188

101-
Some users have reported that normalize-by-median.py will utilize more memory than it was configured for. This is being investigated in https://github.com/ged-lab/khmer/issues/266
189+
'added silly test for empty file warning' #557 @wltrimbl @bocajnotnef
102190

103-
If your k-mer table is truncated on write, an error may not be reported; this is being tracked in https://github.com/ged-lab/khmer/issues/443. However, khmer will now (correctly) fail when trying to read a truncated file (See #333).
191+
A couple tests were made more resilient and some extra error checking added in
192+
CPython land #889 @mr-c
104193

105-
Some scripts only output FASTA even if given a FASTQ file. This issue is being tracked in https://github.com/ged-lab/khmer/issues/46
194+
Copyright added to pull request checklist #940 @sguermond
106195

107-
A user reported that abundance-dist-single.py fails with small files and many threads. This issue is being tracked in https://github.com/ged-lab/khmer/issues/75
196+
`khmer_exception`s are now based on `std::string`s which plugs a memory leak
197+
\#938 @anotherthomas
198+
199+
Python docstrings were made PEP257 compliant #936 @ahaerpfer
200+
201+
Some C++ comments were converted to be Doxygen compliant #950 @josiahseaman
202+
203+
The counting and presence table warning logic was refactored and centralized
204+
\#944 @susinmotion
205+
206+
The release checklist was updated to better run the post-install tests #911
207+
@mr-c
208+
209+
The unused method `find_all_tags_truncate_on_abundance` was removed from the
210+
CPython API #924 @anotherthomas
211+
212+
OS X warnings quieted #887 @mr-c
213+
214+
## Known issues:
215+
216+
All of these are pre-existing.
217+
218+
Some users have reported that normalize-by-median.py will utilize more memory
219+
than it was configured for. This is being investigated in
220+
https://github.com/ged-lab/khmer/issues/266
221+
222+
Some scripts only output FASTA even if given a FASTQ file. This issue is being
223+
tracked in https://github.com/ged-lab/khmer/issues/46
108224

109225
## Contributors
110226

111-
@ctb, @kdmurray91, @drtamermansour, @luizirber, @mr-c, @jessicamizzi,
112-
@standage, @bocajnotnef, \*@alameldin, \*@aditi9783, \*@TheOneHyer, \*@bede,
113-
\*@SchwarzEM, \*@reedacartwright, @Echelon9, @qingpeng, @SherineAwad, @PamelaM
227+
@ctb, @kdmurray91, @mr-c, @drtamermansour, @luizirber, @standage, @bocajnotnef,
228+
\*@susinmotion, @jessicamizzi, \*@elmbeech, \*@anotherthomas, \*@sguermond,
229+
\*@ahaerpfer, \*@alameldin, \*@TheOneHyer, \*@aditi9783, \*@proteasome,
230+
\*@bede, \*@davelin1, @Echelon9, \*@reedacartwright, @qingpeng, \*@SchwarzEM,
231+
\*@scottsievert, @PamelaM, @SherineAwad, \*@josiahseaman, \*@lexnederbragt,
114232

115233
\* Indicates new contributors
116234

117235
## Issue reporters
118236

119-
@moorepants, @teshomem, @macmanes, @lexnederbragt, @r-gaia-cs
120-
237+
@moorepants, @teshomem, @macmanes, @lexnederbragt, @r-gaia-cs, @magentashades

0 commit comments

Comments
 (0)