pymzml / pymzML

pymzML - an interface between Python and mzML Mass spectrometry Files
https://pymzml.readthedocs.io/en/latest/
MIT License
163 stars 92 forks source link

Question about v2 release #80

Closed benbowen closed 6 years ago

benbowen commented 6 years ago

I'm concerned about the v2 release mentioned a few hours ago and was wondering if people could take a look at my questions below. I want to gauge whether to fork an older pymzml branch and maintain it or change with the times and use the newer release.

I can't find specific docs for how to change controlled vocabulary in the new version and the release comment sounds like it breaks my code.

The comment in the release notes mentions not continuing to use the identifiers defined here in the HUPO controlled vocabulary.

Another thing I noticed while looking around for docs is that the README now says not supporting Python 2.7 backwards compatibility. I've been using pymzml in Python 2.7 for years with no problems. Is v2 certain to not be backwards compatible?

My code that uses pymzml is here and each spectrum is parsed with the HUPO controlled vocabulary here.

Likely most other pymzml users will have similar questions as me so perhaps this can double as a thread for helping for people upgrade or choosing to freeze at older version.

fu commented 6 years ago

Hi Ben,

I must have not realized that the lead developer @MKoesters had in the meantime create as much backwards compatibility as possible šŸ‘ I had no time to check your code with the new version of pymzml but why not give it a try ?

Hope that helps, my release note was maybe not too appropriate :/

benbowen commented 6 years ago

Thanks Christian, I hit the panic button when I read the release message and should have tried the new version first. Will try tomorrow and report.

On Jan 7, 2018 4:37 AM, "Christian Fufezan" notifications@github.com wrote:

Hi Ben,

I must have not realized that the lead developer Manuel had in the meantime create as much backwards compatibility as possible šŸ‘ I had no time to check your code with the new version of pymzml but why not give it a try ?

Hope that helps, my release note was maybe not too appropriate :/

ā€” You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/pymzml/pymzML/issues/80#issuecomment-355820074, or mute the thread https://github.com/notifications/unsubscribe-auth/AAxfyfAASO5AA6qhizV10KPzwcqBS4S-ks5tILqNgaJpZM4RVUQK .

benbowen commented 6 years ago

Seems the README is correct that python2 doesn't work with v2 of pymzml (according to the installation traceback).

> pip install pymzml
Collecting pymzml
  Downloading pymzml-2.0.0.zip (19.3MB)
    100% |ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ| 19.3MB 37kB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/z3/4dckg1_s68n6dhdlnsggxs6w0000gn/T/pip-build-637adq/pymzml/setup.py", line 96, in <module>
        from pymzml.version import pymzml_version
      File "pymzml/__init__.py", line 24, in <module>
        raise RuntimeError('pymzML requires Python 3.4 or later.')
    RuntimeError: pymzML requires Python 3.4 or later.

It seems like I'll need to stick with 0.7.8 for a while. My install pipeline uses conda for install and I'll lock in the version. Currently I have:

[bpb@cori03 ~ 02:18 PM] /global/common/software/m2650/python-cori/bin > ./conda list | grep pymzml
pymzml                    0.7.8                    py27_0    bioconda

Changed my install script like this for those interested.

fu commented 6 years ago

That's a pitty :/ We will support python 0.7.8 in a separate branch and push it to pypi so your code should still work with the right requirements. If you have any request or even code for us to merge, please let us know!

Cheers

.c

benbowen commented 6 years ago

Thanks Christian, As long as mzml files are stable, pymzml=0.7.8 will be stable for me. In our metabolomics workflow we use mzml as a passthrough from vendor format to a custom, simplified hdf5 files. The pymzml.run.Reader serves our needs well.

We also store a little bit of scan description in mzml files (due to laziness with modifying our data model, API, and inherent inconstancies in the various vendor's adoption of standards).