Exemplo n.º 1
0
def add_sequencing_run_object(config,mockdb,input_dir,output_dir=None,sample_sheet=None):
    """
    Reads in the directories in the hiseq output directory and compares it to what's in the 
    SequencingRun database.  If it is a new directory, a new sequencing run object is created in
    the Running state.
    """
    [date,machine_key,run_number,side,flowcell_key] = parse_sequencing_run_dir(input_dir)
    machine = mockdb['HiSeqMachine'].__get__(config,key=machine_key)
    flowcell = mockdb['Flowcell'].__get__(config,key=flowcell_key)
    run_type = determine_run_type(input_dir)
    seq_run=mockdb['SequencingRun'].__new__(config,input_dir=input_dir,fastq_archive=output_dir,flowcell=flowcell,machine=machine,date=date,run_number=run_number,side=side,run_type=run_type,sample_sheet=sample_sheet)
    seq_run.state = 'Running'
    return 1
Exemplo n.º 2
0
def things_to_do_if_initializing_pipeline_with_input_directory(configs,storage_devices,mockdb,source_dir,pipeline_name=None,base_output_dir=None,combine_projects=True):
    if combine_project:
        sample_dirs["dummy_project"] = list_sample_dirs(source_dir)
    else:
        sample_dirs = list_project_sample_dirs(source_dir)
    target_config = MyConfigParser()
    target_config.read(configs["system"].get("Filenames","target_config"))
    for project in sample_dirs:
        for sample in sample_dirs[project]:
            running_location = identify_running_location_with_most_currently_available(configs,storage_devices)
            parsed = parse_sample_sheet(configs['system'],mockdb,sample_dirs[project][sample][0])
            if base_output_dir is None:
                base_output_dir = configs['pipeline'].get('Common_directories','archive_directory')
            automation_parameters_config = MyConfigParser()
            automation_parameters_config.read(configs["system"].get("Filenames","automation_config"))
            description_dict = parse_description_into_dictionary(parsed['description'])
            if 'Pipeline' in description_dict:
                pipeline_key =  description_dict['Pipeline']
            else:
                description_pieces = parsed['description'].split('_')
                pipeline_key = description_pieces[-1]
            pipeline_name_for_sample = automation_parameters_config.safe_get("Pipeline",pipeline_key)
            if not pipeline_name_for_sample == pipeline_name:
                continue
            mockdb[pipeline_name].__new__(configs['system'],input_dir=sample_dirs[project][sample][0],pipeline_config=configs["pipeline"],project=parsed['project_name'],pipeline_key=pipeline_key,**parsed)
            flowcell_dict = mockdb['SequencingRun'].__attribute_value_to_object_dict__('flowcell_key')
            flowcell_dict = mockdb['SequencingRun'].__attribute_value_to_object_dict__('flowcell_key')
            if parsed['flowcell'].key in flowcell_dict:
                seq_run = flowcell_dict[parsed['flowcell'].key]
                pass
            else:
                try:
                    base_dir = get_sequencing_run_base_dir(source_dir)
                    [date,machine_key,run_number,side,flowcell_key] = parse_sequencing_run_dir(base_dir)
                    machine = mockdb['HiSeqMachine'].__get__(configs['system'],machine_key)
                    run_type = determine_run_type(base_dir)
                    seq_run = mockdb['SequencingRun'].__new__(configs['system'],flowcell,machine,date,run_number,output_dir=base_dir,side=side,run_type=run_type)
                    fill_demultiplex_stats(configs['system'],mockdb,seq_run.output_dir,flowcell,machine)
                except:
                    pass
    return 1
        string += "," + machine.key
        string += "," + number
        print string
    return 1

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Places the statistics in Demultiplex_Stats.html into the database')
    parser.add_argument('directory', type=str, help='The directory name where the casava results are placed.')
    parser.add_argument('--report', dest='report', action='store_true', default=False, help='Prints data insead of inputting into database')
    parser.add_argument('--add_seq_run', dest='add_seq_run', action='store_true', default=False, help='Adds a completed sequencing run for the flowcell')
    args = parser.parse_args()
    config = ConfigParser.ConfigParser()
    config.read('/home/sequencing/src/pipeline_project/pipeline/config/ihg_system.cfg')
    mockdb = initiate_mockdb(config)
    [date,machine_key,run_number,side,flowcell_key] = parse_sequencing_run_dir(args.directory)
    flowcell = mockdb['Flowcell'].__get__(config,key=flowcell_key)
    machine = mockdb['HiSeqMachine'].__get__(config,key=machine_key)
    if args.report is True:
        report_demultiplex_stats(config,mockdb,args.directory,flowcell,machine)
    else:
        if args.add_seq_run is True:
            try:
                flowcell_seq_run_dict = mockdb['SequencingRun'].__attribute_value_to_object_dict__('flowcell_key')
                seq_run = flowcell_seq_run_dict[flowcell.key][0]
            except KeyError:
                run_type = determine_run_type(args.directory)
                seq_run=mockdb['SequencingRun'].__new__(config,flowcell=flowcell,machine=machine,date=date,run_number=run_number,output_dir=args.directory,side=side,run_type=run_type)
            seq_run.__finish__()
        fill_demultiplex_stats(config,mockdb,args.directory,flowcell,machine)
        save_mockdb(config,mockdb)