Ejemplo n.º 1
0
def newExperiment(explog_path, plan_json=''):
    '''Create Experiment record'''
    folder = os.path.dirname(explog_path)

    # Test if Experiment object already exists
    try:
        newExp = models.Experiment.objects.get(unique=folder)
    except:
        newExp = None

    if newExp is None:
        # Parse the explog.txt file
        text = load_log_path(explog_path)
        explog = parse_log(text)
        explog["planned_run_short_id"] = '' # don't allow getting plan by shortId - other plans may exist with that id
        try:
            planObj, expObj, easObj = get_planned_exp_objects(explog,folder)
            newExp = update_exp_objects_from_log(explog,folder, planObj, expObj, easObj)
            if plan_json:
                update_plan_info(plan_json, planObj, easObj)
        except:
            newExp = None
            print traceback.format_exc()

    return newExp
Ejemplo n.º 2
0
def newExperiment(explog_path):
    '''Create Experiment record'''
    # Parse the explog.txt file
    text = load_log_path(explog_path)
    dict = parse_log(text)
    
    # Create the Experiment Record
    folder = os.path.dirname(explog_path)
    
    # Test if Experiment object already exists
    try:
        newExp = models.Experiment.objects.get(unique=folder)
    except:
        newExp = None
        
    if newExp is None:
        try:
            expArgs,st = exp_kwargs(dict,folder)
            newExp = models.Experiment(**expArgs)
            newExp.save()
        except:
            newExp = None
            print traceback.format_exc()
    
    return newExp
Ejemplo n.º 3
0
def newExperiment(explog_path):
    '''Create Experiment record'''
    # Parse the explog.txt file
    text = load_log_path(explog_path)
    dict = parse_log(text)

    # Create the Experiment Record
    folder = os.path.dirname(explog_path)

    # Test if Experiment object already exists
    try:
        newExp = models.Experiment.objects.get(unique=folder)
    except:
        newExp = None

    if newExp is None:
        try:
            expArgs, st = exp_kwargs(dict, folder)
            newExp = models.Experiment(**expArgs)
            newExp.save()
        except:
            newExp = None
            print traceback.format_exc()

    return newExp
Ejemplo n.º 4
0
def newExperiment(_explog_path, _plan_json=''):
    '''Create Experiment record'''
    folder = os.path.dirname(_explog_path)

    # Test if Experiment object already exists
    try:
        _newExp = models.Experiment.objects.get(unique=folder)
        print("DEBUG: Experiment exists in database: %s" % folder)
    except:
        print("DEBUG: Experiment does not exist in database")
        _newExp = None

    if _newExp is None:
        # Parse the explog.txt file
        text = load_log_path(_explog_path)
        explog = parse_log(text)
        explog[
            "planned_run_short_id"] = ''  # don't allow getting plan by shortId - other plans may exist with that id
        try:
            ret_val = generate_updateruninfo_post(folder, logger)
            if ret_val == "Generated POST":
                # Get experiment object
                exp_set = models.Experiment.objects.filter(unique=folder)
                if exp_set:
                    # Experiment object exists in database
                    _newExp = exp_set[0]
            else:
                print(
                    "ERROR: Could not update/generate new Experiment record in database"
                )
                print(ret_val)
                return None

            # Append to expName to indicate imported dataset.
            _newExp.expName += "_foreign"
            chefLog_parsed = isChefInfoAvailable(folder)
            if chefLog_parsed:
                update_chefSummary(_newExp, chefLog_parsed)
            _newExp.save()
            if _plan_json:
                planObj = _newExp.plan
                easObj = _newExp.get_EAS()
                update_plan_info(_plan_json, planObj, easObj)
        except:
            print("DEBUG: There was an error adding the experiment")
            _newExp = None
            print(traceback.format_exc())

    return _newExp
Ejemplo n.º 5
0
def newExperiment(_explog_path, _plan_json=''):
    '''Create Experiment record'''
    folder = os.path.dirname(_explog_path)

    # Test if Experiment object already exists
    try:
        _newExp = models.Experiment.objects.get(unique=folder)
        print("DEBUG: Experiment exists in database: %s" % folder)
    except:
        print("DEBUG: Experiment does not exist in database")
        _newExp = None

    if _newExp is None:
        # Parse the explog.txt file
        text = load_log_path(_explog_path)
        explog = parse_log(text)
        explog[
            "planned_run_short_id"] = ''  # don't allow getting plan by shortId - other plans may exist with that id
        try:
            ret_val = generate_updateruninfo_post(folder, logger)
            if ret_val == "Generated POST":
                # Get experiment object
                exp_set = models.Experiment.objects.filter(unique=folder)
                if exp_set:
                    # Experiment object exists in database
                    _newExp = exp_set[0]
            else:
                print("ERROR: Could not update/generate new Experiment record in database")
                print(ret_val)
                return None

            # Append to expName to indicate imported dataset.
            _newExp.expName += "_foreign"
            chefLog_parsed = isChefInfoAvailable(folder)
            if chefLog_parsed:
                update_chefSummary(_newExp, chefLog_parsed)
            _newExp.save()
        except:
            print("DEBUG: There was an error adding the experiment")
            _newExp = None
            print(traceback.format_exc())

    if _plan_json:
        update_plan_info(_plan_json, _newExp.plan, _newExp.get_EAS())

    return _newExp
Ejemplo n.º 6
0
def newExperiment(_explog_path, _plan_json=""):
    """Create Experiment record"""
    folder = os.path.dirname(_explog_path)

    # Test if Experiment object already exists
    try:
        _newExp = models.Experiment.objects.get(unique=folder)
        print "DEBUG: Experiment exists in database: %s" % (folder)
    except:
        print "DEBUG: Experiment does not exist in database"
        _newExp = None

    if _newExp is None:
        # Parse the explog.txt file
        text = load_log_path(_explog_path)
        explog = parse_log(text)
        explog["planned_run_short_id"] = ""  # don't allow getting plan by shortId - other plans may exist with that id
        try:
            ret_val = generate_updateruninfo_post(folder, logger)
            if ret_val == "Generated POST":
                # Get experiment object
                exp_set = models.Experiment.objects.filter(unique=folder)
                if exp_set:
                    # Experiment object exists in database
                    _newExp = exp_set[0]
            else:
                print "ERROR: Could not update/generate new Experiment record in database"
                print ret_val
                return None

            # Append to expName to indicate imported dataset.
            _newExp.expName += "_foreign"
            _newExp.save()
            if _plan_json:
                planObj = _newExp.plan
                easObj = _newExp.get_EAS()
                update_plan_info(_plan_json, planObj, easObj)
        except:
            print "DEBUG: There was an error adding the experiment"
            _newExp = None
            print traceback.format_exc()

    return _newExp
Ejemplo n.º 7
0
#!/usr/bin/env python
# Copyright (C) 2013 Ion Torrent Systems, Inc. All Rights Reserved
'''Parses explog.txt and explog_final.txt'''
from ion.utils.explogparser import load_log_path
from ion.utils.explogparser import parse_log

explog_path = "./explog.txt"
# Parse the explog.txt file
text = load_log_path(explog_path)
dict = parse_log(text)

#NOTE: keywords will have spaces replaced with underscores and all letters lowercased.
keywords = [
    "experimenterrorlog",
    "experimentinfolog",
    "explog_done",
    "experiment_name",
    "f",
]
for key,value in dict.items():
    if any(key.startswith(item) for item in keywords):
        print "(%s) ==> %s" % (key, value)
Ejemplo n.º 8
0
#!/usr/bin/env python
# Copyright (C) 2013 Ion Torrent Systems, Inc. All Rights Reserved
'''Parses explog.txt and explog_final.txt'''
from ion.utils.explogparser import load_log_path
from ion.utils.explogparser import parse_log

explog_path = "./explog.txt"
# Parse the explog.txt file
text = load_log_path(explog_path)
dict = parse_log(text)

#NOTE: keywords will have spaces replaced with underscores and all letters lowercased.
keywords = [
    "experimenterrorlog",
    "experimentinfolog",
    "explog_done",
    "experiment_name",
    "f",
]
for key, value in dict.items():
    if any(key.startswith(item) for item in keywords):
        print "(%s) ==> %s" % (key, value)