def load_toxoplasma_mutant(raw_data, row):
    # move down to attribute count
    row += 1
    attribute_count = int(raw_data[row][1])

    toxoplasma_mutant_list = []

    if attribute_count > 0:
        row += 1
        for i in range(0, attribute_count):
            # move down to data
            row += 1
            name = raw_data[row][0]
            name = name[1:-1]
            target_name = raw_data[row][1]
            target_name = target_name[1:-1]
            background = raw_data[row][2]
            background = background[1:-1]
            selection = raw_data[row][3]
            selection = selection[1:-1]
            mutation_type = raw_data[row][4]
            mutation_type = mutation_type[1:-1]
            promoter = raw_data[row][5]
            promoter = promoter[1:-1]
            organism = raw_data[row][6]
            organism = organism[1:-1]
            target_gene = raw_data[row][7]
            target_gene = target_gene[1:-1]

            # load organism
            organism = importer_organism.get_organism(organism)

            # load ontology term
            background = importer_ontology.get_ontology_term(
                "toxoplasma mutant", "toxoplasma mutant background", background
            )  # get ontology term
            selection = importer_ontology.get_ontology_term(
                "toxoplasma mutant", "toxoplasma mutant selection", selection
            )  # get ontology term
            mutation_type = importer_ontology.get_ontology_term(
                "toxoplasma mutant", "toxoplasma mutant mutation type", mutation_type
            )  # get ontology term
            promoter = importer_ontology.get_ontology_term(
                "toxoplasma mutant", "toxoplasma mutant promoter", promoter
            )  # get ontology term

            # load of Genes
            if target_gene:
                target_gene = importer_gene.get_gene(target_gene)

            if (
                name
                and target_name
                and background
                and selection
                and mutation_type
                and promoter
                and organism
                and target_gene
            ):
                toxoplasma_mutant = importer_toxoplasma_mutant.get_toxoplasma_mutant_with_target_gene(
                    name, target_name, background, selection, mutation_type, promoter, organism, target_gene
                )  # return toxoplasma mutant
                toxoplasma_mutant_list.append(toxoplasma_mutant)

            elif name and target_name and background and selection and mutation_type and promoter and organism:
                toxoplasma_mutant = importer_toxoplasma_mutant.get_toxoplasma_mutant_without_target_gene(
                    name, target_name, background, selection, mutation_type, promoter, organism
                )  # return toxoplasma mutant
                toxoplasma_mutant_list.append(toxoplasma_mutant)

    return toxoplasma_mutant_list
def load_antibody(raw_data, row):
    # move down to attribute count
    row += 1
    attribute_count = int(raw_data[row][1])

    antibody_list = []

    if attribute_count > 0:
        row += 1
        for i in range(0, attribute_count):
            # move down to data
            row += 1
            name = raw_data[row][0]
            name = name[1:-1]
            target_name = raw_data[row][1]
            target_name = target_name[1:-1]
            tagged = raw_data[row][2]
            tagged = tagged[1:-1]
            tag_target = raw_data[row][3]
            tag_target = tag_target[1:-1]
            source = raw_data[row][4]
            source = source[1:-1]
            catalog_number = raw_data[row][5]
            catalog_number = catalog_number[1:-1]
            epitope = raw_data[row][6]
            epitope = epitope[1:-1]
            lot_number = raw_data[row][7]
            lot_number = lot_number[1:-1]
            ifa_localization = raw_data[row][8]
            ifa_localization = ifa_localization[1:-1]
            chip_peaks = raw_data[row][9]
            chip_peaks = chip_peaks[1:-1]
            monoclonal = raw_data[row][10]
            monoclonal = monoclonal[1:-1]
            isotype = raw_data[row][11]
            isotype = isotype[1:-1]
            immunogen_source = raw_data[row][12]
            immunogen_source = immunogen_source[1:-1]
            conjugation = raw_data[row][13]
            conjugation = conjugation[1:-1]
            validated = raw_data[row][14]
            validated = validated[1:-1]
            url = raw_data[row][15]
            url = url[1:-1]
            animal_host = raw_data[row][16]
            animal_host = animal_host[1:-1]
            target_gene = raw_data[row][17]
            target_gene = target_gene[1:-1]

            # load ontology term
            animal_host = importer_ontology.get_ontology_term(
                "antibody", "antibody host organism", animal_host
            )  # get ontology term

            # load of Genes
            if target_gene:
                target_gene = importer_gene.get_gene(target_gene)

            if name and target_name and target_gene:
                antibody = importer_antibody.get_antibody_with_target_gene(
                    name,
                    target_name,
                    tagged,
                    tag_target,
                    source,
                    catalog_number,
                    epitope,
                    lot_number,
                    ifa_localization,
                    chip_peaks,
                    monoclonal,
                    isotype,
                    immunogen_source,
                    conjugation,
                    validated,
                    url,
                    animal_host,
                    target_gene,
                )  # return antibody
                antibody_list.append(antibody)
            elif name and target_name:
                antibody = importer_antibody.get_antibody_without_target_gene(
                    name,
                    target_name,
                    tagged,
                    tag_target,
                    source,
                    catalog_number,
                    epitope,
                    lot_number,
                    ifa_localization,
                    chip_peaks,
                    monoclonal,
                    isotype,
                    immunogen_source,
                    conjugation,
                    validated,
                    url,
                    animal_host,
                )  # return antibody
                antibody_list.append(antibody)

    return antibody_list