Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pythenv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ set -Ceu

: ${PYTHON:=python}
root=`cd -- "$(dirname -- "$0")" && pwd`
platform=`"${PYTHON}" -c 'import distutils.util as u; print u.get_platform()'`
version=`"${PYTHON}" -c 'import sys; print sys.version[0:3]'`
platform=`"${PYTHON}" -c 'import distutils.util as u; print(u.get_platform())'`
version=`"${PYTHON}" -c 'import sys; print(sys.version[0:3])'`

# The lib directory varies depending on
#
Expand Down
8 changes: 4 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,22 +78,22 @@ def get_version():

def write_version_py(path):
try:
with open(path, 'rb') as f:
with open(path, 'r') as f:
version_old = f.read()
except IOError:
version_old = None
version_new = '__version__ = %r\n' % (full_version,)
if version_old != version_new:
print 'writing %s' % (path,)
with open(path, 'wb') as f:
print('writing %s' % (path,))
with open(path, 'w') as f:
f.write(version_new)

def readme_contents():
readme_path = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
'README.md')
with open(readme_path) as readme_file:
return unicode(readme_file.read(), 'UTF-8')
return str(readme_file.read())

class local_build_py(build_py):
def run(self):
Expand Down
23 changes: 12 additions & 11 deletions src/trcrpm.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def __init__(self, chains, lag, variables, rng, dependencies=None):
# Derived attributes.
self.window = self.lag + 1
self.variables_lagged = list(itertools.chain.from_iterable([
['%s.lag.%d' % (varname, i,) for i in xrange(self.lag, -1, -1)]
['%s.lag.%d' % (varname, i,) for i in range(self.lag, -1, -1)]
for varname in self.variables
]))
self.variable_index = {var: i for i, var in enumerate(self.variables)}
Expand Down Expand Up @@ -202,7 +202,7 @@ def simulate_ancestral(self, timepoints, variables, nsamples, multiprocess=1):
constraints, parents, self._variable_to_index, nsamples)
for state in self.engine.states
]
mapper = parallel_map if multiprocess else map
mapper = parallel_map if multiprocess else itertools.starmap
self.engine._seed_states()
samples_raw_list = mapper(_simulate_ancestral_mp, args)
samples_raw = itertools.chain.from_iterable(samples_raw_list)
Expand Down Expand Up @@ -285,15 +285,16 @@ def _incorporate_new_timepoints(self, frame):
"""Incorporate fresh sample ids as new cgpm rows."""
new_timepoints = frame.index[~frame.index.isin(self.dataset.index)]
new_observations = frame[self.variables].loc[new_timepoints]
self.dataset = self.dataset.append(new_observations)
self.dataset = pd.concat([self.dataset, new_observations],
ignore_index=False)
new_rows = [self._get_timepoint_row(t) for t in new_timepoints]
if self.initialized:
outputs = self.engine.states[0].outputs
assert all(len(row) == len(outputs) for row in new_rows)
rowids_cgpm = range(
rowids_cgpm = list(range(
self.engine.states[0].n_rows(),
self.engine.states[0].n_rows() + len(new_rows)
)
))
observations_cgpm = [
{i: row[i] for i in outputs if not np.isnan(row[i])}
for row in new_rows
Expand Down Expand Up @@ -353,7 +354,7 @@ def _convert_nan_timepoint_to_cgpm_rowid_cells(
in, and dict containing columns and values to populate."""
nan_col_names = nan_timepoint_mask[nan_timepoint_mask].index
nan_col_idxs = [self._variable_to_index(col) for col in nan_col_names]
nan_col_values = frame.loc[nan_timepoint, nan_col_names].as_matrix()
nan_col_values = frame.loc[nan_timepoint, nan_col_names].to_numpy()
cgpm_rowids = self._timepoint_to_rowids(nan_timepoint)
cgpm_rowids_cells = [
{col_idx - lag: value
Expand Down Expand Up @@ -398,7 +399,7 @@ def _timepoint_to_rowids(self, timepoint):

def _get_timepoint_window(self, timepoint):
"""Return the previous timepoints in the window of this timepoint."""
return range(timepoint, timepoint + self.window)
return list(range(timepoint, timepoint + self.window))

def _variable_to_index(self, variable, lag=0):
"""Convert variable name to cgpm output index."""
Expand All @@ -407,7 +408,7 @@ def _variable_to_index(self, variable, lag=0):

def _variable_to_window_indexes(self, variable):
"""Convert variable name to list of cgpm output indexes in its window."""
return [self._variable_to_index(variable, l) for l in xrange(self.window)]
return [self._variable_to_index(variable, l) for l in range(self.window)]

def _variable_indexes(self):
"""Return list of cgpm output indexes, one per variable at lag 0."""
Expand Down Expand Up @@ -574,14 +575,14 @@ def to_metadata(self):
# These functions must be defined top-level in the module to work with
# parallel_map.

def _simulate_ancestral_mp((state, timepoints, variables, rowids, targets,
constraints, parents, variable_to_index, nsamples)):
def _simulate_ancestral_mp(state, timepoints, variables, rowids, targets,
constraints, parents, variable_to_index, nsamples):
"""Simulate timepoints and variables ancestrally (multiple samples)."""
return [
_simulate_ancestral_one(
state, timepoints, variables, rowids, targets, constraints, parents,
variable_to_index)
for _i in xrange(nsamples)
for _i in range(nsamples)
]


Expand Down
2 changes: 1 addition & 1 deletion tests/test_data_transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def test_timepoint_to_rowid():
rng = np.random.RandomState(2)
trcrpm = TRCRP_Mixture(chains=1, lag=0, variables=FRAME.columns, rng=rng)
trcrpm.incorporate(FRAME)
for i in xrange(len(FRAME)):
for i in range(len(FRAME)):
assert trcrpm._timepoint_to_rowid(i) == i
assert trcrpm._timepoint_to_rowid(i) == i

Expand Down