├── entab-js
├── .cargo-ok
├── example
│ ├── icons
│ │ ├── favicon.ico
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── maskable_icon.png
│ │ ├── apple-touch-icon.png
│ │ ├── android-chrome-192x192.png
│ │ └── android-chrome-512x512.png
│ ├── service-worker.js
│ └── app.webmanifest
├── .appveyor.yml
├── src
│ ├── utils.rs
│ └── lib.rs
├── README.md
├── Cargo.toml
├── LICENSE.md
├── tests
│ └── web.rs
└── .travis.yml
├── entab-py
├── rust-toolchain
├── entab
│ ├── __init__.py
│ └── spectra.py
├── pyproject.toml
├── README.md
├── Cargo.toml
└── src
│ └── raw_io_wrapper.rs
├── entab
├── fuzz
│ ├── rust-toolchain
│ ├── .gitignore
│ ├── fuzz_targets
│ │ ├── tsv.rs
│ │ └── reader.rs
│ └── Cargo.toml
├── tests
│ ├── data
│ │ ├── chemstation_mwd.d
│ │ │ ├── RUN.M
│ │ │ │ ├── RECALIB.MTH
│ │ │ │ ├── FIA.REG
│ │ │ │ ├── LAFC1.REG
│ │ │ │ ├── LALS1.REG
│ │ │ │ ├── LMWD1.REG
│ │ │ │ ├── LPMP1.REG
│ │ │ │ ├── LTHM1.REG
│ │ │ │ ├── DAMETHOD.REG
│ │ │ │ ├── INFO.MTH
│ │ │ │ └── ACQ.MS
│ │ │ ├── RUN.LOG
│ │ │ ├── mwd1A.ch
│ │ │ ├── mwd1B.ch
│ │ │ ├── mwd1C.ch
│ │ │ ├── mwd1D.ch
│ │ │ ├── mwd1E.ch
│ │ │ ├── ACQRES.REG
│ │ │ ├── LCDIAG.REG
│ │ │ ├── LAFC1FD.REG
│ │ │ ├── MSACQINF.REG
│ │ │ ├── ATUNES.TUN
│ │ │ │ ├── NEGATIVE.U
│ │ │ │ └── POSITIVE.U
│ │ │ ├── SAMPLE.MAC
│ │ │ └── result.ini
│ │ ├── test.bam
│ │ ├── bmp_24.png
│ │ ├── small.RAW
│ │ ├── test.csv.xz
│ │ ├── test_fid.ch
│ │ ├── test-0000.cf
│ │ ├── test.csv.bz2
│ │ ├── test.csv.zst
│ │ ├── b3_alkanes.dxf
│ │ ├── bmp_indexed.png
│ │ ├── test_179_fid.ch
│ │ ├── carotenoid_extract.d
│ │ │ ├── MSD1.MS
│ │ │ ├── RUN.LOG
│ │ │ ├── dad1.uv
│ │ │ ├── ACQRES.REG
│ │ │ ├── LCDIAG.REG
│ │ │ ├── MSDIAG.REG
│ │ │ ├── SAMPLE.XML
│ │ │ ├── result.ini
│ │ │ ├── LAFC1FD.REG
│ │ │ ├── MSACQINF.REG
│ │ │ ├── MSPARMS.txt
│ │ │ ├── RUN.M
│ │ │ │ ├── FIA.REG
│ │ │ │ ├── INFO.MTH
│ │ │ │ ├── LAFC1.REG
│ │ │ │ ├── LALS1.REG
│ │ │ │ ├── LDAD1.REG
│ │ │ │ ├── LPMP1.REG
│ │ │ │ ├── LTHM1.REG
│ │ │ │ ├── RECALIB.MTH
│ │ │ │ ├── DAMETHOD.REG
│ │ │ │ └── ACQ.MS
│ │ │ ├── SAMPLE.MAC.bak
│ │ │ └── atunes.tun
│ │ │ │ ├── NEGATIVE.U
│ │ │ │ └── POSITIVE.U
│ │ ├── masshunter_example
│ │ │ ├── desktop.ini
│ │ │ └── AcqData
│ │ │ │ ├── DAD1.cd
│ │ │ │ ├── DAD1.cg
│ │ │ │ ├── DAD1.sd
│ │ │ │ ├── DAD1.sp
│ │ │ │ ├── TCC1.cd
│ │ │ │ ├── TCC1.cg
│ │ │ │ ├── MSScan.bin
│ │ │ │ ├── MSProfile.bin
│ │ │ │ ├── QuatPump1.cd
│ │ │ │ ├── QuatPump1.cg
│ │ │ │ ├── RJB_Airs2001FIA.m
│ │ │ │ ├── 192_1.stg
│ │ │ │ ├── DAD_1_MethodMetaData.XML
│ │ │ │ ├── TCC_1_MethodMetaData.XML
│ │ │ │ ├── DaMethod
│ │ │ │ │ ├── Qual
│ │ │ │ │ │ ├── info.xml
│ │ │ │ │ │ └── method.xml
│ │ │ │ │ └── Quant
│ │ │ │ │ │ ├── info.xml
│ │ │ │ │ │ └── method.xml
│ │ │ │ ├── HiP-ALS_1_MethodMetaData.XML
│ │ │ │ ├── QuatPump_1_MethodMetaData.XML
│ │ │ │ ├── qqqacqmethod.xsd
│ │ │ │ ├── info.xml
│ │ │ │ ├── HiP-ALS_1_Pretreatment.XML
│ │ │ │ ├── TCC_1.XML
│ │ │ │ ├── HiP-ALS_1.XML
│ │ │ │ ├── msquad.xsd
│ │ │ │ ├── DAD_1.XML
│ │ │ │ └── 192_1.xml
│ │ │ │ ├── MSTS.xml
│ │ │ │ ├── Contents.xml
│ │ │ │ ├── Devices.xml
│ │ │ │ ├── MSScan.xsd
│ │ │ │ └── sample_info.xml
│ │ ├── HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs
│ │ ├── test.sam
│ │ └── sequence.fasta
│ └── DATA_SOURCES.txt
├── src
│ ├── parsers
│ │ ├── thermo
│ │ │ └── mod.rs
│ │ ├── agilent
│ │ │ ├── mod.rs
│ │ │ └── chemstation_reg.rs
│ │ ├── microsoft_common.rs
│ │ ├── mod.rs
│ │ ├── fasta.rs
│ │ ├── fastq.rs
│ │ ├── common.rs
│ │ └── xml.rs
│ ├── lib.rs
│ ├── compression.rs
│ └── record.rs
├── Cargo.toml
├── README.md
└── benches
│ └── benchmarks.rs
├── entab-r
├── .Rbuildignore
├── .gitignore
├── NAMESPACE
├── src
│ ├── Makevars.ucrt
│ ├── Makevars
│ ├── Makevars.win
│ └── lib.rs
├── man
│ ├── cash-Reader-method.Rd
│ ├── Reader-class.Rd
│ ├── show-Reader-method.Rd
│ ├── as.data.frame-Reader-method.Rd
│ └── initialize-Reader-method.Rd
├── Cargo.toml
├── DESCRIPTION
├── LICENSE
├── R
│ └── lib.R
└── README.md
├── entab-cli
├── README.md
├── src
│ ├── main.rs
│ ├── lib.rs
│ └── tsv_params.rs
└── Cargo.toml
├── .gitignore
├── Cargo.toml
├── entab-benchmarks
├── README.md
├── Cargo.toml
└── benches
│ └── fasta.rs
├── LICENSE.md
├── .github
└── workflows
│ ├── website.yml
│ ├── tests.yml
│ └── publish.yml
└── README.md
/entab-js/.cargo-ok:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/entab-py/rust-toolchain:
--------------------------------------------------------------------------------
1 | nightly
2 |
--------------------------------------------------------------------------------
/entab/fuzz/rust-toolchain:
--------------------------------------------------------------------------------
1 | nightly
2 |
--------------------------------------------------------------------------------
/entab-r/.Rbuildignore:
--------------------------------------------------------------------------------
1 | ^\.gitignore$
2 | ^\.\.Rcheck$
3 |
--------------------------------------------------------------------------------
/entab-py/entab/__init__.py:
--------------------------------------------------------------------------------
1 | from ._entab import Reader
2 |
3 |
--------------------------------------------------------------------------------
/entab/fuzz/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | target
3 | corpus
4 | artifacts
5 |
--------------------------------------------------------------------------------
/entab-r/.gitignore:
--------------------------------------------------------------------------------
1 | src/libentab.so
2 | ..Rcheck
3 | entab.Rcheck
4 |
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/RECALIB.MTH:
--------------------------------------------------------------------------------
1 | CLEARMIX
2 |
--------------------------------------------------------------------------------
/entab-cli/README.md:
--------------------------------------------------------------------------------
1 | This is the CLI using the entab parsing library.
2 |
--------------------------------------------------------------------------------
/entab/tests/data/test.bam:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test.bam
--------------------------------------------------------------------------------
/entab/tests/data/bmp_24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/bmp_24.png
--------------------------------------------------------------------------------
/entab/tests/data/small.RAW:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/small.RAW
--------------------------------------------------------------------------------
/entab/tests/data/test.csv.xz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test.csv.xz
--------------------------------------------------------------------------------
/entab/tests/data/test_fid.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test_fid.ch
--------------------------------------------------------------------------------
/entab/tests/data/test-0000.cf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test-0000.cf
--------------------------------------------------------------------------------
/entab/tests/data/test.csv.bz2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test.csv.bz2
--------------------------------------------------------------------------------
/entab/tests/data/test.csv.zst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test.csv.zst
--------------------------------------------------------------------------------
/entab/tests/data/b3_alkanes.dxf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/b3_alkanes.dxf
--------------------------------------------------------------------------------
/entab/tests/data/bmp_indexed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/bmp_indexed.png
--------------------------------------------------------------------------------
/entab/tests/data/test_179_fid.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/test_179_fid.ch
--------------------------------------------------------------------------------
/entab-js/example/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/favicon.ico
--------------------------------------------------------------------------------
/entab-js/example/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/entab-js/example/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/entab-js/example/icons/maskable_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/maskable_icon.png
--------------------------------------------------------------------------------
/entab-js/example/icons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/apple-touch-icon.png
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.LOG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.LOG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/mwd1A.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/mwd1A.ch
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/mwd1B.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/mwd1B.ch
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/mwd1C.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/mwd1C.ch
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/mwd1D.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/mwd1D.ch
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/mwd1E.ch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/mwd1E.ch
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/MSD1.MS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/MSD1.MS
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.LOG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.LOG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/dad1.uv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/dad1.uv
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/ACQRES.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/ACQRES.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/LCDIAG.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/LCDIAG.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/ACQRES.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/ACQRES.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/LCDIAG.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/LCDIAG.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/MSDIAG.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/MSDIAG.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/SAMPLE.XML:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/SAMPLE.XML
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/result.ini:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/result.ini
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/LAFC1FD.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/LAFC1FD.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/MSACQINF.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/MSACQINF.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/FIA.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/FIA.REG
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/desktop.ini:
--------------------------------------------------------------------------------
1 | [.ShellClassInfo]
2 | IconFile=C:\Windows\system32\agtMassHunter.ico
3 | IconIndex=0
4 |
--------------------------------------------------------------------------------
/entab-js/example/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/entab-js/example/icons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab-js/example/icons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/LAFC1FD.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/LAFC1FD.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/MSACQINF.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/MSACQINF.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/MSPARMS.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/MSPARMS.txt
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/LAFC1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/LAFC1.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/LALS1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/LALS1.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/LMWD1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/LMWD1.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/LPMP1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/LPMP1.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/LTHM1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/LTHM1.REG
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | **/*.rs.bk
3 | Cargo.lock
4 | bin/
5 | dist/
6 | pkg/
7 | wasm-pack.log
8 | venv/
9 | __pycache__/
10 | _entab.*.so
11 |
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/FIA.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/FIA.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/INFO.MTH:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/INFO.MTH
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/LAFC1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/LAFC1.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/LALS1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/LALS1.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/LDAD1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/LDAD1.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/LPMP1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/LPMP1.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/LTHM1.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/LTHM1.REG
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/SAMPLE.MAC.bak:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/SAMPLE.MAC.bak
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/DAMETHOD.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/RUN.M/DAMETHOD.REG
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/DAD1.cd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/DAD1.cd
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/DAD1.cg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/DAD1.cg
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/DAD1.sd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/DAD1.sd
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/DAD1.sp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/DAD1.sp
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/TCC1.cd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/TCC1.cd
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/TCC1.cg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/TCC1.cg
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/RECALIB.MTH:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/RECALIB.MTH
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/MSScan.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/MSScan.bin
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/RUN.M/DAMETHOD.REG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/RUN.M/DAMETHOD.REG
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/ATUNES.TUN/NEGATIVE.U:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/ATUNES.TUN/NEGATIVE.U
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/ATUNES.TUN/POSITIVE.U:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/chemstation_mwd.d/ATUNES.TUN/POSITIVE.U
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/MSProfile.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/MSProfile.bin
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/QuatPump1.cd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/QuatPump1.cd
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/QuatPump1.cg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/QuatPump1.cg
--------------------------------------------------------------------------------
/entab/tests/data/HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/atunes.tun/NEGATIVE.U:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/atunes.tun/NEGATIVE.U
--------------------------------------------------------------------------------
/entab/tests/data/carotenoid_extract.d/atunes.tun/POSITIVE.U:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/carotenoid_extract.d/atunes.tun/POSITIVE.U
--------------------------------------------------------------------------------
/entab/src/parsers/thermo/mod.rs:
--------------------------------------------------------------------------------
1 | /// Parsers for files from Thermo's isotopic mass specs
2 | pub mod thermo_iso;
3 | /// Parsers for Thermo "RAW" format
4 | pub mod thermo_raw;
5 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/192_1.stg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bovee/entab/HEAD/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/192_1.stg
--------------------------------------------------------------------------------
/entab-r/NAMESPACE:
--------------------------------------------------------------------------------
1 | # Generated by roxygen2: do not edit by hand
2 |
3 | export(Reader)
4 | exportMethods(as.data.frame)
5 | importFrom(methods,new)
6 | useDynLib(libentab, .registration = TRUE)
7 |
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/SAMPLE.MAC:
--------------------------------------------------------------------------------
1 | Name SAMPLEINFO
2 | ON ERROR Print ""
3 | SAMPLETARGETMASS ""
4 | ON ERROR
5 | CLRRPTSMPLINFO
6 | SAMPLECALISTD 1,0
7 | SAMPLECALAMT 0,1,1
8 | REMOVE SAMPLEINFO
9 | RETURN
10 |
--------------------------------------------------------------------------------
/entab-py/pyproject.toml:
--------------------------------------------------------------------------------
1 | [build-system]
2 | requires = ["maturin>=1.0,<2.0"]
3 | build-backend = "maturin"
4 |
5 | [project]
6 | name = "entab"
7 |
8 | [tool.maturin]
9 | bindings = "pyo3"
10 | features = ["maturin"]
11 | module-name = "entab._entab"
12 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/DAD_1_MethodMetaData.XML:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | UseInjectorProgram
5 | 0
6 |
7 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/TCC_1_MethodMetaData.XML:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | UseInjectorProgram
5 | 0
6 |
7 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/DaMethod/Qual/info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 | 0
6 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/DaMethod/Quant/info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 | 0
6 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/HiP-ALS_1_MethodMetaData.XML:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | UseInjectorProgram
5 | 0
6 |
7 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/QuatPump_1_MethodMetaData.XML:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | UseInjectorProgram
5 | 0
6 |
7 |
--------------------------------------------------------------------------------
/entab-r/src/Makevars.ucrt:
--------------------------------------------------------------------------------
1 | # Use GNU toolchain for R >= 4.2
2 | TOOLCHAIN = stable-gnu
3 |
4 | # Rtools42 doesn't have the linker in the location that cargo expects, so we
5 | # need to overwrite it via configuration.
6 | CARGO_LINKER = x86_64-w64-mingw32.static.posix-gcc.exe
7 |
8 | include Makevars.win
9 |
--------------------------------------------------------------------------------
/entab-r/man/cash-Reader-method.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/lib.R
3 | \name{$,Reader-method}
4 | \alias{$,Reader-method}
5 | \title{Expose methods}
6 | \usage{
7 | \S4method{$}{Reader}(x, name)
8 | }
9 | \description{
10 | i.e. Reader$metadata(), Reader$headers(), and Reader$parser()
11 | }
12 |
--------------------------------------------------------------------------------
/entab-r/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab-r"
3 | version = "0.3.3"
4 | authors = ["Roderick "]
5 | edition = "2018"
6 |
7 | [dependencies]
8 | entab_base = { package = "entab", git = "https://github.com/bovee/entab" }
9 | extendr-api = "0.6.0"
10 | libR-sys = "0.6.0"
11 |
12 | [lib]
13 | name = "entab"
14 | crate-type = ["cdylib"]
15 |
--------------------------------------------------------------------------------
/entab-r/man/Reader-class.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/lib.R
3 | \docType{class}
4 | \name{Reader-class}
5 | \alias{Reader-class}
6 | \alias{Reader}
7 | \title{entab: a package for reading record-oriented file types}
8 | \description{
9 | entab: a package for reading record-oriented file types
10 | }
11 |
--------------------------------------------------------------------------------
/entab-r/man/show-Reader-method.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/lib.R
3 | \name{show,Reader-method}
4 | \alias{show,Reader-method}
5 | \title{Pretty-print a description of the Reader}
6 | \usage{
7 | \S4method{show}{Reader}(object)
8 | }
9 | \description{
10 | Pretty-print a description of the Reader
11 | }
12 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [workspace]
2 | members = [
3 | "entab",
4 | "entab-cli",
5 | "entab-js",
6 | "entab-py",
7 | ]
8 |
9 | exclude = [
10 | "entab-r",
11 | "entab-benchmarks",
12 | ]
13 |
14 | [profile.release]
15 | lto = true
16 | codegen-units = 1
17 |
18 | [profile.bench]
19 | lto = true
20 | opt-level = 3
21 | overflow-checks = false
22 | codegen-units = 1
23 |
--------------------------------------------------------------------------------
/entab-cli/src/main.rs:
--------------------------------------------------------------------------------
1 | use std::env::args_os;
2 | use std::io;
3 |
4 | use entab_cli::run;
5 |
6 | pub fn main() {
7 | let stdin = io::stdin();
8 | let stdout = io::stdout();
9 |
10 | if let Err(e) = run(args_os(), stdin.lock(), stdout.lock()) {
11 | eprintln!("##### AN ERROR OCCURRED ####");
12 | eprintln!("{}", e);
13 | eprintln!("#####");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/result.ini:
--------------------------------------------------------------------------------
1 |
2 | [Header]
3 | SampleLocation=Vial 11
4 | Detector1=MWD1
5 | Detector2=UIB
6 | Detector3=MSD
7 | Detector4=
8 | Trigger=0
9 | PeakDuration=1.5
10 | Fractions=1
11 | Time=10
12 | PeakDetection=0
13 | WriteMasses=0
14 | LastDet=
15 | MsdDelay1=0.01
16 | NumFractions=0
17 | [Recovery]
18 | NumLoc=0
19 | [Fraction_0]
20 | NumWells=0
21 |
--------------------------------------------------------------------------------
/entab-js/.appveyor.yml:
--------------------------------------------------------------------------------
1 | install:
2 | - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
3 | - if not defined RUSTFLAGS rustup-init.exe -y --default-host x86_64-pc-windows-msvc --default-toolchain nightly
4 | - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
5 | - rustc -V
6 | - cargo -V
7 |
8 | build: false
9 |
10 | test_script:
11 | - cargo test --locked
12 |
--------------------------------------------------------------------------------
/entab-r/man/as.data.frame-Reader-method.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/lib.R
3 | \name{as.data.frame,Reader-method}
4 | \alias{as.data.frame,Reader-method}
5 | \title{Convert the Reader into a data.frame}
6 | \usage{
7 | \S4method{as.data.frame}{Reader}(x, row.names = NULL, optional = FALSE, ...)
8 | }
9 | \description{
10 | Convert the Reader into a data.frame
11 | }
12 |
--------------------------------------------------------------------------------
/entab-r/DESCRIPTION:
--------------------------------------------------------------------------------
1 | Package: entab
2 | Type: Package
3 | Title: Entab
4 | Version: 0.3.1
5 | Author: Roderick
6 | Maintainer: Roderick
7 | Description: Entab is a record-format file reader.
8 | License: MIT + file LICENSE
9 | Encoding: UTF-8
10 | Imports:
11 | methods
12 | Suggests:
13 | devtools,
14 | roxygen2
15 | LazyData: true
16 | RoxygenNote: 7.1.2
17 | SystemRequirements: Cargo (rustc package manager)
18 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/MSTS.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 | 0.0001166666666667
6 | 0.4021
7 | 49
8 | false
9 |
10 |
11 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/DaMethod/Qual/method.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 | Link
6 |
7 |
8 | Select a method
9 |
10 |
11 |
--------------------------------------------------------------------------------
/entab/fuzz/fuzz_targets/tsv.rs:
--------------------------------------------------------------------------------
1 | #![no_main]
2 | use libfuzzer_sys::fuzz_target;
3 | extern crate entab;
4 |
5 | use entab::EtError;
6 | use entab::parsers::tsv::TsvReader;
7 |
8 | fuzz_target!(|data: &[u8]| {
9 | let _ = generate_reader(data);
10 | });
11 |
12 | fn generate_reader(data: &[u8]) -> Result<(), EtError> {
13 | let mut reader = TsvReader::new(data, None)?;
14 | while let Some(_) = reader.next()? {
15 | }
16 | Ok(())
17 | }
18 |
--------------------------------------------------------------------------------
/entab/tests/data/chemstation_mwd.d/RUN.M/INFO.MTH:
--------------------------------------------------------------------------------
1 | CLEARMETHOD
2 | PRERUNPROGRAM 0
3 | POSTRUNPROGRAM 0
4 | ENABLEACQUISITION 1
5 | ENABLEANALYSIS 1
6 | CUSTOMANALYSIS 0
7 | COPYMETHOD 1
8 | SAVEGLPDATA 0
9 | PRERUNNAME ""
10 | POSTRUNNAME ""
11 | SIGNAL2METH ""
12 | ANALYSISMACRO ""
13 | METHODCOMMENT
14 | METHODCOMMENT "Reverse-phase separation of proteins with a H2O-MeOH gradient. Formic \"
15 | METHODCOMMENT "acid used as a ion-pairing agent.\"
16 |
--------------------------------------------------------------------------------
/entab-benchmarks/README.md:
--------------------------------------------------------------------------------
1 | # Benchmarks
2 |
3 | These are benchmarks of entab against other Rust parsers available on crates.io.
4 | Note that the test files used as _not_ representative of real life data, e.g. needletail appears very slow parsing FASTA files here because of set-up overhead, but with more representative, real-life data it's much, much faster.
5 | To test on more accurate scenarios, update the filenames in benchmarks.rs.
6 |
7 | Run with `cargo criterion`.
8 |
9 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/qqqacqmethod.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/entab-py/README.md:
--------------------------------------------------------------------------------
1 | # Entab
2 |
3 | Parse record-based file formats into a stream of records.
4 |
5 | ## Usage
6 |
7 | ```python
8 | from entab import Reader
9 | reader = Reader(filename='test.fa')
10 | for record in reader:
11 | print(record.id)
12 | ```
13 |
14 | ## Development
15 |
16 | Build with `maturin build` or build a working copy with `maturin develop`.
17 |
18 | Test with `cargo test`.
19 |
20 | # Releases
21 |
22 | Releases are generated by a Github Action.
23 |
--------------------------------------------------------------------------------
/entab/fuzz/fuzz_targets/reader.rs:
--------------------------------------------------------------------------------
1 | #![no_main]
2 | use libfuzzer_sys::fuzz_target;
3 | extern crate entab;
4 |
5 | use entab::EtError;
6 | use entab::readers::get_reader;
7 |
8 | fuzz_target!(|data: &[u8]| {
9 | let _ = generate_reader(data);
10 | });
11 |
12 | fn generate_reader(data: &[u8]) -> Result<(), EtError> {
13 | let (mut rec_reader, _) = get_reader(data, None, None)?;
14 | while let Some(_) = rec_reader.next_record()? {
15 | }
16 | Ok(())
17 | }
18 |
--------------------------------------------------------------------------------
/entab-js/src/utils.rs:
--------------------------------------------------------------------------------
1 | pub fn set_panic_hook() {
2 | // When the `console_error_panic_hook` feature is enabled, we can call the
3 | // `set_panic_hook` function at least once during initialization, and then
4 | // we will get better error messages if our code ever panics.
5 | //
6 | // For more details see
7 | // https://github.com/rustwasm/console_error_panic_hook#readme
8 | #[cfg(feature = "console_error_panic_hook")]
9 | console_error_panic_hook::set_once();
10 | }
11 |
--------------------------------------------------------------------------------
/entab/fuzz/Cargo.toml:
--------------------------------------------------------------------------------
1 |
2 | [package]
3 | name = "entab-fuzz"
4 | version = "0.0.0"
5 | authors = ["Automatically generated"]
6 | publish = false
7 | edition = "2018"
8 |
9 | [package.metadata]
10 | cargo-fuzz = true
11 |
12 | [dependencies]
13 | libfuzzer-sys = "0.4"
14 |
15 | [dependencies.entab]
16 | path = ".."
17 |
18 | # Prevent this from interfering with workspaces
19 | [workspace]
20 | members = ["."]
21 |
22 | [[bin]]
23 | name = "reader"
24 | path = "fuzz_targets/reader.rs"
25 |
26 | [[bin]]
27 | name = "tsv"
28 | path = "fuzz_targets/tsv.rs"
29 | test = false
30 | doc = false
31 |
--------------------------------------------------------------------------------
/entab-benchmarks/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab-benchmarks"
3 | version = "0.1.0"
4 | edition = "2018"
5 |
6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7 |
8 | [dependencies]
9 | entab = { path = "../entab" }
10 | needletail = "0.5.1"
11 | noodles = { version = "0.41.0", features = ["bam", "fasta", "fastq", "sam"] }
12 | bio = "1.2.0"
13 | rust-htslib = "0.43.1"
14 | seq_io = "0.3.1"
15 | memchr = "2.5" # for optimized FASTA benchmark
16 |
17 | [dev-dependencies]
18 | criterion = "0.5"
19 |
20 | [[bench]]
21 | name = "benchmark"
22 | harness = false
23 |
--------------------------------------------------------------------------------
/entab-py/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab-py"
3 | version = "0.3.3"
4 | authors = ["Roderick "]
5 | license = "MIT"
6 | description = "Record-format file reader"
7 | repository = "https://github.com/bovee/entab"
8 | edition = "2018"
9 |
10 | [dependencies]
11 | entab_base = { package = "entab", path = "../entab", default-features = false, features = ["std"] }
12 | memmap = "0.7"
13 | pyo3 = { version = "0.22.0" }
14 |
15 | [lib]
16 | name = "entab"
17 | crate-type = ["cdylib"]
18 |
19 | [features]
20 | maturin = ["pyo3/extension-module"]
21 |
22 | [package.metadata.maturin]
23 | name = "entab"
24 |
--------------------------------------------------------------------------------
/entab-r/man/initialize-Reader-method.Rd:
--------------------------------------------------------------------------------
1 | % Generated by roxygen2: do not edit by hand
2 | % Please edit documentation in R/lib.R
3 | \name{initialize,Reader-method}
4 | \alias{initialize,Reader-method}
5 | \title{Create a new Reader}
6 | \usage{
7 | \S4method{initialize}{Reader}(.Object, filename, parser = "")
8 | }
9 | \arguments{
10 | \item{.Object}{base object}
11 |
12 | \item{filename}{path to the file to be parsed}
13 |
14 | \item{parser}{name of the parser to be used; if not specified, auto-detected}
15 | }
16 | \value{
17 | Reader wrapping the opened file
18 | }
19 | \description{
20 | Create a new Reader
21 | }
22 |
--------------------------------------------------------------------------------
/entab-r/src/Makevars:
--------------------------------------------------------------------------------
1 | TARGET_DIR = ../target
2 | LIBDIR = $(TARGET_DIR)/release
3 | STATLIB = libentab.so
4 | PKG_LIBS = -L$(LIBDIR) -lentab
5 | ifeq ($(shell uname -s),Darwin)
6 | PLATFORM_STATLIB = libentab.dylib
7 | else
8 | PLATFORM_STATLIB = libentab.so
9 | endif
10 |
11 | all: C_clean
12 |
13 | $(SHLIB): $(STATLIB)
14 |
15 | $(STATLIB):
16 | export PATH="$(PATH):$(HOME)/.cargo/bin" && \
17 | cargo build --release --manifest-path=../Cargo.toml --target-dir $(TARGET_DIR)
18 | mv ./$(LIBDIR)/$(PLATFORM_STATLIB) ./$(STATLIB)
19 |
20 | C_clean:
21 | rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS)
22 |
23 | clean:
24 | rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) $(TARGET_DIR)
25 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/DaMethod/Quant/method.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 | 0
6 | Link
7 |
8 |
9 | Select a method
10 |
11 |
12 | 0
13 |
14 |
15 | 0
16 | 0
17 | CSV
18 |
--------------------------------------------------------------------------------
/entab-cli/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab-cli"
3 | version = "0.3.3"
4 | authors = ["Roderick "]
5 | edition = "2018"
6 | description = "Record-format file reader CLI"
7 | readme = "README.md"
8 | repository = "https://github.com/bovee/entab"
9 | license = "MIT"
10 | categories = ["command-line-utilities", "parsing", "science"]
11 |
12 | [dependencies]
13 | clap = { version = "4.5.7", features = ["cargo"] }
14 | entab = { path = "../entab", version = "0.3.1" }
15 | memchr = "2.7"
16 | memmap2 = { version = "0.9.4", optional = true }
17 |
18 | [features]
19 | default = ["mmap"]
20 | mmap = ["memmap2"]
21 |
22 | [[bin]]
23 | name = "entab"
24 | path = "src/main.rs"
25 |
--------------------------------------------------------------------------------
/entab-js/README.md:
--------------------------------------------------------------------------------
1 | # Entab
2 |
3 | Parse record-based file formats into a stream of records.
4 |
5 | ## Usage
6 |
7 | ```javascript
8 | import { Reader } from 'entab';
9 |
10 | // now parse the file
11 | const reader = new Reader(new Uint8Array(await file.arrayBuffer()));
12 | // or a string
13 | const reader = new Reader(new TextEncoder("utf-8").encode(">test\nacgt"));
14 | for (const record of reader) {
15 | ...
16 | }
17 | ```
18 |
19 | Note that this will require paging the entire file into memory so files that
20 | take >10 Mb may be slow and files >100 Mb may not work at all.
21 |
22 | ## Development
23 |
24 | Build with `wasm-pack build`.
25 |
26 | Test with `wasm-pack test`.
27 |
28 |
--------------------------------------------------------------------------------
/entab-js/example/service-worker.js:
--------------------------------------------------------------------------------
1 | self.addEventListener('install', evt => {
2 | evt.waitUntil(
3 | caches.open('entab').then(cache => {
4 | return cache.add('./index.html').then(() => self.skipWaiting());
5 | })
6 | )
7 | });
8 |
9 | self.addEventListener('activate', evt => {
10 | evt.waitUntil(self.clients.claim());
11 | });
12 |
13 | self.addEventListener('fetch', evt => {
14 | // fix for the bug here: https://bugs.chromium.org/p/chromium/issues/detail?id=823392
15 | if (evt.request.cache === 'only-if-cached' && evt.request.mode !== 'same-origin') {
16 | return;
17 | }
18 |
19 | evt.respondWith(
20 | caches.match(evt.request).then(res => res || fetch(evt.request)),
21 | );
22 | });
23 |
--------------------------------------------------------------------------------
/entab-js/example/app.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "entab",
3 | "name": "entab",
4 | "description": "entab is a parser for bioinformatic, chemoinformatic and other scientific file formats. This page is a demonstration of how it can be used to graph data and file formats it can read.",
5 | "icons": [
6 | {"src": "/icons/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png"},
7 | {"src": "/icons/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png"},
8 | {"src": "/icons/maskable_icon.png", "sizes": "192x192", "type": "image/png", "purpose": "any maskable"}
9 | ],
10 | "start_url": "/index.html",
11 | "background_color": "#FFFFFF",
12 | "display": "standalone",
13 | "scope": "/",
14 | "theme_color": "#B0B0D0"
15 | }
16 |
--------------------------------------------------------------------------------
/entab/tests/data/masshunter_example/AcqData/RJB_Airs2001FIA.m/info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | B.05.00
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Default Method
26 | 1.4
27 |
--------------------------------------------------------------------------------
/entab-js/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab-js"
3 | version = "0.3.3"
4 | authors = ["Roderick "]
5 | license = "MIT"
6 | description = "Record-format file reader"
7 | repository = "https://github.com/bovee/entab"
8 | edition = "2018"
9 |
10 | [lib]
11 | name = "entab"
12 | crate-type = ["cdylib", "rlib"]
13 |
14 | [features]
15 | default = ["console_error_panic_hook"]
16 |
17 | [dependencies]
18 | console_error_panic_hook = { version = "0.1.7", optional = true }
19 | entab_base = { package = "entab", path = "../entab", default-features = false, features = ["std"] }
20 | js-sys = "0.3.69"
21 | serde = { version = "1.0", features = ["derive"] }
22 | serde-wasm-bindgen = "0.6.5"
23 | wasm-bindgen = { version = "0.2.92", features = ["serde-serialize"] }
24 |
25 | [dev-dependencies]
26 | wasm-bindgen-test = "0.3.36"
27 |
--------------------------------------------------------------------------------
/entab/tests/DATA_SOURCES.txt:
--------------------------------------------------------------------------------
1 | filename, source, license
2 | bmp_24.png, https://people.sc.fsu.edu/~jburkardt/data/png/png.html, LGPL
3 | b3_alkanes.dxf, collected by Roderick,
4 | HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs, https://github.com/eyurtsev/fcsparser/blob/master/fcsparser/tests/data/FlowCytometers/HTS_BD_LSR-II/HTS_BD_LSR_II_Mixed_Specimen_001_D6_D06.fcs, MIT
5 | carotenoid_extract.d, collected by Roderick,
6 | chemstation_mwd.d, collected by Roderick,
7 | masshunter_exampke, collected by Roderick,
8 | sequence.fasta, downloaded from NCBI,
9 | test.csv.bz2, generated by hand
10 | test.csv.xz, generated by hand
11 | test.csv.zst, generated by hand
12 | test-0000.cf, collected by Roderick,
13 | test.bam, generated from test.sam,
14 | test.fastq, downloaded from NCBI,
15 | test_fid.ch, collected by Roderick,
16 | test_179_fid.ch, from issue #32
17 | test.sam, generated from aligning sequence.fasta against test.fastq,
18 | small.RAW, https://github.com/galaxyproteomics/tools-galaxyp/blob/master/tools/msconvert/test-data/small.RAW, CC0
19 |
--------------------------------------------------------------------------------
/entab/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "entab"
3 | version = "0.3.3"
4 | authors = ["Roderick "]
5 | edition = "2018"
6 | description = "Record-format file reader"
7 | readme = "README.md"
8 | repository = "https://github.com/bovee/entab"
9 | license = "MIT"
10 | categories = ["parsing", "science"]
11 |
12 | [dependencies]
13 | # parsing
14 | bytecount = "0.6.8"
15 | chrono = { version = "0.4", default-features=false, features = ["alloc", "serde"] }
16 | encoding = "0.2.33"
17 | memchr = "2.7"
18 | serde = { version = "1.0", default-features=false, features = ["derive"] }
19 | # compression
20 | flate2 = { version = "1.0" }
21 | bzip2 = { version = "0.4", optional = true }
22 | xz2 = { version = "0.1", optional = true }
23 | zstd = { version = "0.13", optional = true }
24 |
25 | [dev-dependencies]
26 | criterion = "0.3"
27 | rayon = "1.5.1"
28 |
29 | [features]
30 | default = ["compression", "std"]
31 | compression = ["bzip2", "xz2", "zstd"]
32 | std = ["bytecount/runtime-dispatch-simd", "chrono/std", "serde/std"]
33 |
34 | [[bench]]
35 | name = "benchmarks"
36 | path = "benches/benchmarks.rs"
37 | harness = false
38 |
--------------------------------------------------------------------------------
/entab/README.md:
--------------------------------------------------------------------------------
1 | # Entab
2 | This is the main file parsing library and includes support for compression/
3 | decompression, file type inference, and parsers for different file types.
4 |
5 | ## Usage
6 |
7 | To parse the IDs out of a FASTA file:
8 | ```rust
9 | //! use std::fs::File;
10 | //! use entab::readers::fasta::{FastaReader, FastaRecord};
11 | //!
12 | //! let file = File::open("./tests/data/sequence.fasta")?;
13 | //! let mut reader = FastaReader::new(file, None)?;
14 | //! while let Some(FastaRecord { id, .. }) = reader.next()? {
15 | //! println!("{}", id);
16 | //! }
17 | ```
18 |
19 | ## Other Parsers
20 | [Aston](https://github.com/bovee/aston) - Python - Agilent Chemstation & Masshunter/Thermo DXF/Inficon/etc
21 | [Chromatography Toolbox](https://github.com/chemplexity/chromatography) - Matlab - Agilent/Thermo/NetCDF/mzXML
22 | [Isoreader](https://github.com/isoverse/isoreader) - R - Isodat
23 | [Unfinnigan](https://github.com/prvst/unfinnigan) - Perl/Python - Thermo RAW
24 | [seqio](https://github.com/markschl/seq_io) - Rust - FASTX
25 |
26 | _Please let me know if there are others that you find useful that should be added to this list._
27 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014- Roderick Bovee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/entab-r/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014- Roderick Bovee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/entab-js/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014- Roderick Bovee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/entab-r/src/Makevars.win:
--------------------------------------------------------------------------------
1 | # TARGET = $(subst 64,x86_64,$(subst 32,i686,$(WIN)))-pc-windows-gnu
2 | TARGET = $(subst 64,x86_64,$(subst 32,i686,$(WIN)))-pc-windows-gnu
3 |
4 | # This is provided in Makevars.ucrt for R >= 4.2
5 | TOOLCHAIN ?= stable-msvc
6 |
7 | TARGET_DIR = ../target
8 | LIBDIR = $(TARGET_DIR)/$(TARGET)/release
9 | STATLIB = libentab.dll.a
10 | PKG_LIBS = -L$(LIBDIR) -lentab -lws2_32 -ladvapi32 -luserenv -lbcrypt
11 | PLATFORM_STATLIB = libentab.dll.a
12 |
13 | all: C_clean
14 |
15 | $(SHLIB): $(STATLIB)
16 |
17 | $(STATLIB):
18 | mkdir -p $(TARGET_DIR)/libgcc_mock
19 | cd $(TARGET_DIR)/libgcc_mock && \
20 | touch gcc_mock.c && \
21 | gcc -c gcc_mock.c -o gcc_mock.o && \
22 | ar -r libgcc_eh.a gcc_mock.o && \
23 | cp libgcc_eh.a libgcc_s.a
24 |
25 | # CARGO_LINKER is provided in Makevars.ucrt for R >= 4.2
26 | export PATH="$(PATH):$(HOME)/.cargo/bin" && \
27 | export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER="$(CARGO_LINKER)" && \
28 | export LIBRARY_PATH="$${LIBRARY_PATH};$(CURDIR)/$(TARGET_DIR)/libgcc_mock" && \
29 | cargo build --target=$(TARGET) --lib --release --manifest-path=../Cargo.toml --target-dir $(TARGET_DIR)
30 | mv ./$(LIBDIR)/entab.dll ./libentab.dll
31 |
32 | C_clean:
33 | rm -Rf $(SHLIB) $(STATLIB) $(OBJECTS) entab/target
34 |
--------------------------------------------------------------------------------
/.github/workflows/website.yml:
--------------------------------------------------------------------------------
1 | name: Build WASM and publish website
2 |
3 | on:
4 | push:
5 | branches: [ main ]
6 | # push:
7 | # tags:
8 | # - v[0-9]+.*
9 |
10 | jobs:
11 | build-wasm-and-publish:
12 | concurrency: ci-${{ github.ref }}
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@v3
16 |
17 | - name: Install rust-toolchain
18 | uses: actions-rs/toolchain@v1
19 | with:
20 | toolchain: stable
21 |
22 | - name: Install wasm-pack
23 | run: |
24 | curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
25 | wasm-pack --version
26 |
27 | - name: Run JS tests
28 | working-directory: ./entab-js
29 | run: wasm-pack test --headless --chrome
30 |
31 | - name: Build the WASM
32 | working-directory: ./entab-js
33 | run: wasm-pack build --target web --out-dir ./example/pkg
34 |
35 | - name: Delete .gitignore so pkg will be pushed too
36 | run: rm .gitignore entab-js/example/pkg/.gitignore
37 |
38 | - name: Publish to Github pages
39 | uses: JamesIves/github-pages-deploy-action@v4.3.3
40 | with:
41 | branch: gh-pages
42 | folder: entab-js/example
43 | single-commit: true
44 |
--------------------------------------------------------------------------------
/entab/tests/data/test.sam:
--------------------------------------------------------------------------------
1 | @SQ SN:gi|9626372|ref|NC_001422.1| LN:5386
2 | @PG ID:minimap2 PN:minimap2 VN:2.17-r941 CL:minimap2 -a -o out ./sequence.fasta ./test.fastq
3 | SRR062634.1 4 * 0 0 * * 0 0 GGGTTTTCCTGAAAAAGGGATTCAAGAAAGAAAACTTACATGAGGTGATTGTTTAATGTTGCTACCAAAGAAGAGAGAGTTACCTGCCCATTCACTCAGG @C'@9:BB:?DCCB5CC?5C=?5@CADC?BDB)B@?-A@=:=:@CC'C>5AA+*+2@@'-?>5-?C=@-??)'>>B?D@?*?A################# rl:i:0
4 | SRR062634.2 4 * 0 0 * * 0 0 ACCGTGAGCAATCAGCTGCCATCAACGTGGAGGTAAGACTCTCCACCTGCAAAAACATTACAACTTGCTGAAGGCTGAGATACTTGTTCGCACATTTTTA FDEFF?DFEFE?BEEEEED=DB:DCEAEEB,CC=@B=5?B?CC5C?B+A??=>:CC<9-B2=@>-?:-*0<:'0%6,>:9&-:>?:>==B?? rl:i:0
5 | SRR062634.3 4 * 0 0 * * 0 0 TAGATATTTTTGTTTTAACTGCTGTAGAAAATTAAGACATAAACTAAGAAATATCCCATGAAGGAATGAGTATACTGTTTCTACTTGCAGAAAAGCTGCG -?3-C22646@-@3@@3-=-====CBB@DB-A-=-AA@C-D=ABDA;?CDDDD5D?DD55:>:AB>5?-CCCC###################### rl:i:0
6 | SRR062634.4 4 * 0 0 * * 0 0 AGATGAGTTTCACAAAGTAAGCAACTTGATATCCAAATAATCAACACCCAACTCAAGAAAAAGATCATTACCAGAAACTAATAAACCAGCACATTAGGTG ??EEEDB?D-?AAA-AA?>->BC:ADB:--A55ACCA:D6C:?5@CADD6=C5:CD?D4;,::?,CC-5A@C-?D5@+-BB?BC*A-A?C:C@####### rl:i:0
7 | SRR062634.5 4 * 0 0 * * 0 0 CTGTATCTAGGTTTTGTCCTTACATGTATATAACCTACACCCACAGTTTACCATCCGTGACATTTTCTTTCCTCTCCAGTCGTACAACAATACCCTGCCA CC?-?BAAB?E:B@@A7A?5CCBBBB@B?ABB?B@BB=B-BB=?######################################################## rl:i:0
8 |
--------------------------------------------------------------------------------
/entab-js/tests/web.rs:
--------------------------------------------------------------------------------
1 | //! Test suite for the Web and headless browsers.
2 |
3 | #![cfg(target_arch = "wasm32")]
4 |
5 | use entab::Reader;
6 | use js_sys::{Map, Object, Reflect};
7 | use wasm_bindgen::{JsCast, JsValue};
8 | use wasm_bindgen_test::*;
9 |
10 | wasm_bindgen_test_configure!(run_in_browser);
11 |
12 | #[wasm_bindgen_test]
13 | fn create_reader() {
14 | // doesn't work for obvious reasons, but it'd be nice to test against a Uint8Array
15 | // let data = Uint8Array::new(&JsValue::from_str(">test\nACGT"));
16 | let data = b">test\nACGT";
17 | let mut reader =
18 | Reader::new(data.to_vec().into_boxed_slice(), None).expect("Error creating the reader");
19 | assert_eq!(reader.parser(), "fasta");
20 | let raw_rec = reader.next().expect("Error reading first record");
21 | let rec = raw_rec
22 | .dyn_into::