def _make_seq_run():
     """
     Make a sequencing run pointed at real data for the tests
     :return: SequencingRun object
     """
     files_1 = model.SequenceFile([
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "01-1111_S1_L001_R1_001.fastq.gz"),
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "01-1111_S1_L001_R2_001.fastq.gz"),
     ])
     files_2 = model.SequenceFile([
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "02-2222_S1_L001_R1_001.fastq.gz"),
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "02-2222_S1_L001_R2_001.fastq.gz"),
     ])
     files_3 = model.SequenceFile([
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "03-3333_S1_L001_R1_001.fastq.gz"),
         path.join(path_to_module, "fake_ngs_data", "Data", "Intensities",
                   "BaseCalls", "03-3333_S1_L001_R2_001.fastq.gz"),
     ])
     sample_1 = model.Sample("test_sample", "description", 1)
     sample_1.sequence_file = files_1
     sample_2 = model.Sample("test_sample", "description", 1)
     sample_2.sequence_file = files_2
     sample_3 = model.Sample("test_sample", "description", 1)
     sample_3.sequence_file = files_3
     project = model.Project("test_project", [sample_1, sample_2, sample_3],
                             "description")
     sequencing_run = model.SequencingRun({"layoutType": "PAIRED_END"},
                                          [project], "miseq")
     return sequencing_run
Example #2
0
def build_sequencing_run_from_samples(sample_sheet_file, metadata,
                                      sequencing_run_type):
    """
    Create a SequencingRun object with full project/sample/sequence_file structure

    :param sample_sheet_file:
    :param metadata:
    :param sequencing_run_type:
    :return: SequencingRun
    """
    sample_list = _parse_sample_list(sample_sheet_file)

    logging.debug("Building SequencingRun from parsed data")

    # create list of projects and add samples to appropriate project
    project_list = []
    for sample in sample_list:
        project = None
        for p in project_list:
            if sample.get('sample_project') == p.id:
                project = p
        if project is None:
            project = model.Project(id=sample.get('sample_project'))
            project_list.append(project)

        project.add_sample(sample)

    sequence_run = model.SequencingRun(metadata=metadata,
                                       project_list=project_list,
                                       sequencing_run_type=sequencing_run_type)
    logging.debug("SequencingRun built")
    return sequence_run
Example #3
0
def build_sequencing_run_from_samples(sample_list, metadata,
                                      sequence_run_type):
    """
    Create a SequencingRun object with full project/sample/sequence_file structure

    :param sample_list: List of Sample objects
    :param metadata: metadata dict to add to the run
    :param sequence_run_type: string identifier for sequencer type when generating api route
    :return: SequencingRun
    """

    logging.debug("Building SequencingRun from parsed data")

    # create list of projects and add samples to appropriate project
    project_list = []
    for sample in sample_list:
        project = None
        for p in project_list:
            if sample.get('sample_project') == p.id:
                project = p
        if project is None:
            project = model.Project(id=sample.get('sample_project'))
            project_list.append(project)

        project.add_sample(sample)

    sequence_run = model.SequencingRun(metadata=metadata,
                                       project_list=project_list,
                                       sequencing_run_type=sequence_run_type)
    logging.debug("SequencingRun built")
    return sequence_run