Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: module 'plantcv.plantcv' has no attribute 'fluor_fvfm' #7

Open
cstephens0991 opened this issue Jan 9, 2023 · 1 comment

Comments

@cstephens0991
Copy link

Hi, I am very interested in adapting your ImagingPAMProcess scripts to process our PAM images. I have downloaded your repository and am trying to run the script on some TIFF images we have generated from ImagingWin software. Unfortunately, I have hit the following error, which I am not certain of a way around:

AttributeError Traceback (most recent call last)
File ~\Documents\Chris\Experiments\WP1-001_Arabidopsis_screen\PAM\ImagingWin_automation\ImagingPAMProcessing-master\scripts\ProcessImages.py:390
387 grplist = []
388 for grp, grpdf in dfgrps:
389 # print(grp)#'%s ---' % (grp))
--> 390 grplist.append(image_avg(grpdf))
391 df_avg = pd.concat(grplist)
394 # %% Add genotype information to the processing results

File ~\Documents\Chris\Experiments\WP1-001_Arabidopsis_screen\PAM\ImagingWin_automation\ImagingPAMProcessing-master\scripts\ProcessImages.py:169, in image_avg(fundf)
166 newmask = np.zeros_like(mask)
168 # compute fv/fm and save to file
--> 169 Fv, hist_fvfm = pcv.fluor_fvfm(
170 fdark=fdark, fmin=imgmin, fmax=img, mask=mask, bins=128)
171 YII = np.divide(Fv, img, out=out_flt.copy(),
172 where=np.logical_and(mask > 0, img > 0))
173 cv2.imwrite(os.path.join(fmaxdir, outfn + '_fvfm.tif'), YII)

AttributeError: module 'plantcv.plantcv' has no attribute 'fluor_fvfm'

It appears that one of the internal functions, "image_avg()" is utilising a function sourced from the plantcv package which is not recognised. I did identify the quoted package "fluor_fvfm" in the plantcv documentation (https://plantcv.readthedocs.io/en/v3.7/fluor_fvfm/), but it does not appear to feature in more recent iterations of plantcv.

I have contacted plantcv directly to ask if this function is deprecated, and if there is a replacement function. But in any case, should this be an issue for other users of your package then I thought you should be aware. Thank you very much for your help! I sincerely apologise if this is a simple error on my part - I am somewhat new to coding.

For other information, I am running in Windows 10 and using a conda environment based on the .yml file "environment_current.yml". My Python version (within the "environment_current" environment) is 3.10.8. I have also tried generating an environment using the "environment_manuscript.yml" file - which utilises an older version of plantcv, but I run into the following conflicts:

conda env create -f environment_manuscript.yml
Collecting package metadata (repodata.json): done
Solving environment: |
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
Solving environment: \
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package python_abi conflicts for:
jupyter -> python_abi[version='3.10.|3.8.|3.9.|3.11.|3.7.|3.6.',build='_cp36m|_cp39|_cp310|_cp38|_cp311|_cp37m']
jupyter -> python[version='>=3.8,<3.9.0a0'] -> python_abi[version='3.7|3.8|3.9',build='_pypy37_pp73|_pypy39_pp73|*_pypy38_pp73']

Package openssl conflicts for:
jupyter -> python[version='>=3.8,<3.9.0a0'] -> openssl[version='>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1e,<1.1.2a|>=1.1.1f,<1.1.2a|>=1.1.1g,<1.1.2a|>=1.1.1h,<1.1.2a|>=1.1.1i,<1.1.2a|>=1.1.1j,<1.1.2a|>=1.1.1k,<1.1.2a|>=1.1.1l,<1.1.2a|>=1.1.1n,<1.1.2a|>=1.1.1s,<1.1.2a|>=3.0.7,<4.0a0|>=3.0.2,<4.0a0|>=3.0.0,<4.0a0|>=1.1.1q,<1.1.2a|>=3.0.5,<4.0a0|>=3.0.3,<4.0a0|>=1.1.1o,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a']
plantcv=3.6 -> python -> openssl[version='>=1.1.1a,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1e,<1.1.2a|>=1.1.1f,<1.1.2a|>=1.1.1g,<1.1.2a|>=1.1.1h,<1.1.2a|>=1.1.1i,<1.1.2a|>=1.1.1j,<1.1.2a|>=1.1.1k,<1.1.2a|>=1.1.1l,<1.1.2a|>=1.1.1n,<1.1.2a|>=1.1.1o,<1.1.2a|>=1.1.1q,<1.1.2a|>=3.0.5,<4.0a0|>=1.1.1s,<1.1.2a|>=3.0.7,<4.0a0|>=3.0.3,<4.0a0|>=3.0.2,<4.0a0|>=3.0.0,<4.0a0|>=1.1.1c,<1.1.2a|>=1.1.1b,<1.1.2a']

Package python conflicts for:
jupyter -> ipykernel -> python[version='3.10.|3.4.|>=3.7|>=3.8|>=3.3|>=3.6|>=3.5|3.8.|3.9.|3.11.|3.7.']
jupyter -> python[version='2.7.|3.5.|3.6.*|>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|>=3.11,<3.12.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|>=2.7,<2.8.0a0']The following specifications were found to be incompatible with your system:

  • feature:/win-64::__win==0=0
  • jupyter -> ipykernel -> __osx
  • jupyter -> ipykernel -> __win

Your installed version is: not available

Note that strict channel priority may have removed packages required for satisfiability.

I am sorry if there is redundant information here, I just wanted to make sure was thorough.

Thanks again for your help - I really appreciate it!

@dschneiderch
Copy link
Collaborator

Try adding python==3.7 to the manuscript.yml file.

I think there were some updates to plantcv that won't be compatible but if you can install an older version than it should work. I don't work with this anymore so I don't plan to update it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants