The installation instructions provided do not work with RHEL/CentOS 7.9. We were able to install the dependancies by altering the instructions.
Environment
# OS
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# KERNEL
$ uname -a
Linux n521 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# PYTHON
$ yum list installed|grep python3
python3.x86_64 3.6.8-18.el7 @updates
python3-libs.x86_64 3.6.8-18.el7 @updates
python3-pip.noarch 9.0.3-8.el7 @base
python3-setuptools.noarch 39.2.0-10.el7 @base
SMuRF Installation
$ git clone https://github.com/ToolsVanBox/SMuRF.git
$ cd SMuRF
$ virtualenv venv_3.6 -p /usr/bin/python3.6
$ . venv_3.6/bin/activate
Downgrade setuptools (2to3 support)
The setuptools package 58.0.0 removed support for 2to3 during builds. PyVCF 0.6.8 requires 2to3 support to build from source, and there is no prebuilt PyVCF 0.6.8 for Python 3.6.
$ pip3 install "setuptools<58.0"
Install PyVCF from source
There are compatibility issues with all other options we tried, like using PyVCF.
$ pip3 install requirements/PyVCF-0.6.8.tar.gz
Modify requirements.txt
We tried to build the specified version of all package requirements we could not install following SMuRF installation procedure. We could not, details below.
$ cp -p requirements.txt requirements.txt.original
$ cat <>requirements.txt
cycler==0.10.0
#joblib==1.2.0 # Require Python >= 3.7, https://pypi.org/project/joblib
joblib==1.1.1
kiwisolver==1.1.0
matplotlib==3.1.1
#numpy==1.22.0 # Require Python >= 3.8, https://numpy.org/devdocs/release/1.22.0-notes.html
numpy==1.19.5 # Latest Prebuilt available for Python 3.6
pandas==0.25.1
pyparsing==2.4.2
#pysam==0.15.3 # Prebuilt not available for python 3.6, not able to build from source, even after downgrading pip3
#pysam==0.21.0 # Latest Prebuilt available for Python 3.6
pysam==0.15.4 # Prebuilt available for Python 3.6
python-dateutil==2.8.0
pytz==2019.2
#PyVCF==0.6.8 # Requires Python <= 3.4, https://pypi.org/project/PyVCF, BUT we were able to build from source
scikit-learn==0.21.3
scipy==1.3.1
six==1.12.0
sklearn==0.0
EOF
Install remaining requirements
$ pip3 install -r requirements.txt
Run SMuRF
We tried both the config.ini provided in this repo and a modified version from PTATO v1.2.1's. Please update your /path/to in the ptato_smurf_config.ini below.
$ cat <>ptato_smurf_config.ini
[SMuRF]
threads = 8
blacklist = /path/to/ptato/1.2.1/resources/hg38/smurf/Mutational_blacklists/MSC_healthyBM_raw_variants_hg38.bed,/path/to/ptato/1.2.1/resources/hg38/smurf/Mutational_blacklists/Fetal_15x_raw_variants_hg38.bed
qual = 100
mq = 55
sample_gq_homozygous = 10
sample_gq_heterozygous = 99
sample_gq_homref = 10
control_gq_homozygous = 10
control_gq_heterozygous = 99
control_gq_homref = 10
indel_gq_homozygous = 99
indel_gq_heterozygous = 99
indel_gq_homref = 20
coverage = 5
clonal_threshold = 0.15
absent_threshold = 0.0
mapq = 0
base_phred_quality = 0
min_components = 2
max_components = 3
indel = True
indel_flank = 100
known_variant_flag_ids = dbNSFP_ExAC_AF dbNSFP_1000Gp3_AF GoNLv5AF
know_variant_flag_values = 0.1 0.1 0.1
[Driver]
threads = 8
effect = MODERATE|HIGH
genes = /path/to/ptato/1.2.1/resources/hg38/smurf/hotspot_genes/cosmic_cancer_gene_census_09052019.txt
qual = 60
mq = 30
clonal_threshold = 0.15
absent_threshold = 0.0
sample_gq_homozygous = 10
sample_gq_heterozygous = 20
sample_gq_homref = 20
control_gq_homozygous = 10
control_gq_heterozygous = 10
control_gq_homref = 20
indel_gq_homozygous = 60
indel_gq_heterozygous = 60
indel_gq_homref = 20
coverage = 5
mapq = 0
base_phred_quality = 0
indel = True
EOF
$ cat <>run_demo.sh
#!/bin/bash
# Activate python 3.6.8 environment
. venv_3.6/bin/activate
python $SMURFPATH/SMuRF.py \
-i $SMURFPATH/demo/[file.vcf.gz] \
-b $SMURFPATH/demo/*.bam \
-n [NAME_OF_NORMAL] \
-c $SMURFPATH/ptato_smurf_config.ini > "$(date +%Y-%m-%d_%H-%M-%S.smurf-demo.out)" 2> "$(date +%Y-%m-%d_%H-%M-%S.smurf-demo.err)"
EOF
The installation instructions provided do not work with RHEL/CentOS 7.9. We were able to install the dependancies by altering the instructions.
Environment
SMuRF Installation
Downgrade setuptools (2to3 support)
The setuptools package 58.0.0 removed support for 2to3 during builds. PyVCF 0.6.8 requires 2to3 support to build from source, and there is no prebuilt PyVCF 0.6.8 for Python 3.6.
Install PyVCF from source
There are compatibility issues with all other options we tried, like using PyVCF.
Modify requirements.txt
We tried to build the specified version of all package requirements we could not install following SMuRF installation procedure. We could not, details below.
Install remaining requirements
Run SMuRF
We tried both the config.ini provided in this repo and a modified version from PTATO v1.2.1's. Please update your /path/to in the ptato_smurf_config.ini below.