Skip to content

Commit 948ce44

Browse files
authored
Merge pull request #23 from mskcc/feature/add-py-support
add additional python version support and ci config
2 parents 334cdc1 + f9df144 commit 948ce44

File tree

8 files changed

+66
-14
lines changed

8 files changed

+66
-14
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ python:
33
- 2.7
44
- 3.5
55
- 3.6
6+
- 3.7
7+
- 3.8
68
before_install:
79
- sudo apt-get -y update
810
install:

analyze.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from torch.autograd import Variable
2929
from sklearn import metrics
3030
import traceback
31-
31+
import pkg_resources
3232
from data.generate_vectors.create_data import create_data
3333
from main.evaluate_sample import run_eval
3434

@@ -38,6 +38,12 @@
3838

3939
def main():
4040
parser = argparse.ArgumentParser(description="MiMSI Analysis")
41+
parser.add_argument(
42+
"--version",
43+
action="store_true",
44+
default=False,
45+
help="Display current version of MiMSI",
46+
)
4147
parser.add_argument(
4248
"--no-cuda",
4349
action="store_true",
@@ -125,6 +131,10 @@ def main():
125131
)
126132

127133
args = parser.parse_args()
134+
if args.version:
135+
print("MiMSI Case Analysis CLI version - " + pkg_resources.require("MiMSI")[0].version)
136+
return
137+
128138
case_list, tumor_bam, normal_bam, case_id, norm_case_id, ms_list, save_loc, cores, saved_model, no_cuda, seed, save, save_format, name, covg, confidence, use_attention = (
129139
args.case_list,
130140
args.tumor_bam,

data/data_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def __getitem__(self, idx):
105105

106106
sample_id, label = self.__parsefilename__(self.data_file_list[idx])
107107
final_bags = []
108-
bags = self._preprocess(np.load(data_file))
108+
bags = self._preprocess(np.load(data_file, allow_pickle=True, encoding="bytes"))
109109
for bag in bags:
110110

111111
bag = [

data/generate_vectors/create_data.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import warnings
2525
import pysam
2626
import traceback
27+
import pkg_resources
2728
from glob import glob
2829

2930
from .bam2tensor import Bam2Tensor
@@ -296,7 +297,7 @@ def create_data(
296297
raise Exception(
297298
"Label column in case list can be empty or contain one the values +1 (MSI) or -1 (MSS)."
298299
)
299-
cases = cases.replace({pd.np.nan: None})
300+
cases = cases.replace({np.nan: None})
300301
for index, row in cases.iterrows():
301302
tumor_id, normal_id, tumor_bam, normal_bam, label = map(
302303
lambda x: row[x] if x in row and row[x] else None,
@@ -340,6 +341,12 @@ def create_data(
340341

341342
def main():
342343
parser = argparse.ArgumentParser(description="MiMSI Vector Generation Utility")
344+
parser.add_argument(
345+
"--version",
346+
action="store_true",
347+
default=False,
348+
help="Display current version of MiMSI",
349+
)
343350

344351
single_sample_group = parser.add_argument_group("Single Sample Mode")
345352
single_sample_group.add_argument(
@@ -389,6 +396,11 @@ def main():
389396
)
390397

391398
args = parser.parse_args()
399+
400+
if args.version:
401+
print("MiMSI Vector Creation CLI version - " + pkg_resources.require("MiMSI")[0].version)
402+
return
403+
392404
case_list, tumor_bam, normal_bam, case_id, m_list, save_loc, covg, cores, norm_case_id = (
393405
args.case_list,
394406
args.tumor_bam,

main/evaluate_sample.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import torch
2323
import torch.utils.data as data_utils
2424
import torch.optim as optim
25+
import pkg_resources
2526
from torch.autograd import Variable
2627
from sklearn import metrics
2728

@@ -90,7 +91,7 @@ def sample_name_parser(sample):
9091
try:
9192
os.mkdir(save_loc)
9293
except OSError as e:
93-
if e.errno != os.errno.EEXIST:
94+
if e.errno != errno.EEXIST:
9495
print("Exception when creating directory to store final results.")
9596
raise
9697

@@ -191,6 +192,12 @@ def run_eval(
191192

192193
def main():
193194
parser = argparse.ArgumentParser(description="MiMSI Sample(s) Evalution Utility")
195+
parser.add_argument(
196+
"--version",
197+
action="store_true",
198+
default=False,
199+
help="Display current version of MiMSI",
200+
)
194201
parser.add_argument(
195202
"--no-cuda",
196203
action="store_true",
@@ -250,6 +257,10 @@ def main():
250257

251258
args = parser.parse_args()
252259

260+
if args.version:
261+
print("MiMSI Case Evaluation Utility version - " + pkg_resources.require("MiMSI")[0].version)
262+
return
263+
253264
saved_model, vector_location, no_cuda, seed, save, save_format, save_loc, name, coverage, confidence, use_attention = (
254265
args.model,
255266
args.vector_location,

main/mi_msi_train_test.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,23 @@
2323
import torch
2424
import torch.utils.data as data_utils
2525
import torch.optim as optim
26+
import pkg_resources
2627
from torch.autograd import Variable
2728
from sklearn import metrics
2829
from copy import deepcopy
29-
from .data.data_loader import MSIBags
30-
from .model.mi_msi_model import MSIModel
30+
from data.data_loader import MSIBags
31+
from model.mi_msi_model import MSIModel
3132

3233

3334
def main():
3435
parser = argparse.ArgumentParser(
3536
description='MiMSI - A Multiple Instance Learning Model for detecting microsatellite instability in NGS data')
37+
parser.add_argument(
38+
"--version",
39+
action="store_true",
40+
default=False,
41+
help="Display current version of MiMSI",
42+
)
3643
parser.add_argument('--epochs', type=int, default=40, metavar='N',
3744
help='Number of epochs to train (default: 40)')
3845
parser.add_argument('--lr', type=float, default=0.0001, metavar='LR',
@@ -54,6 +61,11 @@ def main():
5461

5562

5663
args = parser.parse_args()
64+
65+
if args.version:
66+
print("MiMSI Model Training & Testing CLI version - " + pkg_resources.require("MiMSI")[0].version)
67+
return
68+
5769
# Training settings
5870
epochs, lr, reg, seed, name, train_location, test_location, save = args.epochs, args.lr, args.reg, args.seed, args.name, args.train_location, args.test_location, args.save
5971
cuda = not args.no_cuda and torch.cuda.is_available()

requirements.txt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
future==0.18.2
1+
future; python_version <= '2.7'
22
nose>=1.3.7
3-
numpy==1.16.1
4-
pandas==0.24.2
5-
Pillow==5.3.0
3+
numpy==1.16.5
4+
pandas==0.24.2; python_version <= '2.7'
5+
pandas
6+
pillow>=8.1.1; python_version >= '3.6'
7+
pillow
68
pysam==0.16.0.1
79
python-dateutil==2.8.1
8-
scikit-learn==0.20.0
9-
scipy==1.1.0
10+
scikit-learn>=0.20.0; python_version <= '2.7'
11+
scikit-learn
12+
scipy>=1.1.0; python_version <= '2.7'
13+
scipy
1014
six==1.11.0
11-
sklearn==0.0
15+
sklearn==0.0; python_version <= '2.7'
16+
sklearn
1217
torch==1.4.0
1318
torchvision==0.5.0

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def most_recent_tag():
2929

3030
setup(
3131
name="MiMSI",
32-
version=most_recent_tag(),
32+
version="v0.4.1",
3333
description="A deep, multiple instance learning based classifier for identifying Microsatellite Instability from NGS",
3434
url="https://github.com/mskcc/mimsi",
3535
author="John Ziegler",

0 commit comments

Comments
 (0)