popgenmethods / smcpp

SMC++ infers population history from whole-genome sequence data.
GNU General Public License v3.0
149 stars 34 forks source link

Feature request: Add support for Linux ARM64 #218

Closed julien-faye closed 2 years ago

julien-faye commented 2 years ago

Hello,

I'd like to request adding support for Linux/Mac ARM64.

At the moment:

Thank you in advance for considering it!

markjens commented 2 years ago

+1 for supporting Linux ARM64!

terhorst commented 2 years ago

Thanks for the comments. At this time, I don't have access to such a system. I will provide builds for them in the future if I have the opportunity. Closing for now...

martin-g commented 2 years ago

@terhorst Huawei Cloud is willing to donate an ARM64 VM that you could use long term for development needs! Please let me know if you are interested!

martin-g commented 2 years ago

For the record: building the Python wheel works just fine on Linux ARM64 (prereq is Python 3.8+).

$ pip3 install git+https://github.com/popgenmethods/smcpp
Collecting git+https://github.com/popgenmethods/smcpp
  Cloning https://github.com/popgenmethods/smcpp to /tmp/pip-req-build-wju0f97_
  Running command git clone -q https://github.com/popgenmethods/smcpp /tmp/pip-req-build-wju0f97_
  Installing build dependencies ... /^done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: scipy>=1.8 in /home/ubuntu/.local/lib/python3.8/site-packages (from smcpp==1.15.5.dev2+gfdde7c3) (1.8.1)
Collecting tqdm
  Downloading tqdm-4.64.0-py2.py3-none-any.whl (78 kB)
     |████████████████████████████████| 78 kB 8.1 MB/s 
Collecting pysam>=0.18
  Downloading pysam-0.19.1.tar.gz (3.9 MB)
     |████████████████████████████████| 3.9 MB 4.6 MB/s 
Requirement already satisfied: pandas>=1.4 in /home/ubuntu/.local/lib/python3.8/site-packages (from smcpp==1.15.5.dev2+gfdde7c3) (1.4.2)
Requirement already satisfied: matplotlib>=3 in /home/ubuntu/.local/lib/python3.8/site-packages (from smcpp==1.15.5.dev2+gfdde7c3) (3.5.2)
Requirement already satisfied: numpy>=1.18 in /home/ubuntu/.local/lib/python3.8/site-packages (from smcpp==1.15.5.dev2+gfdde7c3) (1.22.4)
Collecting appdirs
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: scikit-learn>=1 in /home/ubuntu/.local/lib/python3.8/site-packages (from smcpp==1.15.5.dev2+gfdde7c3) (1.1.1)
Requirement already satisfied: pytz>=2020.1 in /home/ubuntu/.local/lib/python3.8/site-packages (from pandas>=1.4->smcpp==1.15.5.dev2+gfdde7c3) (2022.1)
Requirement already satisfied: python-dateutil>=2.8.1 in /home/ubuntu/.local/lib/python3.8/site-packages (from pandas>=1.4->smcpp==1.15.5.dev2+gfdde7c3) (2.8.2)
Requirement already satisfied: pillow>=6.2.0 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (9.1.1)
Requirement already satisfied: packaging>=20.0 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (21.3)
Requirement already satisfied: cycler>=0.10 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (0.11.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (1.4.2)
Requirement already satisfied: fonttools>=4.22.0 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (4.33.3)
Requirement already satisfied: pyparsing>=2.2.1 in /home/ubuntu/.local/lib/python3.8/site-packages (from matplotlib>=3->smcpp==1.15.5.dev2+gfdde7c3) (3.0.9)
Requirement already satisfied: threadpoolctl>=2.0.0 in /home/ubuntu/.local/lib/python3.8/site-packages (from scikit-learn>=1->smcpp==1.15.5.dev2+gfdde7c3) (3.1.0)
Requirement already satisfied: joblib>=1.0.0 in /home/ubuntu/.local/lib/python3.8/site-packages (from scikit-learn>=1->smcpp==1.15.5.dev2+gfdde7c3) (1.1.0)
Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.1->pandas>=1.4->smcpp==1.15.5.dev2+gfdde7c3) (1.14.0)
Building wheels for collected packages: smcpp, pysam
  Building wheel for smcpp (PEP 517) ... done
  Created wheel for smcpp: filename=smcpp-1.15.5.dev2+gfdde7c3-cp38-cp38-linux_aarch64.whl size=30176859 sha256=e767d114c49758c73c3be4782c6510de16e2e8642c3e8aee22429ac44c251f5e
  Stored in directory: /tmp/pip-ephem-wheel-cache-tgxzgxgb/wheels/89/03/35/fd95f3469d03bbaf6446f368f8b2c163da4844de9661547b20
  Building wheel for pysam (setup.py) ... done
  Created wheel for pysam: filename=pysam-0.19.1-cp38-cp38-linux_aarch64.whl size=13683200 sha256=9531bd04a7e938e5e53224578198e31fd7a9f34d8e62990ba23547f1375a4d91
  Stored in directory: /home/ubuntu/.cache/pip/wheels/78/d9/98/da2c7de484c0c4992a625d27d8a81ddb7ca48c0ff5018818d2
Successfully built smcpp pysam
Installing collected packages: tqdm, pysam, appdirs, smcpp
Successfully installed appdirs-1.4.4 pysam-0.19.1 smcpp-1.15.5.dev2+gfdde7c3 tqdm-4.64.0