Roth-Lab / pyclone-vi

Fast method for inferring cancer clonal population structure from SNV data.
GNU General Public License v3.0
50 stars 11 forks source link

installation issue #15

Open Subhayan18 opened 3 years ago

Subhayan18 commented 3 years ago

Hi,

new to python, so I'm probably doing something stupid. I have installed pyclone-vi and $pyclone-vi --help is responsive.

(pyclone-vi) D:\pyclone-vi>pyclone-vi --help
Usage: pyclone-vi [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  fit                 Fit PyClone-VI model to data.
  write-results-file  Write the results of a fitted model to file. 

But $pyclone-vi fit is throwing an error that I can't figure out.

(pyclone-vi) D:\pyclone-vi>pyclone-vi fit -i examples/tracerx.tsv -o tracerx.h5 -c 40 -d beta-binomial -r 10

Traceback (most recent call last):
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\Scripts\pyclone-vi-script.py", line 33, in <module>
    sys.exit(load_entry_point('pyclone-vi==0.1.1', 'console_scripts', 'pyclone-vi')())
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 782, in main
    rv = self.invoke(ctx)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\cli.py", line 113, in fit
    pyclone_vi.run.fit(**kwargs)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\run.py", line 29, in fit
    log_p_data, mutations, samples = load_data(in_file, density, num_grid_points, precision=precision)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 11, in load_data
    data, mutations, samples = load_pyclone_data(file_name)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 86, in load_pyclone_data
    SampleDataPoint(a, b, cn, mu, log_pi, row['tumour_content'])
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\numba\experimental\jitclass\base.py", line 122, in __call__
    return cls._ctor(*bind.args[1:], **bind.kwargs)
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\numba\core\dispatcher.py", line 420, in _compile_for_args
    error_rewrite(e, 'typing')
  File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\numba\core\dispatcher.py", line 361, in error_rewrite
    raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Internal error at <numba.core.typeinfer.CallConstraint object at 0x000001DEBEAF65E0>.
Failed in nopython mode pipeline (step: nopython mode backend)
Can only insert i64* at [4] in {i8*, i8*, i64, i64, i64*, [2 x i64], [2 x i64]}: got i32*

File "C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 184:
    def __init__(self, a, b, cn, mu, log_pi, t):
        <source elided>
        self.b = b
        self.cn = cn
        ^

During: lowering "(self).cn = cn" at C:\Users\Subhayan\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py (184)
During: resolving callee type: jitclass.SampleDataPoint#1debdcb0370<a:int64,b:int64,cn:array(int64, 2d, A),mu:array(float64, 2d, A),log_pi:array(float64, 1d, A),t:float64>
During: typing of call at <string> (3)

Enable logging at debug level for details.

File "<string>", line 3:
<source missing, REPL/exec in use?>

Sorry I had to include the whole traceback as I don't understand what is going on in there. Does it show an issue?

Thx! /Subhayan

aroth85 commented 3 years ago

Can you post the output of conda list from inside the environment. Best guess is the numba package needs an update, but not certain.

Subhayan18 commented 3 years ago

the numba version is 0.46.0

# Name                    Version                   Build  Channel
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.1                      py_0    conda-forge
backports_abc             0.5                        py_1    conda-forge
blas                      1.0                         mkl
certifi                   2019.11.28       py27h8c360ce_1    conda-forge
cycler                    0.10.0                     py_2    conda-forge
enum34                    1.1.10           py27h8c360ce_1    conda-forge
freetype                  2.10.1               h4d385ea_0    conda-forge
funcsigs                  1.0.2                      py_3    conda-forge
functools32               3.2.3.2                    py_3    conda-forge
futures                   3.3.0            py27h8c360ce_1    conda-forge
icc_rt                    2019.0.0             h0cc432a_1
intel-openmp              2021.2.0           h57928b3_616    conda-forge
kiwisolver                1.1.0            py27h6c69bd3_1    conda-forge
libblas                   3.9.0                     8_mkl    conda-forge
libcblas                  3.9.0                     8_mkl    conda-forge
liblapack                 3.9.0                     8_mkl    conda-forge
libpng                    1.6.37               h7a46e7a_0    conda-forge
llvmlite                  0.30.0           py27hc56fc5f_0
matplotlib-base           2.2.5            py27h6595424_1    conda-forge
mkl                       2020.4             hb70f87d_311    conda-forge
numba                     0.46.0           py27h0e003f4_1    conda-forge
numpy                     1.16.5           py27h0d21db5_0    conda-forge
pandas                    0.24.2           py27h0e003f4_0    conda-forge
patsy                     0.5.1                      py_0    conda-forge
pip                       20.1.1             pyh9f0ad1d_0    conda-forge
pyclone                   0.13.1                     py_0    bioconda
pydp                      0.2.4                      py_0    bioconda
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
python                    2.7.15          h2880e7c_1011_cpython    conda-forge
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                2.7                     1_cp27m    conda-forge
pytz                      2020.1             pyh9f0ad1d_0    conda-forge
pyyaml                    5.3.1            py27h462b5f4_0    conda-forge
scipy                     1.2.1            py27h4c3ab11_0
seaborn                   0.9.0                      py_2    conda-forge
setuptools                44.0.0                   py27_0    conda-forge
singledispatch            3.6.1              pyh44b312d_0    conda-forge
six                       1.15.0             pyh9f0ad1d_0    conda-forge
statsmodels               0.10.2           py27h83e69c8_0    conda-forge
tornado                   5.1.1           py27h0c8e037_1000    conda-forge
vc                        9                    h7299396_1
vs2008_runtime            9.0.30729.6161                0    conda-forge
vs2015_runtime            14.28.29325          h5e1d092_4    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
wincertstore              0.2                   py27_1003    conda-forge
yaml                      0.2.2                h0c8e037_1    conda-forge
zlib                      1.2.11            h3cc03e0_1006    conda-forge

p.s. I was able to execute original PyClone without a hitch with these libraries. Thanks a lot for trying to help.

aroth85 commented 3 years ago

I see. PyClone and PyClone-VI need different dependencies. The latter has been fully updated to Python 3. Could you create a new conda environment following the instructions on the main page and see if that helps

sarahVanAlsten commented 2 years ago

I seem to be having the same issue as the user above:

(pyclone-vi) C:\Users\Owner\Documents\UNC\Research\pyclone>pyclone-vi fit -i examples\tracerx.tsv -o tracerx.h5 -c 40 -d beta-binomial -r 10

Traceback (most recent call last):
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\Scripts\pyclone-vi.exe\__main__.py", line 7, in <module>
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\cli.py", line 113, in fit
    pyclone_vi.run.fit(**kwargs)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\run.py", line 29, in fit
    log_p_data, mutations, samples = load_data(in_file, density, num_grid_points, precision=precision)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 11, in load_data
    data, mutations, samples = load_pyclone_data(file_name)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 86, in load_pyclone_data
    SampleDataPoint(a, b, cn, mu, log_pi, row['tumour_content'])
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\numba\experimental\jitclass\base.py", line 124, in __call__
    return cls._ctor(*bind.args[1:], **bind.kwargs)
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\numba\core\dispatcher.py", line 468, in _compile_for_args
    error_rewrite(e, 'typing')
  File "C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\numba\core\dispatcher.py", line 409, in error_rewrite
    raise e.with_traceback(None)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Internal error at <numba.core.typeinfer.CallConstraint object at 0x0000028DF003ADA0>.
←[1m←[1mFailed in nopython mode pipeline (step: native lowering)
←[1m←[1mCan only insert i64* at [4] in {i8*, i8*, i64, i64, i64*, [2 x i64], [2 x i64]}: got i32*
←[1m
File "..\..\..\..\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py", line 184:←[0m
←[1m    def __init__(self, a, b, cn, mu, log_pi, t):
        <source elided>
        self.b = b
←[1m        self.cn = cn
←[0m        ←[1m^←[0m←[0m
←[0m
←[0m←[1mDuring: lowering "(self).cn = cn" at C:\Users\Owner\miniconda3\envs\pyclone-vi\lib\site-packages\pyclone_vi\data.py (184)←[0m
←[0m←[1mDuring: resolving callee type: jitclass.SampleDataPoint#28dedc34be0<a:int64,b:int64,cn:array(int64, 2d, A),mu:array(float64, 2d, A),log_pi:array(float64, 1d, A),t:float64>←[0m
←[0m←[1mDuring: typing of call at <string> (3)
←[0m
Enable logging at debug level for details.
←[1m
File "<string>", line 3:←[0m
←[1m<source missing, REPL/exec in use?>←[0m]

Looking at the conda list command, as far as I can tell my Python and dependencies are up to date, so I'm not sure

(pyclone-vi) C:\Users\Owner\Documents\UNC\Research\pyclone>conda list
# packages in environment at C:\Users\Owner\miniconda3\envs\pyclone-vi:
#
# Name                    Version                   Build  Channel
bzip2                     1.0.8                h8ffe710_4    conda-forge
ca-certificates           2022.9.24            h5b45459_0    conda-forge
cached-property           1.5.2                hd8ed1ab_1    conda-forge
cached_property           1.5.2              pyha770c72_1    conda-forge
click                     8.1.3           py310h5588dad_0    conda-forge
colorama                  0.4.5              pyhd8ed1ab_0    conda-forge
h5py                      3.7.0           nompi_py310h425bae0_101    conda-forge
hdf5                      1.12.2          nompi_h57737ce_100    conda-forge
intel-openmp              2022.1.0          h57928b3_3787    conda-forge
krb5                      1.19.3               hc8ab02b_0    conda-forge
libblas                   3.9.0              16_win64_mkl    conda-forge
libcblas                  3.9.0              16_win64_mkl    conda-forge
libcurl                   7.83.1               h789b8ee_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
liblapack                 3.9.0              16_win64_mkl    conda-forge
libsqlite                 3.39.3               hcfcfb64_0    conda-forge
libssh2                   1.10.0               h9a1e1f7_3    conda-forge
libzlib                   1.2.12               hcfcfb64_3    conda-forge
llvmlite                  0.39.1          py310hb84602e_0    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
mkl                       2022.1.0           h6a75c08_874    conda-forge
msys2-conda-epoch         20160418                      1    conda-forge
numba                     0.56.2          py310h19bcfe9_0    conda-forge
numpy                     1.23.3          py310h4a8f9c9_0    conda-forge
openssl                   3.0.5                hcfcfb64_2    conda-forge
pandas                    1.5.0           py310h1c4a608_0    conda-forge
pip                       22.2.2             pyhd8ed1ab_0    conda-forge
pyclone-vi                0.1.1                    pypi_0    pypi
python                    3.10.6          hcf16a7b_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytz                      2022.2.1           pyhd8ed1ab_0    conda-forge
scipy                     1.9.1           py310h578b7cb_0    conda-forge
setuptools                65.4.0             pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
tbb                       2021.6.0             h91493d7_0    conda-forge
tk                        8.6.12               h8ffe710_0    conda-forge
tzdata                    2022d                h191b570_0    conda-forge
ucrt                      10.0.20348.0         h57928b3_0    conda-forge
vc                        14.2                 hb210afc_7    conda-forge
vs2015_runtime            14.29.30139          h890b9b1_7    conda-forge
wheel                     0.37.1             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge

My best guess is somehow an incompatible type is trying to be entered into the array, but I'm not sure of next steps to work around it.

Thanks so much!