Skip to content

Latest commit

 

History

History
566 lines (422 loc) · 28.6 KB

CHANGELOG.md

File metadata and controls

566 lines (422 loc) · 28.6 KB

Change Log

0.8.5 - 2024-05-23

Changed

  • Use aset instead of aset-* for performance #286
  • Misc performance tuning for cljam.algo.depth #287
  • Disable :missing-docstring linter for test code #288
  • Use ByteBuffer wrapper instead of LSB protocol #290
  • Rewrite TwoBitWriter using FileChannel and ByteBuffer #291
  • Replace remaining LSB protocol implementations with ordinary functions #293
  • Remove nth's linear search overhead in BCF reader #294

Fixed

  • Fix/apply lint #269
  • Fix/vcf float case insensitive #272
  • Fix/additional coding style #279
  • Fix/shadowing var #281
  • Fix/add doc string #282
  • Remove extra parens around static field references #300
  • Update dependencies #310

Added

  • Add function for unphasing genotypes #275
  • Support explicit first phasing indicator for VCF genotypes #276
  • Add validator for writing vcf. #277
  • Add validator for writing sam. #278
  • Implementing rANS4x8 decoder toward CRAM support #297
  • Add CRAM reader (alpha) #302
  • Misc performance improvements for CRAM reader #304
  • Index-based random access for CRAM reader #306
  • Support reading CRAM files with embedded references #307
  • Automatic read name generation for CRAM records #308
  • Support for CRAM beta coding #309
  • Support for reading alignments in specific region without CRAI index file #311

0.8.4 - 2023-04-12

Changed

  • Bump actions/checkout from 2.4.0 to 3 #254
  • Bump actions/cache from 2.1.7 to 3 #255
  • Bump codecov/codecov-action from 2.1.0 to 3 #256
  • Bump actions/setup-java from 2 to 3 #257
  • Bump xcoo/clj-lint-action from 1.1.10 to 1.1.11 #262

Fixed

  • Fix error that occurs when encoding a value greater than 32767 with ‘B, S’ data type in encoding alignment in encoding alignment. #264
  • Fix cljam.io.bam-test to work properly #266
  • fix: overflowing qual value in vcf #268

Added

  • Support CIGARs longer than 65535 operations #263
  • Extend the supported data types in encoding alignment options #265

0.8.3 - 2021-12-27

Changed

  • Bump actions/checkout from 2.3.4 to 2.3.5. #248
  • Bump actions/checkout from 2.3.5 to 2.4.0. #249
  • Bump actions/cache from 2.1.6 to 2.1.7. #250

Fixed

  • Avoid StackOverflowError while reading a VCF with many lines of meta. #252
  • Use bgzip as default for writing .gz files. #253

0.8.2 - 2021-09-30

Changed

  • Bump xcoo/clj-lint-action from 1.1.9 to 1.1.10. #246

Fixed

  • Fix error that occurs when querying intervals for missing chr. #247

0.8.1 - 2021-09-28

Added

  • Add support for fast interval finder. #209
  • Add support for nclist. #211
  • Add support for indexed? for vcf/bcf. #212

Changed

  • Update the version of lint-action to read the clj-kondo config file. #203
  • Introduce GitHub Dependabot to keep dependencies up to date. #204
  • Bump codecov/codecov-action from v1.0.3 to v1.0.10. #205
  • Bump codecov/codecov-action from v1.0.10 to v1.0.12. #207
  • Bump codecov/codecov-action from v1.0.12 to v1.0.13. #208
  • Bump xcoo/clj-lint-action from v1.1.6 to v1.1.7. #210
  • Bump codecov/codecov-action from v1.0.13 to v1.0.14. #213
  • Bump codecov/codecov-action from v1.0.14 to v1.0.15. #214
  • Update java versions for testing. #215
  • Bump codecov/codecov-action from v1.0.15 to v1.1.0. #216
  • Bump codecov/codecov-action from v1.1.0 to v1.1.1. #217
  • Bump codecov/codecov-action from v1.1.1 to v1.2.0. #218
  • Bump codecov/codecov-action from v1.2.0 to v1.2.1. #219
  • Bump actions/cache from v2 to v2.1.4. #220
  • Bump codecov/codecov-action from v1.2.1 to v1.2.2. #221
  • Bump codecov/codecov-action from v1.2.2 to v1.3.1. #222
  • Bump codecov/codecov-action from v1.3.1 to v1.3.2. #225
  • Update actions/setup-java to v2. #226
  • Bump actions/cache from v2.1.4 to v2.1.5. #227
  • Bump codecov/codecov-action from v1.3.2 to v1.4.0. #229
  • Bump codecov/codecov-action from v1.4.0 to v1.4.1. #230
  • Bump xcoo/clj-lint-action from v1.1.7 to v1.1.8. #231
  • Bump codecov/codecov-action from v1.4.1 to v1.5.0. #232
  • Bump actions/checkout from 2 to 2.3.4. #233
  • Bump actions/cache from 2.1.5 to 2.1.6. #234
  • Bump xcoo/clj-lint-action from 1.1.8 to 1.1.9. #235
  • Add explanation to info exception. #236
  • Bump codecov/codecov-action from 1.5.0 to 1.5.2. #237
  • Fix bam encoder/decoder to convert sam to bam. #239
  • Fix parser generation not to interpret unnecessary data when calculat…. #241
  • Bump codecov/codecov-action from 1.5.2 to 2.0.1. #242
  • Bump codecov/codecov-action from 2.0.1 to 2.0.2. #243
  • Bump codecov/codecov-action from 2.0.2 to 2.0.3. #244
  • Bump codecov/codecov-action from 2.0.3 to 2.1.0. #245

0.8.0 - 2020-06-22

BREAKING

  • cljam.io.tabix is rewritten. #180
  • cljam.io.bam-index.writer/pos->lidx-offset is moved to cljam.io.util.bin/pos->lidx-offset. #180
  • cljam.io.sam.util/reg->bin is moved to cljam.io.util.bin/reg->bin. Also, a coordinate system of its argument is changed from 0-based half-open to 1-based fully-closed. #190

Added

  • Add support for random reading of vcf file. #180
  • Add support for CSI reader. #182
  • Add support for random reading of a bcf file. #187
  • Add support for generating CSI file from bgzip compressed VCF. #190
  • Add lint actions. #195
  • Add support for generating CSI file from BCF. #196
  • Add support cloning VCF/BCF. #200
  • Create an index file while writing a sorted BAM file. #197

Changed

  • Migrate CI to GitHub Actions. #181
  • Detect the latest build number of OpenJDK EA. #183
  • Improve performance for reading string from BCF. #186
  • Improvement for pileup memory usage. #188
  • Replace memoizing cache for parsed CIGARs with core.memoize's LU cache. #189
  • Apply cljfmt. #191
  • Fix warnings and errors reported by clj-kondo. #192
  • Update actions/checkout to v2. #193
  • Run lein check on CI. #199
  • Refactor cljam.io.util.bin. #201
  • Refactor cljam.io.csi. #202

Fixed

  • Fix a bug in reading bgzipped VCF files. #184
  • Fix float reader for specific environments such as IcedTea. #185
  • Fix reading chrs when chrs in index file and chr are not equal. #194
  • Add base_sha option to clj-lint-action. #198

0.7.4 - 2019-10-04

Fixed

  • Fix creating temp directory to support multiple users. #178
  • Avoid an ArityException on creating an index for BAM files without alignments. #179

0.7.3 - 2019-09-03

Added

  • Add content-based file type detection. #171
  • Add support for random reading of bgzipped FASTA files. #174

Fixed

  • Fix I/O of variants with empty info/individual fields. #167
  • Fix bugs in BCF I/O. #168
  • Ignore undeclared keys in INFO and FORMAT when writing BCF files. #169
  • Provide a default file format version for BCF. #170
  • Fix nonintentional paths. #172
  • Fix decoding of long CIGAR ops in BAM. #173
  • Fix reflection warnings. #175
  • Fix minor typos. #176
  • Fix grammar. #177

0.7.2 - 2019-06-04

Added

  • Add utility functions for manipulating genotypes. #162
  • Add support for breakends in VCF. #163
  • Add a function to inspect an ALT allele of VCF. #164
  • Normalize variants in a VCF file. #166

Changed

  • Improve pileup by chunking alignments. #160
  • Improve pileup more. #165

Fixed

  • Skip INFO value parsing if it's empty. #161

0.7.1 - 2019-04-01

Fixed

  • Remove useless nil entries in variants. #156
  • Fix ByteBuffer/CharBuffer methods incompatibility. #159

0.7.0 - 2018-11-21

BREAKING

  • Strand representation is changed to keyword (:forward, :reverse).
  • Chromosome name normalization is decoupled from BED i/o.
  • Pileup module is entirely rewritten. See #140 for more information.

Added

  • Support extra fields for VCF/BCF meta info. #135
  • Character escaping support for string fields in VCF meta info. #138
  • GFF3 I/O. #143
  • Add basic reader/writer support for WIG. #145
  • Add a reader for bigWig format. #149

Changed

  • Rewrite pileup module. #140
  • Use :forward/:reverse/nil as values for the key ':strand'. #144
  • Improve performance of TwoBitReader. #153
  • Remove normalization of chromosome names from BED reader. #154

Fixed

  • Fix options of cljam.algo.pileup/pileup. #146
  • Fix a bug in cljam.algo.pileup/pileup. #148
  • Fix some fields of cljam.io.pileup LocusPile and PileupBase. #151

0.6.0 - 2018-06-22

BREAKING

  • N padding for out-of-range bases is not appended. See #120 comment and #121 for more information.
  • cljam.io.protocols/{reader,writer}-path were renamed to cljam.io.protocols/{reader,writer}-url. Their return values are java.net.URL.

Added

  • Add some extensions for FASTA format. #124
  • Add many util functions for SAM/BAM files & split cljam.io.sam.util. #128
  • Add FASTQ=>FASTA, SAM=>FASTQ conversions. #129
  • Add some BED manipulation APIs. #131
  • Support more source types. #132

Changed

  • Remove N padding for out-of-range bases in read-sequence. #121
  • Upgrade dependencies. #134

Fixed

  • Fix some serialization functions. #122
  • Fix parsing SAM header values containing ':'. #123
  • Fix wrong padding of last bases in 2bit writer. #127
  • Fix a bug in merging bed regions. #130
  • Fix exec binary on Java 9+. #133

0.5.1 - 2017-11-10

Added

  • Set up benchmarks. #108
  • Add read-indices to ISequenceReader protocol. #109
  • Extract region utils to cljam.util.region and add some functions. #110
  • Add region option to view command. #112
  • Add FASTA-TwoBit converter. #117

Changed

  • Make convert parallelism controllable. #113
  • Java 9 compatibility. #114
  • Move coverage phase to build stages. #116
  • Low-memory sequence I/O. #118
  • Improve performance of FASTA random reading. #120

Fixed

  • Fix StackOverflowError in cljam.io.protocols/read-in-region. #107
  • Fix parsing comma-separated number in region. #111
  • Don't refer clojure.core/indexed? in cljam.io. #115
  • Fix a bug that 2bit reader incorrectly reads small n. #119

0.5.0 - 2017-09-05

BREAKING

  • :ignore-index option of cljam.io.sam/bam-reader and cljam.io.sequence/fasta-reader is removed.
  • :depth option of cljam.io.sam/read-alignments is removed. It returns SAMAlignment only.
  • SAM/BAM reading functions return Eduction instances instead of lazy sequences.

Added

  • Add a logging configuration for cli. #99
  • Add an ordering function for chromosome name. #101
  • Add utilities for whole-genome coordinate. #103

Changed

  • Refactor cljam.algo.level. #93
  • Refactor BAI I/O. #96
  • Reorganize BAM I/O. #97
  • Tweak the normalization function for chromosome name. #98
  • Make index reading of FASTA reader delayed. #100
  • Improve sequence readers. #104
  • Rename test namespaces to conventional names. #105
  • Upgrade dependencies. #106

Fixed

  • Update an example usage of depth in README. #94
  • Use returned values of conj! in reg->bins*. #95
  • Use lazy pmap for lazy-depth. #102

0.4.1 - 2017-08-01

Changed

  • Improve chromosome normalization. #89
  • Suppress log output in test. #90
  • Extract depth algorithm and improve performance. #91

Fixed

  • Fix parser of optional fields in SAM/BAM. #92

0.4.0 - 2017-06-28

BREAKING

Namespaces of most APIs are changed in this release.

  • cljam.io.*** - reader/writer functions of various formats such as SAM, VCF, and FASTA.
  • cljam.algo.*** - algorithms such as sort, indexing, and pileup.
  • cljam.util.*** - utilities such as chromosome name normalization.
  • cljam.tools.*** - tools such as command-line interface.

Added

  • Add protocols for I/O APIs. #78
  • Add FASTAWriter and TwoBitWriter. #79
  • Support SAM normalization. #86
  • Add docstring. #88

Changed

Fixed

  • Fix test of BCF writer. #82

0.3.1 - 2017-05-29

Added

  • Add BED reader/writer. #73

Changed

  • Change default start/end of bam reader. #74
  • Extend cljam.core reader/writer functions. #75
  • Setup automatic snapshots deployment. #76
  • Improve performance of deep decoding of BAM files. #77

0.3.0 - 2017-05-08

BREAKING

From this release, cljam.vcf/read-variants parses FORMAT, FILTER, INFO and samples columns of VCF.

(require '[cljam.vcf :as vcf])

(with-open [rdr (vcf/reader "test-resources/vcf/test-v4_3.vcf")]
  (first (vcf/read-variants rdr)))
;;=> {:FORMAT (:GT :GQ :DP :HQ),
;;    :NA00001 {:DP 1, :GQ 48, :GT "0|0", :HQ (51 51)},
;;    :NA00002 {:DP 8, :GQ 48, :GT "1|0", :HQ (51 51)},
;;    :NA00003 {:DP 5, :GQ 43, :GT "1/1", :HQ (nil nil)},
;;    :alt ["A"],
;;    :chr "20",
;;    :filter (:PASS),
;;    :id "rs6054257",
;;    :info {:AF (0.5), :DB :exists, :DP 14, :H2 :exists, :NS 3},
;;    :pos 14370,
;;    :qual 29.0,
;;    :ref "G"}

Add {:depth :vcf} option to the second argument if string is preferred.

Added

  • Add a function to clone bam reader. #39
  • Support coverage analysis with cloverage. #45
  • Add many tests. #60
  • Add tests to check generated data correctness. #61
    • Examine result file of dedupe in test. #63
    • Examine result file of create-dict in test. #64
    • Examine result files of cljam pileup in test. #65
    • Examine result file of cljam normalize in test. #66
    • Examine result file of create-mpileup. #67
    • Examine result file of cljam level test. #70
  • Add BCF reader/writer and utility functions for VCF. #68

Changed

  • Improves performance of pileup. #41
  • Migrate from midje to clojure.test. #44
  • Correct base qualities if reads are overlapped. #47
  • Use lein-binplus instead of lein-bin. #48
  • Add marks to private fn. #50
  • Refine unused code for newline. #51
  • Pileup without options. #54
  • Refine trim-chromosome-key. #55
  • Refine fastq-char->phred-byte / Add phred-byte->fastq-char. #56
  • Separate test resources based on file types. #71
  • Separate :slow and :heavy test-selectors. #72

Fixed

  • Fix for create-mpileup. #52
  • Fix for cljam level command. #57

0.2.1 - 2017-04-06

Added

  • 2bit-encoded reference reader. #31
  • Add functions for deduplicating paired-end BAM. #32
  • Add :ignore-index option to cljam.fasta/reader. #34

Changed

  • Improve performance of FASTA indexing. #30
  • Improve performance of BAM sequence encoding. #35

Fixed

  • Fix cider-refresh error. #33
  • Fix StackOverflowError in parse-header of SAM/BAM files. #38

0.2.0 - 2017-02-20

BREAKING

From this release, ranges are represented as one-based closed intervals. For example,

{:chr "chr1", :start 1, :end 3}

represents the first three bases of chromosome 1.

Added

  • BED file reader/writer. #20
  • Read unplaced reads in BAM. #24

Changed

  • Improve performance of reading BAM files. #22
  • Replace candidate-message function with one in clj-sub-command.
  • Improve performance of reading vcf file. #29

Fixed

  • Fix a bug in BAM random reader. #21
  • Read multiple contigs in VCF meta info. #23 #25
  • Enable decompressUntilEOF of CompressorStreamFactory. #26
  • Fix bugs in mpileup. #27 #28

0.1.6 - 2017-01-06

  • Sequential reading function for FASTA #16
  • Common compressor stream #17
  • Add encode/decode functions for SAM FLAG field #19
  • Fix mpileup bug
  • Improve project settings #18

0.1.5 - 2016-07-26

  • Add FASTQ I/O
  • Add VCF I/O
  • Improve level analyzer
  • Improve mpileup
  • Improve performance of SAM/BAM conversion
  • Fix bugs of sorter
  • Fix small bugs

0.1.4 - 2016-02-02

  • Add level analyzer of alignments
  • Update dependencies except clojure 1.8.0
  • Enable CI with JDK8
  • Fix bugs of sorter
  • Fix bugs of m-pileup
  • Fix small bugs

0.1.3 - 2015-08-14

  • Improve FASTA reading
  • Improve normalization
  • Improve pileup performance (also support concurrency)
  • Enable index command to specify the number of threads
  • Display sub-command candidates
  • Fix bugs

0.1.2 - 2014-05-20

  • Improve performance of pileup
  • Fix small bugs
  • Refactoring codes

0.1.1 - 2014-04-25

  • Improve performance of BAM indexing
  • Fix bugs of FASTA indexing
  • Fix bugs of sequence dictionary creation
  • Refactoring codes

0.1.0 - 2014-04-03

First release