--- a +++ b/tests/test_multiomics.py @@ -0,0 +1,153 @@ +"""Tests for `openomics` package.""" + +from openomics import MessengerRNA, MicroRNA, LncRNA, Protein, SomaticMutation +from openomics import MultiOmics +from .test_clinical import * + +cohort_folder_path = "tests/data/TCGA_LUAD/" + + +@pytest.fixture +def generate_TCGA_LUAD_MessengerRNA(): + data = MessengerRNA( + data=os.path.join(cohort_folder_path, "LUAD__geneExp.txt"), + transpose=True, + usecols="GeneSymbol|TCGA", + gene_index="GeneSymbol", + gene_level="gene_name", + ) + data.drop_genes(data.expressions.columns[50:]) + data.drop_samples(data.expressions.index[:100]) + return data + + +@pytest.fixture +def generate_TCGA_LUAD_MessengerRNA_dask(): + data = MessengerRNA( + data=os.path.join(cohort_folder_path, "LUAD__geneExp.txt"), + transpose=True, + usecols="GeneSymbol|TCGA", + gene_index="GeneSymbol", + gene_level="gene_name", + npartitions=4, + ) + data.drop_genes(data.expressions.columns[50:]) + data.init_annotations() + return data + + +@pytest.fixture +def generate_TCGA_LUAD_MicroRNA(): + data = MicroRNA( + data=os.path.join(cohort_folder_path, "LUAD__miRNAExp__RPM.txt"), + transpose=True, + usecols="GeneSymbol|TCGA", + gene_index="GeneSymbol", + gene_level="gene_name", + ) + data.drop_genes(data.expressions.columns[50:]) + data.drop_samples(data.expressions.index[:100]) + return data + + +@pytest.fixture +def generate_TCGA_LUAD_LncRNA(): + data = LncRNA( + data=os.path.join(cohort_folder_path, "TCGA-rnaexpr.tsv"), + transpose=True, + usecols="Gene_ID|TCGA", + gene_index="Gene_ID", + gene_level="gene_id", + ) + data.drop_genes(data.expressions.columns[50:]) + data.drop_samples(data.expressions.index[:100]) + return data + + +@pytest.fixture +def generate_TCGA_LUAD_SomaticMutation(): + data = SomaticMutation( + data=os.path.join(cohort_folder_path, + "LUAD__somaticMutation_geneLevel.txt"), + transpose=True, + usecols="GeneSymbol|TCGA", + gene_index="gene_name", + ) + data.drop_genes(data.expressions.columns[50:]) + data.drop_samples(data.expressions.index[:100]) + return data + + +@pytest.fixture +def generate_TCGA_LUAD_Protein(): + data = Protein( + data=os.path.join(cohort_folder_path, "protein_RPPA.txt"), + transpose=True, + usecols="GeneSymbol|TCGA", + gene_index="GeneSymbol", + gene_level="protein_name", + ) + data.drop_genes(data.expressions.columns[50:]) + data.drop_samples(data.expressions.index[:100]) + return data + + +def test_import_MessengerRNA_Dask(generate_TCGA_LUAD_MessengerRNA_dask): + """ + Args: + generate_TCGA_LUAD_MessengerRNA_dask: + """ + assert generate_TCGA_LUAD_MessengerRNA_dask.expressions is not None + + +def test_import_expression_table_size(generate_TCGA_LUAD_MessengerRNA, generate_TCGA_clinical): + """ + Args: + generate_TCGA_LUAD_MessengerRNA: + """ + cohort_name = "LUAD" + luad_data = MultiOmics(cohort_name) + luad_data.add_clinical_data(generate_TCGA_clinical) + luad_data.add_omic(generate_TCGA_LUAD_MessengerRNA) + luad_data.build_samples() + print(luad_data.data.keys()) + assert (luad_data.data[MessengerRNA.name()].shape == + generate_TCGA_LUAD_MessengerRNA.expressions.shape) + + +@pytest.fixture +def generate_TCGA_LUAD( + generate_TCGA_clinical, + generate_TCGA_LUAD_MessengerRNA, + generate_TCGA_LUAD_MicroRNA, + generate_TCGA_LUAD_LncRNA, + generate_TCGA_LUAD_Protein, +): + """ + Args: + generate_TCGA_LUAD_MessengerRNA: + generate_TCGA_LUAD_MicroRNA: + generate_TCGA_LUAD_LncRNA: + generate_TCGA_LUAD_Protein: + """ + cohort_name = "LUAD" + luad_data = MultiOmics(cohort_name) + luad_data.add_clinical_data(generate_TCGA_clinical) + luad_data.add_omic(generate_TCGA_LUAD_MessengerRNA) + luad_data.add_omic(generate_TCGA_LUAD_MicroRNA) + luad_data.add_omic(generate_TCGA_LUAD_LncRNA) + luad_data.add_omic(generate_TCGA_LUAD_Protein) + return luad_data + + +def test_TCGA_LUAD_multiomics_transcriptomics(generate_TCGA_LUAD): + """ + Args: + generate_TCGA_LUAD: + """ + assert all(elem in generate_TCGA_LUAD.get_omics_list() for elem in [ + MessengerRNA.name(), + MicroRNA.name(), + LncRNA.name(), + Protein.name(), + ])