bittremieux / falcon

Large-scale tandem mass spectrum clustering using fast nearest neighbor searching.
BSD 3-Clause "New" or "Revised" License
24 stars 7 forks source link

Several issues encountered at the execution #24

Closed Eli-Rousseau closed 6 months ago

Eli-Rousseau commented 6 months ago

Dear bittremieux,

I just tried the falcon program for the first time (at least with python3 falcon.py --help), and it seems that python experiences some errors during execution.

A first error was related to the absence of a so-called __version__ script. This caused an import error message from python as follows:

Traceback (most recent call last):
  File "/home/eli_rousseau/.local/lib/python3.10/site-packages/falcon/falcon.py", line 21, in <module>
    from . import __version__
ImportError: attempted relative import with no known parent package

When I then edited the source code of both config.py and falcon.py to take out the lines causing the error messages, I got another error message. This time because the config module would be missing the parse attribute, as follows:

Traceback (most recent call last):
  File "c:\Users\rouss\AppData\Local\Programs\Python\Python311\Lib\site-packages\falcon\falcon.py", line 439, in <module>
    sys.exit(main())
             ^^^^^^
  File "c:\Users\rouss\AppData\Local\Programs\Python\Python311\Lib\site-packages\falcon\falcon.py", line 47, in main
    config.parse(args)
    ^^^^^^^^^^^^
AttributeError: module 'config' has no attribute 'parse'

So that's where I'm stuck for now. I have the impression that a lot of errors occur during configuration. Maybe you have an idea what it could be due to. I installed the program with the pip package manager as described. I tried the program both on Linux Command-Line and Windows PowerShell.

Thanks in advance for your support.

Eli Rousseau.

Janne98 commented 6 months ago

Hi! Can you please try falcon --help as described in the instructions instead of running falcon from your installation directory? Let me know if you still encounter any issues :)

Eli-Rousseau commented 6 months ago

I will just list below the exact command and output provided on my PowerShell console (Bash command-line gives the exact same result).

PS C:\Users\rouss> & "C:/Users/rouss/AppData/Local/Programs/Python/Python311/python.exe" "C:\Users\rouss\AppData\Local\Programs\Python\Python311\Lib\site-packages\falcon\falcon.py" --help
Traceback (most recent call last):
  File "C:\Users\rouss\AppData\Local\Programs\Python\Python311\Lib\site-packages\falcon\falcon.py", line 21, in <module>
    from . import __version__
ImportError: attempted relative import with no known parent package

I can confirm you the absence of the so-called __version__ script in the directory.

The only thing I did before that was installing falcon-ms as follows:

PS C:\Users\rouss> pip install falcon-ms spectrum-utils==0.3.5
Collecting falcon-ms
  Downloading falcon_ms-0.1.3-py3-none-any.whl (27 kB)
Requirement already satisfied: spectrum-utils==0.3.5 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (0.3.5)
Requirement already satisfied: matplotlib in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from spectrum-utils==0.3.5) (3.8.2)
Requirement already satisfied: numba>=0.47 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from spectrum-utils==0.3.5) (0.59.0)
Requirement already satisfied: numpy in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from spectrum-utils==0.3.5) (1.26.2)
Requirement already satisfied: pyteomics in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from spectrum-utils==0.3.5) (4.7)
Requirement already satisfied: configargparse>=1.4 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.7)
Requirement already satisfied: faiss-cpu>=1.6.5 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.7.4)
Requirement already satisfied: fastcluster>=1.1.26 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.2.6)
Requirement already satisfied: joblib>=1.0.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.3.2)
Requirement already satisfied: lxml>=4.6.2 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (5.1.0)
Requirement already satisfied: natsort>=7.1.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (8.4.0)
Requirement already satisfied: pandas>=1.2.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (2.2.0)
Requirement already satisfied: pyarrow>=2.0.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (15.0.0)
Requirement already satisfied: scikit-learn>=0.24.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.4.0)
Requirement already satisfied: scipy>=1.5.3 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (1.11.4)
Requirement already satisfied: tqdm>=4.55.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from falcon-ms) (4.66.1)
Requirement already satisfied: llvmlite<0.43,>=0.42.0dev0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from numba>=0.47->spectrum-utils==0.3.5) (0.42.0)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from pandas>=1.2.0->falcon-ms) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from pandas>=1.2.0->falcon-ms) (2024.1)
Requirement already satisfied: tzdata>=2022.7 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from pandas>=1.2.0->falcon-ms) (2023.4)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from scikit-learn>=0.24.0->falcon-ms) (3.2.0)
Requirement already satisfied: colorama in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from tqdm>=4.55.0->falcon-ms) (0.4.6)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (1.2.0)
Requirement already satisfied: cycler>=0.10 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (4.46.0)
Requirement already satisfied: kiwisolver>=1.3.1 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (1.4.5)
Requirement already satisfied: packaging>=20.0 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (23.2)
Requirement already satisfied: pillow>=8 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (10.1.0)
Requirement already satisfied: pyparsing>=2.3.1 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from matplotlib->spectrum-utils==0.3.5) (3.1.1)
Requirement already satisfied: six>=1.5 in c:\users\rouss\appdata\local\programs\python\python311\lib\site-packages (from python-dateutil>=2.8.2->pandas>=1.2.0->falcon-ms) (1.16.0)
Installing collected packages: falcon-ms
Successfully installed falcon-ms-0.1.3
Janne98 commented 6 months ago

Hi, It seems like you are on Windows, which is currently not supported. Also, you are not supposed to execute the .py file. You should be able to call falcon from your home directory. Can you please try executing the following commands (copy-paste into your Linux terminal separately)?

cd ~
falcon --help

Let me know if you still encounter any issues.

Eli-Rousseau commented 6 months ago

Great, thank you for your guidance. The falcon --help looks to be working normally from a Bash Shell.

There is however a new problem I stumbled on when executing my clustering job. I will list you below the output that is displayed on my command-line console.

eli_rousseau@Elilaptop:~$ falcon Windows_Subsystem_for_Linux/Master\ thesis/falcon/pool_feature_spectra_revised.mgf falc
on --export_representatives --precursor_tol 10 ppm --fragment_tol 0.05 --eps 0.15
2024-02-13 00:40:24,092 INFO [falcon/MainProcess] falcon.main : falcon version 0.1.3
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : work_dir = None
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : overwrite = False
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : export_representatives = True
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : usi_pxd = USI000000
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : precursor_tol = 10.00 ppm
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : rt_tol = None
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : fragment_tol = 0.05
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : eps = 0.150
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : min_samples = 2
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : mz_interval = 1
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : hash_len = 800
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : n_neighbors = 64
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : n_neighbors_ann = 128
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : batch_size = 65536
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : n_probe = 32
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : min_peaks = 5
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : min_mz_range = 250.00
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : min_mz = 101.00
2024-02-13 00:40:24,093 DEBUG [falcon/MainProcess] falcon.main : max_mz = 1500.00
2024-02-13 00:40:24,094 DEBUG [falcon/MainProcess] falcon.main : remove_precursor_tol = 1.50
2024-02-13 00:40:24,094 DEBUG [falcon/MainProcess] falcon.main : min_intensity = 0.01
2024-02-13 00:40:24,094 DEBUG [falcon/MainProcess] falcon.main : max_peaks_used = 50
2024-02-13 00:40:24,094 DEBUG [falcon/MainProcess] falcon.main : scaling = off
2024-02-13 00:40:24,094 INFO [falcon/MainProcess] falcon._prepare_spectra : Read spectra from 1 peak file(s)
2024-02-13 00:40:42,092 DEBUG [falcon/MainProcess] falcon._prepare_spectra : 8801 spectra written to 1012 buckets by precursor charge and precursor m/z
2024-02-13 00:40:42,168 INFO [falcon/MainProcess] falcon.main : Cluster 8801 spectra with precursor charge -1
2024-02-13 00:40:42,168 DEBUG [falcon/MainProcess] cluster.compute_pairwise_distances : Compute nearest neighbor pairwise distances (8801 spectra, 64 neighbors)
Buckets queried: 100%|██████████████████████████████████████████████████████████| 1012/1012 [00:33<00:00, 29.93bucket/s]
2024-02-13 00:41:15,982 DEBUG [falcon/MainProcess] cluster.compute_pairwise_distances : Construct 5375-by-5375 sparse pairwise distance matrix with 17577 non-zero values
2024-02-13 00:41:15,984 DEBUG [falcon/MainProcess] falcon.main : Export pairwise distance matrix to file /tmp/tmpekjxzhyk/nn/dist_-1.npz
2024-02-13 00:41:16,022 DEBUG [falcon/MainProcess] cluster.generate_clusters : DBSCAN clustering (eps=0.1500, min_samples=2) of precomputed pairwise distance matrix
2024-02-13 00:41:16,029 WARNING [py.warnings/MainProcess] warnings._showwarnmsg : /home/eli_rousseau/.local/lib/python3.10/site-packages/falcon/cluster/cluster.py:509: FutureWarning: In the future `np.object` will be defined as the corresponding NumPy scalar.
  neighborhoods_arr = np.empty(len(neighborhoods), dtype=np.object)

Traceback (most recent call last):
  File "/home/eli_rousseau/.local/bin/falcon", line 8, in <module>
    sys.exit(main())
  File "/home/eli_rousseau/.local/lib/python3.10/site-packages/falcon/falcon.py", line 181, in main
    clusters = cluster.generate_clusters(
  File "/home/eli_rousseau/.local/lib/python3.10/site-packages/falcon/cluster/cluster.py", line 509, in generate_clusters
    neighborhoods_arr = np.empty(len(neighborhoods), dtype=np.object)
  File "/home/eli_rousseau/.local/lib/python3.10/site-packages/numpy/__init__.py", line 324, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'object'.
`np.object` was a deprecated alias for the builtin `object`. To avoid this error in existing code, use `object` by itself. Doing this will not modify any behavior and is safe.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'object_'?

Any idea to what would have caused this error message?

Janne98 commented 6 months ago

Yes, this is a known issue. Please see here to fix it or downgrade numpy to version 1.23.5 as follows: pip install numpy==1.23.5

Eli-Rousseau commented 6 months ago

Great, your last recommendation worked. I was able to complete the job successfully. I am very grateful to you. I will also close the issue as it is now resolved.