Skip to content
Snippets Groups Projects
Commit 44e531de authored by Amir MOHAMMADI's avatar Amir MOHAMMADI
Browse files

Fix a bug when neg and pos scores were swapped

parent f18ee18a
No related branches found
No related tags found
1 merge request!146Add 4-5-col files related functionalities and add click commands
Pipeline #
"""Generate random scores. """Generate random scores.
""" """
import pkg_resources # to make sure bob gets imported properly
import os import os
import logging import logging
import numpy import numpy
...@@ -16,6 +15,7 @@ logger = logging.getLogger(__name__) ...@@ -16,6 +15,7 @@ logger = logging.getLogger(__name__)
NUM_NEG = 5000 NUM_NEG = 5000
NUM_POS = 5000 NUM_POS = 5000
def gen_score_distr(mean_neg, mean_pos, sigma_neg=10, sigma_pos=10): def gen_score_distr(mean_neg, mean_pos, sigma_neg=10, sigma_pos=10):
"""Generate scores from normal distributions """Generate scores from normal distributions
...@@ -47,15 +47,16 @@ def gen_score_distr(mean_neg, mean_pos, sigma_neg=10, sigma_pos=10): ...@@ -47,15 +47,16 @@ def gen_score_distr(mean_neg, mean_pos, sigma_neg=10, sigma_pos=10):
return neg_scores, pos_scores return neg_scores, pos_scores
def write_scores_to_file(pos, neg, filename, n_sys=1, five_col=False):
def write_scores_to_file(neg, pos, filename, n_sys=1, five_col=False):
""" Writes score distributions """ Writes score distributions
Parameters Parameters
---------- ----------
pos : :py:class:`numpy.ndarray`
Scores for positive samples.
neg : :py:class:`numpy.ndarray` neg : :py:class:`numpy.ndarray`
Scores for negative samples. Scores for negative samples.
pos : :py:class:`numpy.ndarray`
Scores for positive samples.
filename : str filename : str
The path to write the score to. The path to write the score to.
n_sys : int n_sys : int
...@@ -68,13 +69,16 @@ def write_scores_to_file(pos, neg, filename, n_sys=1, five_col=False): ...@@ -68,13 +69,16 @@ def write_scores_to_file(pos, neg, filename, n_sys=1, five_col=False):
with open(filename, 'wt') as f: with open(filename, 'wt') as f:
for i in pos: for i in pos:
s_name = random.choice(s_names) s_name = random.choice(s_names)
s_five = ' ' if not five_col else ' d' + random.choice(s_names) + ' ' s_five = ' ' if not five_col else ' d' + \
random.choice(s_names) + ' '
f.write('x%sx %s %f\n' % (s_five, s_name, i)) f.write('x%sx %s %f\n' % (s_five, s_name, i))
for i in neg: for i in neg:
s_name = random.choice(s_names) s_name = random.choice(s_names)
s_five = ' ' if not five_col else ' d' + random.choice(s_names) + ' ' s_five = ' ' if not five_col else ' d' + \
random.choice(s_names) + ' '
f.write('x%sy %s %f\n' % (s_five, s_name, i)) f.write('x%sy %s %f\n' % (s_five, s_name, i))
@click.command() @click.command()
@click.argument('outdir') @click.argument('outdir')
@click.option('-mm', '--mean-match', default=10, type=FLOAT, show_default=True) @click.option('-mm', '--mean-match', default=10, type=FLOAT, show_default=True)
...@@ -84,7 +88,7 @@ def write_scores_to_file(pos, neg, filename, n_sys=1, five_col=False): ...@@ -84,7 +88,7 @@ def write_scores_to_file(pos, neg, filename, n_sys=1, five_col=False):
@verbosity_option() @verbosity_option()
def gen(outdir, mean_match, mean_non_match, n_sys, five_col): def gen(outdir, mean_match, mean_non_match, n_sys, five_col):
"""Generate random scores. """Generate random scores.
Generates random scores in 4col or 5col format. The scores are generated Generates random scores in 4col or 5col format. The scores are generated
using Gaussian distribution whose mean is an input using Gaussian distribution whose mean is an input
parameter. The generated scores can be used as hypothetical datasets. parameter. The generated scores can be used as hypothetical datasets.
""" """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment