for object_key, object in collection.objects.iteritems():
            try:
                if object.sample_key == orig_sample_key:
                    object.sample_key = new_sample_key
                    count += 1
            except AttributeError:
                pass
    return count

def rename_sample_key(config,mockdb,orig_sample_key,new_sample_key):
    collection_clses = child_classes(Sample,config=config) + [Sample]
    for cls in collection_clses:
        collection = mockdb[cls.__name__]
        for object_key, object in collection.objects.iteritems():
            if object.key == orig_sample_key:
                object.key = new_sample_key
    return 1
        
if __name__ == '__main__':
    #Handle arguments
    parser = argparse.ArgumentParser(description='Puts the project-summary.csv info into the bcbio database')
    parser.add_argument('sample_key', type=str, help='The sample name as it currently is in the database')
    parser.add_argument('new_key', type=str, help='The sample name to which the sample_key will be renamed')
    args = parser.parse_args()
    config = ConfigParser.ConfigParser()
    config.read('/home/sequencing/src/pipeline_project/pipeline/config/qc_on_ihg.cfg')
    mockdb = initiate_mockdb(config)
    rename_all_sample_keys(mockdb,args.sample_key,args.new_key)
    rename_sample_key(config,mockdb,args.sample_key,args.new_key)
    save_mockdb(config,mockdb)
configs.update({'system':system_config})

config_instance = MyConfigParser()
configs.update({"seq_run":config_instance})
config_instance.read(system_config.get('Pipeline',"seq_run"))

pipelines = system_config.get('Pipeline','opts').split(',')
pipeline_config = {}
for pipeline_name in pipelines:
    config_instance = MyConfigParser()
    pipeline_config.update({pipeline_name:config_instance})
    pipeline_config[pipeline_name].read(system_config.get('Pipeline',pipeline_name))
#Initialize and load mockdb
if system_config.get("Logging","debug") is "True":
    print "Initializing mockdb"
mockdb=initiate_mockdb(system_config)

#Grab storage devices to keep track of storage
storage_devices = initiate_storage_devices(system_config)
if system_config.get("Logging","debug") is "True":
    print "Add waiting storage"
for pipeline_name in pipeline_config.keys():
    add_waiting_storage(pipeline_config[pipeline_name],storage_devices,mockdb,pipeline_name)

#Maintain sequencing run through new directory identification
if system_config.get("Logging","debug") is "True":
    print "Analyzing sequencing dir"
maintain_sequencing_run_objects(system_config,mockdb)
if system_config.get("Logging","debug") is "True":
    print "Continuing sequencing runs "
continue_seq_run(configs,storage_devices,mockdb)
from mockdb.initiate_mockdb import initiate_mockdb

print initiate_mockdb().keys()