sequence-formats 1.11.0.1 → 1.11.0.2
raw patch · 3 files changed
+102/−68 lines, 3 filesdep ~attoparsecdep ~basedep ~bytestringPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: attoparsec, base, bytestring, containers, errors, exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec, pipes-bytestring, pipes-safe, pipes-zlib, streaming-commons, tasty, tasty-hunit, transformers, vector
API changes (from Hackage documentation)
+ SequenceFormats.Eigenstrat: parseSex :: Parser Sex
- SequenceFormats.Bed: filterThroughBed :: Monad m => Producer BedEntry m () -> (a -> (Chrom, Int)) -> Producer a m () -> Producer a m ()
+ SequenceFormats.Bed: filterThroughBed :: forall (m :: Type -> Type) a. Monad m => Producer BedEntry m () -> (a -> (Chrom, Int)) -> Producer a m () -> Producer a m ()
- SequenceFormats.Bed: readBedFile :: MonadSafe m => FilePath -> Producer BedEntry m ()
+ SequenceFormats.Bed: readBedFile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer BedEntry m ()
- SequenceFormats.Eigenstrat: readEigenstratSnpFile :: MonadSafe m => FilePath -> Producer EigenstratSnpEntry m ()
+ SequenceFormats.Eigenstrat: readEigenstratSnpFile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer EigenstratSnpEntry m ()
- SequenceFormats.Eigenstrat: readEigenstratSnpStdIn :: (MonadThrow m, MonadIO m) => Producer EigenstratSnpEntry m ()
+ SequenceFormats.Eigenstrat: readEigenstratSnpStdIn :: forall (m :: Type -> Type). (MonadThrow m, MonadIO m) => Producer EigenstratSnpEntry m ()
- SequenceFormats.Eigenstrat: writeEigenstrat :: MonadSafe m => FilePath -> FilePath -> FilePath -> [EigenstratIndEntry] -> Consumer (EigenstratSnpEntry, GenoLine) m ()
+ SequenceFormats.Eigenstrat: writeEigenstrat :: forall (m :: Type -> Type). MonadSafe m => FilePath -> FilePath -> FilePath -> [EigenstratIndEntry] -> Consumer (EigenstratSnpEntry, GenoLine) m ()
- SequenceFormats.Eigenstrat: writeEigenstratGeno :: MonadSafe m => FilePath -> Consumer GenoLine m ()
+ SequenceFormats.Eigenstrat: writeEigenstratGeno :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Consumer GenoLine m ()
- SequenceFormats.Eigenstrat: writeEigenstratSnp :: MonadSafe m => FilePath -> Consumer EigenstratSnpEntry m ()
+ SequenceFormats.Eigenstrat: writeEigenstratSnp :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Consumer EigenstratSnpEntry m ()
- SequenceFormats.FreqSum: printFreqSumFile :: MonadSafe m => FilePath -> FreqSumHeader -> Consumer FreqSumEntry m ()
+ SequenceFormats.FreqSum: printFreqSumFile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> FreqSumHeader -> Consumer FreqSumEntry m ()
- SequenceFormats.FreqSum: printFreqSumStdOut :: MonadIO m => FreqSumHeader -> Consumer FreqSumEntry m ()
+ SequenceFormats.FreqSum: printFreqSumStdOut :: forall (m :: Type -> Type). MonadIO m => FreqSumHeader -> Consumer FreqSumEntry m ()
- SequenceFormats.Genomic: genomicFilterThroughBed :: (Monad m, Genomic e) => Producer BedEntry m () -> Producer e m () -> Producer e m ()
+ SequenceFormats.Genomic: genomicFilterThroughBed :: forall (m :: Type -> Type) e. (Monad m, Genomic e) => Producer BedEntry m () -> Producer e m () -> Producer e m ()
- SequenceFormats.Pileup: readPileupFromFile :: MonadSafe m => FilePath -> Producer PileupRow m ()
+ SequenceFormats.Pileup: readPileupFromFile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer PileupRow m ()
- SequenceFormats.Pileup: readPileupFromStdIn :: (MonadIO m, MonadThrow m) => Producer PileupRow m ()
+ SequenceFormats.Pileup: readPileupFromStdIn :: forall (m :: Type -> Type). (MonadIO m, MonadThrow m) => Producer PileupRow m ()
- SequenceFormats.Plink: readBimFile :: MonadSafe m => FilePath -> Producer EigenstratSnpEntry m ()
+ SequenceFormats.Plink: readBimFile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer EigenstratSnpEntry m ()
- SequenceFormats.Plink: readBimStdIn :: (MonadThrow m, MonadIO m) => Producer EigenstratSnpEntry m ()
+ SequenceFormats.Plink: readBimStdIn :: forall (m :: Type -> Type). (MonadThrow m, MonadIO m) => Producer EigenstratSnpEntry m ()
- SequenceFormats.Plink: writeBim :: MonadSafe m => FilePath -> Consumer EigenstratSnpEntry m ()
+ SequenceFormats.Plink: writeBim :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Consumer EigenstratSnpEntry m ()
- SequenceFormats.Plink: writePlink :: MonadSafe m => FilePath -> FilePath -> FilePath -> [PlinkFamEntry] -> Consumer (EigenstratSnpEntry, GenoLine) m ()
+ SequenceFormats.Plink: writePlink :: forall (m :: Type -> Type). MonadSafe m => FilePath -> FilePath -> FilePath -> [PlinkFamEntry] -> Consumer (EigenstratSnpEntry, GenoLine) m ()
- SequenceFormats.Utils: consumeProducer :: MonadThrow m => Parser a -> Producer ByteString m () -> Producer a m ()
+ SequenceFormats.Utils: consumeProducer :: forall (m :: Type -> Type) a. MonadThrow m => Parser a -> Producer ByteString m () -> Producer a m ()
- SequenceFormats.Utils: data () => Deflate
+ SequenceFormats.Utils: data Deflate
- SequenceFormats.Utils: gzipConsumer :: MonadIO m => Deflate -> Handle -> Consumer ByteString m ()
+ SequenceFormats.Utils: gzipConsumer :: forall (m :: Type -> Type). MonadIO m => Deflate -> Handle -> Consumer ByteString m ()
- SequenceFormats.Utils: liftParsingErrors :: MonadThrow m => Either (ParsingError, Producer ByteString m r) () -> Producer a m ()
+ SequenceFormats.Utils: liftParsingErrors :: forall (m :: Type -> Type) r a. MonadThrow m => Either (ParsingError, Producer ByteString m r) () -> Producer a m ()
- SequenceFormats.Utils: readFileProd :: MonadSafe m => FilePath -> Producer ByteString m ()
+ SequenceFormats.Utils: readFileProd :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer ByteString m ()
- SequenceFormats.Utils: readFileProdCheckCompress :: MonadSafe m => FilePath -> Producer ByteString m ()
+ SequenceFormats.Utils: readFileProdCheckCompress :: forall (m :: Type -> Type). MonadSafe m => FilePath -> Producer ByteString m ()
- SequenceFormats.VCF: printVCFtoStdOut :: MonadIO m => VCFheader -> Consumer VCFentry m ()
+ SequenceFormats.VCF: printVCFtoStdOut :: forall (m :: Type -> Type). MonadIO m => VCFheader -> Consumer VCFentry m ()
- SequenceFormats.VCF: writeVCFfile :: MonadSafe m => FilePath -> VCFheader -> Consumer VCFentry m ()
+ SequenceFormats.VCF: writeVCFfile :: forall (m :: Type -> Type). MonadSafe m => FilePath -> VCFheader -> Consumer VCFentry m ()
Files
- Changelog.md +1/−0
- sequence-formats.cabal +100/−67
- src/SequenceFormats/Eigenstrat.hs +1/−1
Changelog.md view
@@ -1,5 +1,6 @@ # Changelog +- V 1.11.0.2: exposed parseSex from Eigenstrat - V 1.11.0.1: Allowing missing alternative alleles when converting VCF to FreqSum, and improved error messaging. - V 1.11.0.0: Added support for writing of VCF files, including gzipping. Made some breaking API changes on top, for example to make the FreqSum data representation safer with respect to Ploidy. Also replaced String types in Eigenstrat and Plink formats to ByteStrings for efficiency. We anyway don't support Unicode with the AttoParsec library.
sequence-formats.cabal view
@@ -1,70 +1,103 @@-name: sequence-formats-version: 1.11.0.1-synopsis: A package with basic parsing utilities for several Bioinformatic data formats.-description: Contains utilities to parse and write Eigenstrat, Fasta, FreqSum, VCF, Plink and other file formats used in population genetics analyses.-license: GPL-3-license-file: LICENSE-author: Stephan Schiffels-maintainer: stephan.schiffels@mac.com-category: Bioinformatics-build-type: Simple-cabal-version: >=1.10-Homepage: https://github.com/stschiff/sequence-formats-Bug-Reports: https://github.com/stschiff/sequence-formats/issues+cabal-version: >=1.10+name: sequence-formats+version: 1.11.0.2+license: GPL-3+license-file: LICENSE+maintainer: stephan.schiffels@mac.com+author: Stephan Schiffels+homepage: https://github.com/stschiff/sequence-formats+bug-reports: https://github.com/stschiff/sequence-formats/issues+synopsis:+ A package with basic parsing utilities for several Bioinformatic data formats. -extra-source-files: README.md,- Changelog.md,- testDat/example.bed,- testDat/example.eigenstratgeno,- testDat/example.eigenstratgeno.gz,- testDat/example.fam,- testDat/example.fasta,- testDat/example.freqsum,- testDat/example.histogram.txt,- testDat/example.ind,- testDat/example.pileup,- testDat/example.plink.bed,- testDat/example.plink.bed.gz,- testDat/example.plink.bim,- testDat/example.plink.bim.gz,- testDat/example.plink.fam- testDat/example.snp,- testDat/example.snp.gz,- testDat/example.vcf,- testDat/example.vcf.gz- +description:+ Contains utilities to parse and write Eigenstrat, Fasta, FreqSum, VCF, Plink and other file formats used in population genetics analyses.++category: Bioinformatics+build-type: Simple+extra-source-files:+ README.md+ Changelog.md+ testDat/example.bed+ testDat/example.eigenstratgeno+ testDat/example.eigenstratgeno.gz+ testDat/example.fam+ testDat/example.fasta+ testDat/example.freqsum+ testDat/example.histogram.txt+ testDat/example.ind+ testDat/example.pileup+ testDat/example.plink.bed+ testDat/example.plink.bed.gz+ testDat/example.plink.bim+ testDat/example.plink.bim.gz+ testDat/example.plink.fam+ testDat/example.snp+ testDat/example.snp.gz+ testDat/example.vcf+ testDat/example.vcf.gz+ library- exposed-modules: SequenceFormats.RareAlleleHistogram,- SequenceFormats.FreqSum,- SequenceFormats.Fasta,- SequenceFormats.VCF,- SequenceFormats.Eigenstrat,- SequenceFormats.Plink,- SequenceFormats.Utils,- SequenceFormats.Pileup,- SequenceFormats.Bed,- SequenceFormats.Genomic- hs-source-dirs: src- build-depends: base >= 4.7 && < 5, containers, errors, attoparsec, pipes,- transformers, bytestring, lens-family,- pipes-bytestring, foldl, exceptions, pipes-safe,- pipes-attoparsec, vector, pipes-zlib, streaming-commons- default-language: Haskell2010+ exposed-modules:+ SequenceFormats.RareAlleleHistogram+ SequenceFormats.FreqSum+ SequenceFormats.Fasta+ SequenceFormats.VCF+ SequenceFormats.Eigenstrat+ SequenceFormats.Plink+ SequenceFormats.Utils+ SequenceFormats.Pileup+ SequenceFormats.Bed+ SequenceFormats.Genomic -Test-Suite sequenceFormatTests- type: exitcode-stdio-1.0- main-is: Spec.hs- hs-source-dirs: test- build-depends: base, sequence-formats, foldl, pipes, pipes-safe, tasty, vector,- transformers, tasty-hunit, bytestring, containers, hspec, pipes-zlib,- attoparsec- other-modules: SequenceFormats.EigenstratSpec,- SequenceFormats.BedSpec,- SequenceFormats.FastaSpec,- SequenceFormats.FreqSumSpec,- SequenceFormats.RareAlleleHistogramSpec,- SequenceFormats.UtilsSpec,- SequenceFormats.PlinkSpec,- SequenceFormats.VCFSpec,- SequenceFormats.PileupSpec- default-language: Haskell2010+ hs-source-dirs: src+ default-language: Haskell2010+ build-depends:+ base >=4.7 && <5,+ containers >=0.6.7,+ errors >=2.3.0,+ attoparsec >=0.14.4,+ pipes >=4.3.16,+ transformers >=0.6.1.0,+ bytestring >=0.11.5.3,+ lens-family >=2.1.3,+ pipes-bytestring >=2.1.7,+ foldl >=1.4.17,+ exceptions >=0.10.7,+ pipes-safe >=2.3.5,+ pipes-attoparsec >=0.6.0,+ vector >=0.13.1.0,+ pipes-zlib >=0.4.4.2,+ streaming-commons >=0.2.2.6++test-suite sequenceFormatTests+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ hs-source-dirs: test+ other-modules:+ SequenceFormats.EigenstratSpec+ SequenceFormats.BedSpec+ SequenceFormats.FastaSpec+ SequenceFormats.FreqSumSpec+ SequenceFormats.RareAlleleHistogramSpec+ SequenceFormats.UtilsSpec+ SequenceFormats.PlinkSpec+ SequenceFormats.VCFSpec+ SequenceFormats.PileupSpec++ default-language: Haskell2010+ build-depends:+ base >=4.18.2.1,+ sequence-formats,+ foldl >=1.4.17,+ pipes >=4.3.16,+ pipes-safe >=2.3.5,+ tasty >=1.4.3,+ vector >=0.13.1.0,+ transformers >=0.6.1.0,+ tasty-hunit >=0.10.2,+ bytestring >=0.11.5.3,+ containers >=0.6.7,+ hspec >=2.11.10,+ pipes-zlib >=0.4.4.2,+ attoparsec >=0.14.4
src/SequenceFormats/Eigenstrat.hs view
@@ -5,7 +5,7 @@ -} module SequenceFormats.Eigenstrat (EigenstratSnpEntry(..), EigenstratIndEntry(..),- readEigenstratInd, GenoEntry(..), GenoLine, Sex(..),+ readEigenstratInd, GenoEntry(..), GenoLine, Sex(..), parseSex, readEigenstratSnpStdIn, readEigenstratSnpFile, readEigenstrat, writeEigenstrat, writeEigenstratIndFile, writeEigenstratSnp, writeEigenstratGeno) where