Mercurial > repos > iuc > ipfp_normalisation
annotate ipfp_normalisation.py @ 0:8b5e4ea144a5 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
author | iuc |
---|---|
date | Tue, 04 Feb 2025 09:11:16 +0000 |
parents | |
children |
rev | line source |
---|---|
0
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env python |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
2 """ |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
3 IPFP Normalisation |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
4 """ |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
5 import argparse |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
6 import sys |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
7 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
8 import numpy as np |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
9 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
10 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
11 def throw_error(msg, exit_code=1): |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
12 sys.stderr.write(msg) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
13 sys.exit(exit_code) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
14 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
15 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
16 def ipfp(data, precision=1e-5, maxIterations=50): |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
17 """ |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
18 Return the normalized version of the input data (matrix) as an ndarray |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
19 :param data: np.ndArray |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
20 :param precision: float combined allowed deviation (residual error) of col and row means from TARGET (=1) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
21 :param maxIterations: int maximum amount of iterations (1x row and 1x col per iteration) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
22 :return normalizedData: np.ndArray normalized data |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
23 """ |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
24 try: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
25 assert isinstance(data, np.ndarray) and data.dtype in ['float64', 'int64'] |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
26 assert precision > 0 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
27 assert isinstance(maxIterations, int) and maxIterations > 0 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
28 except AssertionError: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
29 throw_error("Invalid input parameters. Please check that the input data consists of floats or integers, precision > 0 and maxIterations is a positive integer.") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
30 # replace zeros with nan |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
31 if (data < 0).any(): |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
32 throw_error("Negative values detected, only use positive values.") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
33 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
34 zeros = (data == 0) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
35 if zeros.any(): |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
36 print("Zero values detected; replacing with NA.") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
37 data = data.astype(float) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
38 data[zeros] = np.nan |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
39 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
40 # initialize variables |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
41 Nrows, Ncols = data.shape |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
42 convergenceTrail = np.asarray([np.nan] * (2 * maxIterations)) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
43 convergence = np.inf |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
44 normalized_data = data |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
45 TARGET = 1 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
46 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
47 i = 0 # number of current iteration |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
48 # without reshaping the ndarrays, they have shape (x,) (no second value) and the procedure fails. |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
49 # main loop; iterates until convergence is reached (i.e., L1-norm below variable <h>) or the maximum number of |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
50 # iteration cycles is surpassed. |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
51 while convergence > precision and i < maxIterations: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
52 # fit the rows |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
53 Ri = TARGET * np.asarray(1 / np.nanmean(normalized_data, 1)).reshape(Nrows,) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
54 normalized_data = (normalized_data.T * Ri).T |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
55 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
56 # calculate deviation from column marginals; row deviation is zero at even indices. (index start = 0) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
57 convergenceTrail[2 * i] = Nrows * 0.5 * np.nansum(np.abs(np.nanmean(normalized_data, 0) - TARGET)) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
58 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
59 # fit the columns |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
60 Si = TARGET * np.asarray(1 / np.nanmean(normalized_data, 0)).reshape(Ncols,) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
61 normalized_data *= Si |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
62 # calculate deviation from row marginals; column deviation is zero at odd indices. (index start = 0) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
63 convergenceTrail[2 * i + 1] = Ncols * 0.5 * np.nansum(np.abs(np.nanmean(normalized_data, 1) - TARGET)) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
64 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
65 convergence = convergenceTrail[2 * i + 1] |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
66 i += 1 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
67 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
68 if i == maxIterations: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
69 throw_error(f"Max number of IPFP iterations ({maxIterations}) reached. Attained precision: {convergence}.") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
70 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
71 return normalized_data |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
72 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
73 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
74 def main(): |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
75 parser = argparse.ArgumentParser(description="IPFP Normalisation") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
76 parser.add_argument('-i', '--input', help="Input file", required=True, metavar="FILE") |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
77 parser.add_argument('-p', '--precision', help="Precision", default=1e-5, type=float) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
78 parser.add_argument('-m', '--maxIterations', help="Max iterations", default=50, type=int) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
79 parser.add_argument('-s', '--skipHeaders', help="Skip headers, skips the first n lines", default=0, type=int) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
80 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
81 args = parser.parse_args() |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
82 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
83 try: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
84 data = np.genfromtxt(args.input, skip_header=args.skipHeaders, filling_values=np.nan, delimiter='\t') |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
85 normalized_data = ipfp(data, args.precision, args.maxIterations) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
86 np.savetxt("output.tsv", normalized_data, delimiter='\t') |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
87 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
88 except Exception as e: |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
89 throw_error(str(e)) |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
90 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
91 |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
92 if __name__ == "__main__": |
8b5e4ea144a5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ipfp_normalisation commit 1facbf5b9d74f0f7cd1f9346acb405a2e327c639
iuc
parents:
diff
changeset
|
93 main() |