diff --git a/.gitignore b/.gitignore index 1223fd6..9588d62 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,13 @@ __pycache__/ 1.preprocess_data/labeled_frames_preprocessed #segmentation data 2.segment_nuclei/segmented +#DeepProfiler repo +3.extract_features/DeepProfiler +#DeepProfiler project images +3.extract_features/inputs/images +#DeepProfiler project locations +3.extract_features/inputs/locations +#DeepProfiler outputs +3.extract_features/outputs/efn_pretrained/features +3.extract_features/outputs/efn_pretrained/logs +3.extract_features/outputs/efn_pretrained/summaries diff --git a/2.segment_nuclei/README.md b/2.segment_nuclei/README.md index d62827d..3ec4e0d 100644 --- a/2.segment_nuclei/README.md +++ b/2.segment_nuclei/README.md @@ -5,7 +5,7 @@ In this module, we present our pipeline for segmenting nuclei from the mitosis m ### Segmentation -We use the CellPose nucleus model to segment the nuclei from each mitosis movie. +We use the CellPose segmentation algorithim to segment the nuclei from each mitosis movie. CellPose was first introduced in [Stringer, C., Wang, T., Michaelos, M. et al., 2020](https://doi.org/10.1038/s41592-020-01018-x) and we use the [python implementation](https://github.com/mouseland/cellpose). Stringer et al. trained the CellPose segmentation models on a diverse set of cell images and is therefore a good selection for our use case. diff --git a/3.extract_features/3.compile_deepprof__training_proj.sh b/3.extract_features/3.compile_deepprof__training_proj.sh new file mode 100644 index 0000000..f3fa5f3 --- /dev/null +++ b/3.extract_features/3.compile_deepprof__training_proj.sh @@ -0,0 +1,3 @@ +#!/bin/bash +jupyter nbconvert --to python compile_deepprof_training_proj.ipynb +python compile_deepprof_training_proj.py diff --git a/3.extract_features/3.feature_extraction_env.yml b/3.extract_features/3.feature_extraction_env.yml new file mode 100644 index 0000000..73e79e2 --- /dev/null +++ b/3.extract_features/3.feature_extraction_env.yml @@ -0,0 +1,7 @@ +name: 3.feature_extraction_mitocheck +channels: + - conda-forge +dependencies: + - conda-forge::python=3.8.13 + - conda-forge::jupyter=1.0.0 + - conda-forge::pandas=1.4.2 \ No newline at end of file diff --git a/3.extract_features/README.md b/3.extract_features/README.md new file mode 100644 index 0000000..a3c931f --- /dev/null +++ b/3.extract_features/README.md @@ -0,0 +1,67 @@ +# 3. Extract Features + +In this module, we present our pipeline for extracting features from the mitosis movies. +### Feature Extraction + +We use [DeepProfiler](https://github.com/cytomining/DeepProfiler), commit [`2fb3ed3`](https://github.com/cytomining/DeepProfiler/commit/2fb3ed3027cded6676b7e409687322ef67491ec7), to extract features from the mitosis movies. + +We use a [pretrained model](https://github.com/broadinstitute/luad-cell-painting/tree/main/outputs/efn_pretrained/checkpoint) from the [LUAD Cell Painting repository](https://github.com/broadinstitute/luad-cell-painting) with DeepProfiler. +[Caicedo et al., 2022](https://www.molbiolcell.org/doi/10.1091/mbc.E21-11-0538) trained this model to extract features from Cell Painting data. +This model extracts features from the DNA (nuclei) channel and is thus a good selection for our use case. + +## Step 1: Setup Feature Extraction Environment + +### Step 1a: Create Feature Extraction Environment + +```sh +# Run this command to create the conda environment for feature extraction +conda env create -f 3.feature_extraction_env.yml +``` + +### Step 1b: Activate Feature Extraction Environment + +```sh +# Run this command to activate the conda environment for Deep Profiler feature extraction + +conda activate 3.feature_extraction_mitocheck +``` + +## Step 2: Install DeepProfiler + +### Step 2a: Clone Repository + +Clone the DeepProfiler repository into 3.extract_features/ with + +```console +# Make sure you are located in 3.extract_features/ +cd 3.extract_features/ +git clone https://github.com/cytomining/DeepProfiler.git +``` + +### Step 2b: Install Repository + +Install the DeepProfiler repository with + +```console +cd DeepProfiler/ +pip install -e . +``` + +### Step 2c (Optional): Complete Tensorflow GPU Setup + +If you would like use Tensorflow GPU when using DeepProfiler, follow [these instructions](https://www.tensorflow.org/install/pip#3_gpu_setup) to complete the Tensorflow GPU setup. +We use Tensorflow GPU while processing mitocheck data. + +## Step 3: Compile DeepProfiler Project + +```bash +# Run this script to compile the DeepProfiler project +bash 3.compile_deepprof__training_proj.sh +``` + +## Step 4: Extract Features with DeepProfiler + +```sh +# Run this script to extract features with DeepProfiler +python3 -m deepprofiler --gpu 0 --exp efn_pretrained --root ./ --config mitocheck_profiling_config.json profile +``` \ No newline at end of file diff --git a/3.extract_features/compile_deepprof_training_proj.ipynb b/3.extract_features/compile_deepprof_training_proj.ipynb new file mode 100644 index 0000000..a796d16 --- /dev/null +++ b/3.extract_features/compile_deepprof_training_proj.ipynb @@ -0,0 +1,236 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# DeepProfiler Project Compiler\n", + "### Compile a [DeepProfiler Project](https://cytomining.github.io/DeepProfiler-handbook/docs/2.%20Project%20structure.html) from training data\n", + "\n", + "\n", + "#### Import libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import pathlib\n", + "\n", + "from PIL import Image\n", + "import shutil" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Define Functions for Compiling Project" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def get_gene(plate: str, well:str, annoations: pd.DataFrame) -> str:\n", + " \"\"\"get gene for a particular well from a particular plate\n", + "\n", + " Args:\n", + " plate (string): plate name\n", + " well (string): well name\n", + " annoations (pandas.DataFrame): annoations loaded from screen metadata annotations.csv.gz file\n", + "\n", + " Returns:\n", + " string: gene targeted to be changed for this particular plate\n", + " \"\"\"\n", + " target_gene = annoations[(annoations[\"Plate\"]==plate) & (annoations[\"Well Number\"]==str(int(well)))][\"Original Gene Target\"].item()\n", + " if str(target_gene) == \"nan\":\n", + " target_gene = \"failed_QC\"\n", + " return target_gene\n", + "\n", + "def compile_index_csv(preproc_training_path: pathlib.Path, annotations_path: pathlib.Path, save_path: pathlib.Path):\n", + " \"\"\"compile index.csv from training data used by DeepProfiler, save index.csv to save_path\n", + "\n", + " Args:\n", + " preproc_training_path (pathlib.Path): path to preprocessed images folder\n", + " annotations_path (pathlib.Path): path to screen annotations.csv.gz file\n", + " save_path (pathlib.Path): path to save folder for index.csv file\n", + " \"\"\"\n", + " index_csv_data = []\n", + " annoations = pd.read_csv(annotations_path, compression='gzip', dtype=object)\n", + " for plate_path in preproc_training_path.iterdir():\n", + " for well_path in plate_path.iterdir():\n", + " for frame_path in well_path.iterdir():\n", + " for file_path in frame_path.iterdir():\n", + " index_csv_line = {\n", + " \"Metadata_Plate\": plate_path.name, \n", + " \"Metadata_Well\": f\"{well_path.name}_{frame_path.name}\", \n", + " \"Metadata_Site\": 1, \n", + " \"Plate_Map_Name\": f\"{plate_path.name}_{well_path.name}_{frame_path.name}\",\n", + " \"DNA\": f\"{plate_path.name}/{well_path.name}/{frame_path.name}/{file_path.name}\",\n", + " \"Gene\": get_gene(plate_path.name, well_path.name, annoations),\n", + " \"Gene_Replicate\": 1\n", + " }\n", + " index_csv_data.append(index_csv_line)\n", + " index_csv_data = pd.DataFrame(index_csv_data)\n", + " save_path.parents[0].mkdir(parents=True, exist_ok=True)\n", + " index_csv_data.to_csv(save_path, index=False)\n", + " \n", + "def compile_training_locations(index_csv_path: pathlib.Path, segmentations_path: pathlib.Path, save_path: pathlib.Path):\n", + " \"\"\"compile well_frame-site-Nuclei.csv file with cell locations, save to in save_path/plate/ folder\n", + "\n", + " Args:\n", + " index_csv_path (pathlib.Path): path to index.csv file for DeepProfiler project\n", + " segmentations_path (pathlib.Path): path to segmentations folder with .tsv locations files\n", + " save_path (pathlib.Path): path to save location files\n", + " \"\"\"\n", + " index_csv = pd.read_csv(index_csv_path)\n", + " for index, row in index_csv.iterrows():\n", + " plate = row[\"Metadata_Plate\"]\n", + " well_frame = row[\"Metadata_Well\"]\n", + " well = well_frame.split(\"_\")[0]\n", + " frame = well_frame.split(\"_\")[1]\n", + " site = row[\"Metadata_Site\"]\n", + " \n", + " frame_segments_path = pathlib.Path(f\"{segmentations_path}/{plate}/{well}/{frame}/{plate}_{well}_{frame}.tsv\")\n", + " try:\n", + " frame_segments = pd.read_csv(frame_segments_path, delimiter=\"\\t\")\n", + " frame_segments = frame_segments[['Location_Center_X', 'Location_Center_Y']]\n", + " frame_segments = frame_segments.rename(columns={'Location_Center_X': 'Nuclei_Location_Center_X', 'Location_Center_Y': 'Nuclei_Location_Center_Y'})\n", + " \n", + " locations_save_path = pathlib.Path(f\"{save_path}/{plate}/{well_frame}-{site}-Nuclei.csv\")\n", + " locations_save_path.parents[0].mkdir(parents=True, exist_ok=True)\n", + " frame_segments.to_csv(locations_save_path, index=False)\n", + " except FileNotFoundError:\n", + " print(f\"No tsv for {frame_segments_path}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Compile index.csv file\n", + "\n", + "DeepProfiler expects to find an index.csv file with metadata for the images that need to be processed.\n", + "In this step we compile that index.csv file and save it to inputs/metadata/index.csv" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done compiling index.csv!\n" + ] + } + ], + "source": [ + "preproc_training_path = pathlib.Path(\"../1.preprocess_data/labeled_frames_preprocessed/\")\n", + "annoations_path = pathlib.Path(\"idr0013-screenA-annotation.csv.gz\")\n", + "save_path = pathlib.Path(\"inputs/metadata/index.csv\")\n", + "compile_index_csv(preproc_training_path, annoations_path, save_path)\n", + "print(\"Done compiling index.csv!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Copy images to DeepProfiler Project\n", + "\n", + "DeepProfiler expects to find the images that need to be processed in inputs/images/.\n", + "In this step we copy the preprocessed frames from the 1.preprocess_data module to inputs/images/." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done copying images!\n" + ] + } + ], + "source": [ + "preproc_training_path = pathlib.Path(\"../1.preprocess_data/labeled_frames_preprocessed/\")\n", + "deepprof_images_path = pathlib.Path(\"inputs/images/\")\n", + "shutil.copytree(preproc_training_path, deepprof_images_path)\n", + "print(\"Done copying images!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Compile Training Locations Data\n", + "\n", + "DeepProfiler expects to find nuclei location data in inputs/locations/Plate/WellName-Site-Nuclei.csv\n", + "In this step we compile the location data files and save them to their respective locations." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No tsv for ../2.segment_nuclei/segmented/LT0144_01/166/68/LT0144_01_166_68.tsv\n", + "No tsv for ../2.segment_nuclei/segmented/LT0109_38/349/25/LT0109_38_349_25.tsv\n", + "No tsv for ../2.segment_nuclei/segmented/LT0013_42/107/39/LT0013_42_107_39.tsv\n", + "Done compiling locations!\n" + ] + } + ], + "source": [ + "index_csv_path = pathlib.Path(\"inputs/metadata/index.csv\")\n", + "segmentations_path = pathlib.Path(\"../2.segment_nuclei/segmented/\")\n", + "save_path = pathlib.Path(\"inputs/locations/\")\n", + "compile_training_locations(index_csv_path, segmentations_path, save_path)\n", + "print(\"Done compiling locations!\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.8.13 ('3.feature_extraction_mitocheck')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "aff5294438fc2797d595e1ff21d50e9f93b16a791927dfa0e016f7db3c3fedca" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/3.extract_features/compile_deepprof_training_proj.py b/3.extract_features/compile_deepprof_training_proj.py new file mode 100644 index 0000000..c4e4707 --- /dev/null +++ b/3.extract_features/compile_deepprof_training_proj.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # DeepProfiler Project Compiler +# ### Compile a [DeepProfiler Project](https://cytomining.github.io/DeepProfiler-handbook/docs/2.%20Project%20structure.html) from training data +# +# +# #### Import libraries + +# In[1]: + + +import pandas as pd +import pathlib + +from PIL import Image +import shutil + + +# #### Define Functions for Compiling Project + +# In[2]: + + +def get_gene(plate: str, well:str, annoations: pd.DataFrame) -> str: + """get gene for a particular well from a particular plate + + Args: + plate (string): plate name + well (string): well name + annoations (pandas.DataFrame): annoations loaded from screen metadata annotations.csv.gz file + + Returns: + string: gene targeted to be changed for this particular plate + """ + target_gene = annoations[(annoations["Plate"]==plate) & (annoations["Well Number"]==str(int(well)))]["Original Gene Target"].item() + if str(target_gene) == "nan": + target_gene = "failed_QC" + return target_gene + +def compile_index_csv(preproc_training_path: pathlib.Path, annotations_path: pathlib.Path, save_path: pathlib.Path): + """compile index.csv from training data used by DeepProfiler, save index.csv to save_path + + Args: + preproc_training_path (pathlib.Path): path to preprocessed images folder + annotations_path (pathlib.Path): path to screen annotations.csv.gz file + save_path (pathlib.Path): path to save folder for index.csv file + """ + index_csv_data = [] + annoations = pd.read_csv(annotations_path, compression='gzip', dtype=object) + for plate_path in preproc_training_path.iterdir(): + for well_path in plate_path.iterdir(): + for frame_path in well_path.iterdir(): + for file_path in frame_path.iterdir(): + index_csv_line = { + "Metadata_Plate": plate_path.name, + "Metadata_Well": f"{well_path.name}_{frame_path.name}", + "Metadata_Site": 1, + "Plate_Map_Name": f"{plate_path.name}_{well_path.name}_{frame_path.name}", + "DNA": f"{plate_path.name}/{well_path.name}/{frame_path.name}/{file_path.name}", + "Gene": get_gene(plate_path.name, well_path.name, annoations), + "Gene_Replicate": 1 + } + index_csv_data.append(index_csv_line) + index_csv_data = pd.DataFrame(index_csv_data) + save_path.parents[0].mkdir(parents=True, exist_ok=True) + index_csv_data.to_csv(save_path, index=False) + +def compile_training_locations(index_csv_path: pathlib.Path, segmentations_path: pathlib.Path, save_path: pathlib.Path): + """compile well_frame-site-Nuclei.csv file with cell locations, save to in save_path/plate/ folder + + Args: + index_csv_path (pathlib.Path): path to index.csv file for DeepProfiler project + segmentations_path (pathlib.Path): path to segmentations folder with .tsv locations files + save_path (pathlib.Path): path to save location files + """ + index_csv = pd.read_csv(index_csv_path) + for index, row in index_csv.iterrows(): + plate = row["Metadata_Plate"] + well_frame = row["Metadata_Well"] + well = well_frame.split("_")[0] + frame = well_frame.split("_")[1] + site = row["Metadata_Site"] + + frame_segments_path = pathlib.Path(f"{segmentations_path}/{plate}/{well}/{frame}/{plate}_{well}_{frame}.tsv") + try: + frame_segments = pd.read_csv(frame_segments_path, delimiter="\t") + frame_segments = frame_segments[['Location_Center_X', 'Location_Center_Y']] + frame_segments = frame_segments.rename(columns={'Location_Center_X': 'Nuclei_Location_Center_X', 'Location_Center_Y': 'Nuclei_Location_Center_Y'}) + + locations_save_path = pathlib.Path(f"{save_path}/{plate}/{well_frame}-{site}-Nuclei.csv") + locations_save_path.parents[0].mkdir(parents=True, exist_ok=True) + frame_segments.to_csv(locations_save_path, index=False) + except FileNotFoundError: + print(f"No tsv for {frame_segments_path}") + + +# #### Compile index.csv file +# +# DeepProfiler expects to find an index.csv file with metadata for the images that need to be processed. +# In this step we compile that index.csv file and save it to inputs/metadata/index.csv + +# In[3]: + + +preproc_training_path = pathlib.Path("../1.preprocess_data/labeled_frames_preprocessed/") +annoations_path = pathlib.Path("idr0013-screenA-annotation.csv.gz") +save_path = pathlib.Path("inputs/metadata/index.csv") +compile_index_csv(preproc_training_path, annoations_path, save_path) +print("Done compiling index.csv!") + + +# #### Copy images to DeepProfiler Project +# +# DeepProfiler expects to find the images that need to be processed in inputs/images/. +# In this step we copy the preprocessed frames from the 1.preprocess_data module to inputs/images/. + +# In[4]: + + +preproc_training_path = pathlib.Path("../1.preprocess_data/labeled_frames_preprocessed/") +deepprof_images_path = pathlib.Path("inputs/images/") +shutil.copytree(preproc_training_path, deepprof_images_path) +print("Done copying images!") + + +# #### Compile Training Locations Data +# +# DeepProfiler expects to find nuclei location data in inputs/locations/Plate/WellName-Site-Nuclei.csv +# In this step we compile the location data files and save them to their respective locations. + +# In[5]: + + +index_csv_path = pathlib.Path("inputs/metadata/index.csv") +segmentations_path = pathlib.Path("../2.segment_nuclei/segmented/") +save_path = pathlib.Path("inputs/locations/") +compile_training_locations(index_csv_path, segmentations_path, save_path) +print("Done compiling locations!") + diff --git a/3.extract_features/idr0013-screenA-annotation.csv.gz b/3.extract_features/idr0013-screenA-annotation.csv.gz new file mode 100644 index 0000000..beb356d Binary files /dev/null and b/3.extract_features/idr0013-screenA-annotation.csv.gz differ diff --git a/3.extract_features/inputs/config/mitocheck_profiling_config.json b/3.extract_features/inputs/config/mitocheck_profiling_config.json new file mode 100644 index 0000000..68e9039 --- /dev/null +++ b/3.extract_features/inputs/config/mitocheck_profiling_config.json @@ -0,0 +1,84 @@ +{ + "dataset": { + "metadata": { + "label_field": "Gene", + "control_value": "EMPTY" + }, + "images": { + "channels": [ + "DNA" + ], + "file_format": "tif", + "bits": 8, + "width": 1344, + "height": 1024 + }, + "locations": { + "mode": "single_cells", + "box_size": 128, + "area_coverage": 0.75, + "mask_objects": false + } + }, + "prepare": { + "illumination_correction": { + "down_scale_factor": 4, + "median_filter_size": 24 + }, + "compression": { + "implement": false, + "scaling_factor": 1.0 + } + }, + "train": { + "partition": { + "targets": [ + "Gene" + ], + "split_field": "Gene_Replicate", + "training_values": [ + 0 + ], + "validation_values": [ + 1 + ] + }, + "model": { + "name": "efficientnet", + "crop_generator": "repeat_channel_crop_generator", + "metrics": [ + "accuracy", + "top_k" + ], + "epochs": 100, + "initialization": "ImageNet", + "params": { + "label_smoothing": 0.0, + "learning_rate": 0.005, + "batch_size": 64, + "conv_blocks": 0, + "feature_dim": 256, + "pooling": "avg" + }, + "lr_schedule": "cosine" + }, + "sampling": { + "factor": 1, + "workers": 4, + "cache_size": 15000 + }, + "validation": { + "frequency": 2, + "top_k": 5, + "batch_size": 32, + "frame": "val", + "sample_first_crops": true + } + }, + "profile": { + "use_pretrained_input_size": 224, + "feature_layer": "avg_pool", + "checkpoint": "efficientnet-b0_weights_tf_dim_ordering_tf_kernels_autoaugment.h5", + "batch_size": 1024 + } +} diff --git a/3.extract_features/inputs/metadata/index.csv b/3.extract_features/inputs/metadata/index.csv new file mode 100644 index 0000000..f63af93 --- /dev/null +++ b/3.extract_features/inputs/metadata/index.csv @@ -0,0 +1,202 @@ +Metadata_Plate,Metadata_Well,Metadata_Site,Plate_Map_Name,DNA,Gene,Gene_Replicate +LT0043_48,166_48,1,LT0043_48_166_48,LT0043_48/166/48/LT0043_48_166_48.tif,OGG1,1 +LT0043_48,166_55,1,LT0043_48_166_55,LT0043_48/166/55/LT0043_48_166_55.tif,OGG1,1 +LT0043_48,166_36,1,LT0043_48_166_36,LT0043_48/166/36/LT0043_48_166_36.tif,OGG1,1 +LT0043_48,166_74,1,LT0043_48_166_74,LT0043_48/166/74/LT0043_48_166_74.tif,OGG1,1 +LT0043_48,166_44,1,LT0043_48_166_44,LT0043_48/166/44/LT0043_48_166_44.tif,OGG1,1 +LT0043_48,166_71,1,LT0043_48_166_71,LT0043_48/166/71/LT0043_48_166_71.tif,OGG1,1 +LT0043_48,166_56,1,LT0043_48_166_56,LT0043_48/166/56/LT0043_48_166_56.tif,OGG1,1 +LT0043_48,166_45,1,LT0043_48_166_45,LT0043_48/166/45/LT0043_48_166_45.tif,OGG1,1 +LT0043_48,166_47,1,LT0043_48_166_47,LT0043_48/166/47/LT0043_48_166_47.tif,OGG1,1 +LT0043_48,166_57,1,LT0043_48_166_57,LT0043_48/166/57/LT0043_48_166_57.tif,OGG1,1 +LT0043_48,166_52,1,LT0043_48_166_52,LT0043_48/166/52/LT0043_48_166_52.tif,OGG1,1 +LT0043_48,166_65,1,LT0043_48_166_65,LT0043_48/166/65/LT0043_48_166_65.tif,OGG1,1 +LT0043_48,166_84,1,LT0043_48_166_84,LT0043_48/166/84/LT0043_48_166_84.tif,OGG1,1 +LT0043_48,166_79,1,LT0043_48_166_79,LT0043_48/166/79/LT0043_48_166_79.tif,OGG1,1 +LT0043_48,166_64,1,LT0043_48_166_64,LT0043_48/166/64/LT0043_48_166_64.tif,OGG1,1 +LT0043_48,166_37,1,LT0043_48_166_37,LT0043_48/166/37/LT0043_48_166_37.tif,OGG1,1 +LT0017_19,365_93,1,LT0017_19_365_93,LT0017_19/365/93/LT0017_19_365_93.tif,KIF20A,1 +LT0017_19,365_83,1,LT0017_19_365_83,LT0017_19/365/83/LT0017_19_365_83.tif,KIF20A,1 +LT0017_19,365_65,1,LT0017_19_365_65,LT0017_19/365/65/LT0017_19_365_65.tif,KIF20A,1 +LT0064_14,003_22,1,LT0064_14_003_22,LT0064_14/003/22/LT0064_14_003_22.tif,TPX2,1 +LT0064_14,003_54,1,LT0064_14_003_54,LT0064_14/003/54/LT0064_14_003_54.tif,TPX2,1 +LT0064_14,003_27,1,LT0064_14_003_27,LT0064_14/003/27/LT0064_14_003_27.tif,TPX2,1 +LT0042_10,044_28,1,LT0042_10_044_28,LT0042_10/044/28/LT0042_10_044_28.tif,CGI-63,1 +LT0042_10,144_88,1,LT0042_10_144_88,LT0042_10/144/88/LT0042_10_144_88.tif,POLG,1 +LT0042_10,144_36,1,LT0042_10_144_36,LT0042_10/144/36/LT0042_10_144_36.tif,POLG,1 +LT0042_10,144_50,1,LT0042_10_144_50,LT0042_10/144/50/LT0042_10_144_50.tif,POLG,1 +LT0096_33,255_49,1,LT0096_33_255_49,LT0096_33/255/49/LT0096_33_255_49.tif,ENSG00000198517,1 +LT0096_33,255_38,1,LT0096_33_255_38,LT0096_33/255/38/LT0096_33_255_38.tif,ENSG00000198517,1 +LT0096_33,255_52,1,LT0096_33_255_52,LT0096_33/255/52/LT0096_33_255_52.tif,ENSG00000198517,1 +LT0030_17,184_41,1,LT0030_17_184_41,LT0030_17/184/41/LT0030_17_184_41.tif,RGR,1 +LT0030_17,184_36,1,LT0030_17_184_36,LT0030_17/184/36/LT0030_17_184_36.tif,RGR,1 +LT0030_17,184_59,1,LT0030_17_184_59,LT0030_17/184/59/LT0030_17_184_59.tif,RGR,1 +LT0030_17,184_46,1,LT0030_17_184_46,LT0030_17/184/46/LT0030_17_184_46.tif,RGR,1 +LT0030_17,184_87,1,LT0030_17_184_87,LT0030_17/184/87/LT0030_17_184_87.tif,RGR,1 +LT0030_17,184_50,1,LT0030_17_184_50,LT0030_17/184/50/LT0030_17_184_50.tif,RGR,1 +LT0030_17,184_39,1,LT0030_17_184_39,LT0030_17/184/39/LT0030_17_184_39.tif,RGR,1 +LT0101_01,277_74,1,LT0101_01_277_74,LT0101_01/277/74/LT0101_01_277_74.tif,failed_QC,1 +LT0101_01,277_79,1,LT0101_01_277_79,LT0101_01/277/79/LT0101_01_277_79.tif,failed_QC,1 +LT0101_01,277_66,1,LT0101_01_277_66,LT0101_01/277/66/LT0101_01_277_66.tif,failed_QC,1 +LT0144_01,166_68,1,LT0144_01_166_68,LT0144_01/166/68/LT0144_01_166_68.tif,ENSG00000179698,1 +LT0144_01,166_27,1,LT0144_01_166_27,LT0144_01/166/27/LT0144_01_166_27.tif,ENSG00000179698,1 +LT0144_01,166_34,1,LT0144_01_166_34,LT0144_01/166/34/LT0144_01_166_34.tif,ENSG00000179698,1 +LT0144_01,166_50,1,LT0144_01_166_50,LT0144_01/166/50/LT0144_01_166_50.tif,ENSG00000179698,1 +LT0094_44,319_74,1,LT0094_44_319_74,LT0094_44/319/74/LT0094_44_319_74.tif,ENSG00000177426,1 +LT0094_44,319_57,1,LT0094_44_319_57,LT0094_44/319/57/LT0094_44_319_57.tif,ENSG00000177426,1 +LT0023_04,005_72,1,LT0023_04_005_72,LT0023_04/005/72/LT0023_04_005_72.tif,MYST1,1 +LT0023_04,005_8,1,LT0023_04_005_8,LT0023_04/005/8/LT0023_04_005_8.tif,MYST1,1 +LT0023_04,005_30,1,LT0023_04_005_30,LT0023_04/005/30/LT0023_04_005_30.tif,MYST1,1 +LT0023_04,005_7,1,LT0023_04_005_7,LT0023_04/005/7/LT0023_04_005_7.tif,MYST1,1 +LT0023_04,005_51,1,LT0023_04_005_51,LT0023_04/005/51/LT0023_04_005_51.tif,MYST1,1 +LT0023_04,005_64,1,LT0023_04_005_64,LT0023_04/005/64/LT0023_04_005_64.tif,MYST1,1 +LT0023_04,005_87,1,LT0023_04_005_87,LT0023_04/005/87/LT0023_04_005_87.tif,MYST1,1 +LT0023_04,005_50,1,LT0023_04_005_50,LT0023_04/005/50/LT0023_04_005_50.tif,MYST1,1 +LT0038_01,245_72,1,LT0038_01_245_72,LT0038_01/245/72/LT0038_01_245_72.tif,ZADH1,1 +LT0038_01,245_22,1,LT0038_01_245_22,LT0038_01/245/22/LT0038_01_245_22.tif,ZADH1,1 +LT0038_01,245_40,1,LT0038_01_245_40,LT0038_01/245/40/LT0038_01_245_40.tif,ZADH1,1 +LT0038_01,245_46,1,LT0038_01_245_46,LT0038_01/245/46/LT0038_01_245_46.tif,ZADH1,1 +LT0038_01,245_81,1,LT0038_01_245_81,LT0038_01/245/81/LT0038_01_245_81.tif,ZADH1,1 +LT0014_12,159_93,1,LT0014_12_159_93,LT0014_12/159/93/LT0014_12_159_93.tif,TFR2,1 +LT0014_12,159_70,1,LT0014_12_159_70,LT0014_12/159/70/LT0014_12_159_70.tif,TFR2,1 +LT0014_12,159_77,1,LT0014_12_159_77,LT0014_12/159/77/LT0014_12_159_77.tif,TFR2,1 +LT0014_12,159_59,1,LT0014_12_159_59,LT0014_12/159/59/LT0014_12_159_59.tif,TFR2,1 +LT0028_14,129_55,1,LT0028_14_129_55,LT0028_14/129/55/LT0028_14_129_55.tif,CDKL5,1 +LT0028_14,129_91,1,LT0028_14_129_91,LT0028_14/129/91/LT0028_14_129_91.tif,CDKL5,1 +LT0028_14,129_66,1,LT0028_14_129_66,LT0028_14/129/66/LT0028_14_129_66.tif,CDKL5,1 +LT0084_46,003_80,1,LT0084_46_003_80,LT0084_46/003/80/LT0084_46_003_80.tif,ENSG00000138180,1 +LT0084_46,003_56,1,LT0084_46_003_56,LT0084_46/003/56/LT0084_46_003_56.tif,ENSG00000138180,1 +LT0084_46,003_91,1,LT0084_46_003_91,LT0084_46/003/91/LT0084_46_003_91.tif,ENSG00000138180,1 +LT0084_46,003_46,1,LT0084_46_003_46,LT0084_46/003/46/LT0084_46_003_46.tif,ENSG00000138180,1 +LT0066_19,287_48,1,LT0066_19_287_48,LT0066_19/287/48/LT0066_19_287_48.tif,ch-TOG,1 +LT0066_19,287_93,1,LT0066_19_287_93,LT0066_19/287/93/LT0066_19_287_93.tif,ch-TOG,1 +LT0066_19,287_22,1,LT0066_19_287_22,LT0066_19/287/22/LT0066_19_287_22.tif,ch-TOG,1 +LT0066_19,287_1,1,LT0066_19_287_1,LT0066_19/287/1/LT0066_19_287_1.tif,ch-TOG,1 +LT0066_19,287_14,1,LT0066_19_287_14,LT0066_19/287/14/LT0066_19_287_14.tif,ch-TOG,1 +LT0066_19,287_75,1,LT0066_19_287_75,LT0066_19/287/75/LT0066_19_287_75.tif,ch-TOG,1 +LT0066_19,287_87,1,LT0066_19_287_87,LT0066_19/287/87/LT0066_19_287_87.tif,ch-TOG,1 +LT0066_19,287_9,1,LT0066_19_287_9,LT0066_19/287/9/LT0066_19_287_9.tif,ch-TOG,1 +LT0027_44,030_74,1,LT0027_44_030_74,LT0027_44/030/74/LT0027_44_030_74.tif,ECT2,1 +LT0027_44,030_58,1,LT0027_44_030_58,LT0027_44/030/58/LT0027_44_030_58.tif,ECT2,1 +LT0027_44,030_86,1,LT0027_44_030_86,LT0027_44/030/86/LT0027_44_030_86.tif,ECT2,1 +LT0027_44,292_80,1,LT0027_44_292_80,LT0027_44/292/80/LT0027_44_292_80.tif,CDK4,1 +LT0027_44,292_88,1,LT0027_44_292_88,LT0027_44/292/88/LT0027_44_292_88.tif,CDK4,1 +LT0027_44,292_47,1,LT0027_44_292_47,LT0027_44/292/47/LT0027_44_292_47.tif,CDK4,1 +LT0027_44,292_65,1,LT0027_44_292_65,LT0027_44/292/65/LT0027_44_292_65.tif,CDK4,1 +LT0027_44,292_92,1,LT0027_44_292_92,LT0027_44/292/92/LT0027_44_292_92.tif,CDK4,1 +LT0067_02,099_19,1,LT0067_02_099_19,LT0067_02/099/19/LT0067_02_099_19.tif,ANLN,1 +LT0067_02,099_77,1,LT0067_02_099_77,LT0067_02/099/77/LT0067_02_099_77.tif,ANLN,1 +LT0067_02,099_92,1,LT0067_02_099_92,LT0067_02/099/92/LT0067_02_099_92.tif,ANLN,1 +LT0067_02,099_37,1,LT0067_02_099_37,LT0067_02/099/37/LT0067_02_099_37.tif,ANLN,1 +LT0093_17,114_72,1,LT0093_17_114_72,LT0093_17/114/72/LT0093_17_114_72.tif,ENSG00000174442,1 +LT0093_17,114_88,1,LT0093_17_114_88,LT0093_17/114/88/LT0093_17_114_88.tif,ENSG00000174442,1 +LT0093_17,114_45,1,LT0093_17_114_45,LT0093_17/114/45/LT0093_17_114_45.tif,ENSG00000174442,1 +LT0093_17,114_83,1,LT0093_17_114_83,LT0093_17/114/83/LT0093_17_114_83.tif,ENSG00000174442,1 +LT0093_17,114_79,1,LT0093_17_114_79,LT0093_17/114/79/LT0093_17_114_79.tif,ENSG00000174442,1 +LT0093_17,114_46,1,LT0093_17_114_46,LT0093_17/114/46/LT0093_17_114_46.tif,ENSG00000174442,1 +LT0093_17,114_87,1,LT0093_17_114_87,LT0093_17/114/87/LT0093_17_114_87.tif,ENSG00000174442,1 +LT0038_27,250_8,1,LT0038_27_250_8,LT0038_27/250/8/LT0038_27_250_8.tif,BUB1B,1 +LT0065_06,054_93,1,LT0065_06_054_93,LT0065_06/054/93/LT0065_06_054_93.tif,CENPE,1 +LT0026_22,258_67,1,LT0026_22_258_67,LT0026_22/258/67/LT0026_22_258_67.tif,LCK,1 +LT0026_22,258_85,1,LT0026_22_258_85,LT0026_22/258/85/LT0026_22_258_85.tif,LCK,1 +LT0026_22,258_37,1,LT0026_22_258_37,LT0026_22/258/37/LT0026_22_258_37.tif,LCK,1 +LT0109_38,349_25,1,LT0109_38_349_25,LT0109_38/349/25/LT0109_38_349_25.tif,Eg5,1 +LT0109_38,349_88,1,LT0109_38_349_88,LT0109_38/349/88/LT0109_38_349_88.tif,Eg5,1 +LT0109_38,349_69,1,LT0109_38_349_69,LT0109_38/349/69/LT0109_38_349_69.tif,Eg5,1 +LT0109_38,338_80,1,LT0109_38_338_80,LT0109_38/338/80/LT0109_38_338_80.tif,Eg5,1 +LT0109_38,338_7,1,LT0109_38_338_7,LT0109_38/338/7/LT0109_38_338_7.tif,Eg5,1 +LT0109_38,338_27,1,LT0109_38_338_27,LT0109_38/338/27/LT0109_38_338_27.tif,Eg5,1 +LT0109_38,338_31,1,LT0109_38_338_31,LT0109_38/338/31/LT0109_38_338_31.tif,Eg5,1 +LT0109_38,381_87,1,LT0109_38_381_87,LT0109_38/381/87/LT0109_38_381_87.tif,COPB,1 +LT0109_38,381_66,1,LT0109_38_381_66,LT0109_38/381/66/LT0109_38_381_66.tif,COPB,1 +LT0089_01,175_93,1,LT0089_01_175_93,LT0089_01/175/93/LT0089_01_175_93.tif,ENSG00000159763,1 +LT0089_01,175_44,1,LT0089_01_175_44,LT0089_01/175/44/LT0089_01_175_44.tif,ENSG00000159763,1 +LT0089_01,175_71,1,LT0089_01_175_71,LT0089_01/175/71/LT0089_01_175_71.tif,ENSG00000159763,1 +LT0089_01,175_60,1,LT0089_01_175_60,LT0089_01/175/60/LT0089_01_175_60.tif,ENSG00000159763,1 +LT0089_01,175_39,1,LT0089_01_175_39,LT0089_01/175/39/LT0089_01_175_39.tif,ENSG00000159763,1 +LT0105_04,144_93,1,LT0105_04_144_93,LT0105_04/144/93/LT0105_04_144_93.tif,ENSG00000139974,1 +LT0132_31,053_51,1,LT0132_31_053_51,LT0132_31/053/51/LT0132_31_053_51.tif,ENSG00000123416,1 +LT0132_31,053_42,1,LT0132_31_053_42,LT0132_31/053/42/LT0132_31_053_42.tif,ENSG00000123416,1 +LT0132_31,053_75,1,LT0132_31_053_75,LT0132_31/053/75/LT0132_31_053_75.tif,ENSG00000123416,1 +LT0132_31,053_63,1,LT0132_31_053_63,LT0132_31/053/63/LT0132_31_053_63.tif,ENSG00000123416,1 +LT0132_31,053_33,1,LT0132_31_053_33,LT0132_31/053/33/LT0132_31_053_33.tif,ENSG00000123416,1 +LT0132_31,053_37,1,LT0132_31_053_37,LT0132_31/053/37/LT0132_31_053_37.tif,ENSG00000123416,1 +LT0066_23,163_51,1,LT0066_23_163_51,LT0066_23/163/51/LT0066_23_163_51.tif,HCFC1,1 +LT0048_14,335_1,1,LT0048_14_335_1,LT0048_14/335/1/LT0048_14_335_1.tif,PLK1,1 +LT0048_14,335_56,1,LT0048_14_335_56,LT0048_14/335/56/LT0048_14_335_56.tif,PLK1,1 +LT0048_14,335_13,1,LT0048_14_335_13,LT0048_14/335/13/LT0048_14_335_13.tif,PLK1,1 +LT0048_14,335_29,1,LT0048_14_335_29,LT0048_14/335/29/LT0048_14_335_29.tif,PLK1,1 +LT0098_13,021_21,1,LT0098_13_021_21,LT0098_13/021/21/LT0098_13_021_21.tif,ENSG00000110675,1 +LT0098_13,021_27,1,LT0098_13_021_27,LT0098_13/021/27/LT0098_13_021_27.tif,ENSG00000110675,1 +LT0098_13,021_77,1,LT0098_13_021_77,LT0098_13/021/77/LT0098_13_021_77.tif,ENSG00000110675,1 +LT0098_13,021_33,1,LT0098_13_021_33,LT0098_13/021/33/LT0098_13_021_33.tif,ENSG00000110675,1 +LT0039_45,136_62,1,LT0039_45_136_62,LT0039_45/136/62/LT0039_45_136_62.tif,MAPKAPK5,1 +LT0039_45,136_53,1,LT0039_45_136_53,LT0039_45/136/53/LT0039_45_136_53.tif,MAPKAPK5,1 +LT0013_38,042_47,1,LT0013_38_042_47,LT0013_38/042/47/LT0013_38_042_47.tif,KIF14,1 +LT0013_38,042_75,1,LT0013_38_042_75,LT0013_38/042/75/LT0013_38_042_75.tif,KIF14,1 +LT0041_32,132_68,1,LT0041_32_132_68,LT0041_32/132/68/LT0041_32_132_68.tif,TRPV1,1 +LT0041_32,132_74,1,LT0041_32_132_74,LT0041_32/132/74/LT0041_32_132_74.tif,TRPV1,1 +LT0041_32,132_65,1,LT0041_32_132_65,LT0041_32/132/65/LT0041_32_132_65.tif,TRPV1,1 +LT0038_08,250_80,1,LT0038_08_250_80,LT0038_08/250/80/LT0038_08_250_80.tif,BUB1B,1 +LT0038_08,250_54,1,LT0038_08_250_54,LT0038_08/250/54/LT0038_08_250_54.tif,BUB1B,1 +LT0157_04,005_2,1,LT0157_04_005_2,LT0157_04/005/2/LT0157_04_005_2.tif,ENSG00000175216,1 +LT0157_04,005_47,1,LT0157_04_005_47,LT0157_04/005/47/LT0157_04_005_47.tif,ENSG00000175216,1 +LT0157_04,005_78,1,LT0157_04_005_78,LT0157_04/005/78/LT0157_04_005_78.tif,ENSG00000175216,1 +LT0157_04,005_61,1,LT0157_04_005_61,LT0157_04/005/61/LT0157_04_005_61.tif,ENSG00000175216,1 +LT0157_04,005_17,1,LT0157_04_005_17,LT0157_04/005/17/LT0157_04_005_17.tif,ENSG00000175216,1 +LT0065_04,020_72,1,LT0065_04_020_72,LT0065_04/020/72/LT0065_04_020_72.tif,CDCA8,1 +LT0065_04,020_49,1,LT0065_04_020_49,LT0065_04/020/49/LT0065_04_020_49.tif,CDCA8,1 +LT0065_04,020_57,1,LT0065_04_020_57,LT0065_04/020/57/LT0065_04_020_57.tif,CDCA8,1 +LT0065_04,020_92,1,LT0065_04_020_92,LT0065_04/020/92/LT0065_04_020_92.tif,CDCA8,1 +LT0013_42,107_23,1,LT0013_42_107_23,LT0013_42/107/23/LT0013_42_107_23.tif,TUBB2,1 +LT0013_42,107_52,1,LT0013_42_107_52,LT0013_42/107/52/LT0013_42_107_52.tif,TUBB2,1 +LT0013_42,107_63,1,LT0013_42_107_63,LT0013_42/107/63/LT0013_42_107_63.tif,TUBB2,1 +LT0013_42,107_76,1,LT0013_42_107_76,LT0013_42/107/76/LT0013_42_107_76.tif,TUBB2,1 +LT0013_42,107_39,1,LT0013_42_107_39,LT0013_42/107/39/LT0013_42_107_39.tif,TUBB2,1 +LT0013_42,107_28,1,LT0013_42_107_28,LT0013_42/107/28/LT0013_42_107_28.tif,TUBB2,1 +LT0094_01,319_36,1,LT0094_01_319_36,LT0094_01/319/36/LT0094_01_319_36.tif,ENSG00000177426,1 +LT0094_01,319_38,1,LT0094_01_319_38,LT0094_01/319/38/LT0094_01_319_38.tif,ENSG00000177426,1 +LT0094_01,319_60,1,LT0094_01_319_60,LT0094_01/319/60/LT0094_01_319_60.tif,ENSG00000177426,1 +LT0094_01,319_34,1,LT0094_01_319_34,LT0094_01/319/34/LT0094_01_319_34.tif,ENSG00000177426,1 +LT0094_01,319_85,1,LT0094_01_319_85,LT0094_01/319/85/LT0094_01_319_85.tif,ENSG00000177426,1 +LT0094_01,319_46,1,LT0094_01_319_46,LT0094_01/319/46/LT0094_01_319_46.tif,ENSG00000177426,1 +LT0094_01,319_66,1,LT0094_01_319_66,LT0094_01/319/66/LT0094_01_319_66.tif,ENSG00000177426,1 +LT0100_03,093_37,1,LT0100_03_093_37,LT0100_03/093/37/LT0100_03_093_37.tif,ENSG00000148826,1 +LT0044_36,249_61,1,LT0044_36_249_61,LT0044_36/249/61/LT0044_36_249_61.tif,WEE1,1 +LT0044_36,249_46,1,LT0044_36_249_46,LT0044_36/249/46/LT0044_36_249_46.tif,WEE1,1 +LT0035_06,274_21,1,LT0035_06_274_21,LT0035_06/274/21/LT0035_06_274_21.tif,PAPPA,1 +LT0035_06,274_4,1,LT0035_06_274_4,LT0035_06/274/4/LT0035_06_274_4.tif,PAPPA,1 +LT0035_06,274_40,1,LT0035_06_274_40,LT0035_06/274/40/LT0035_06_274_40.tif,PAPPA,1 +LT0047_27,140_68,1,LT0047_27_140_68,LT0047_27/140/68/LT0047_27_140_68.tif,DNCH1,1 +LT0047_27,140_94,1,LT0047_27_140_94,LT0047_27/140/94/LT0047_27_140_94.tif,DNCH1,1 +LT0047_27,140_89,1,LT0047_27_140_89,LT0047_27/140/89/LT0047_27_140_89.tif,DNCH1,1 +LT0047_27,140_75,1,LT0047_27_140_75,LT0047_27/140/75/LT0047_27_140_75.tif,DNCH1,1 +LT0047_27,140_84,1,LT0047_27_140_84,LT0047_27/140/84/LT0047_27_140_84.tif,DNCH1,1 +LT0046_19,356_67,1,LT0046_19_356_67,LT0046_19/356/67/LT0046_19_356_67.tif,RAB8A,1 +LT0046_19,356_57,1,LT0046_19_356_57,LT0046_19/356/57/LT0046_19_356_57.tif,RAB8A,1 +LT0046_19,356_92,1,LT0046_19_356_92,LT0046_19/356/92/LT0046_19_356_92.tif,RAB8A,1 +LT0093_13,147_69,1,LT0093_13_147_69,LT0093_13/147/69/LT0093_13_147_69.tif,ENSG00000173227,1 +LT0093_13,147_77,1,LT0093_13_147_77,LT0093_13/147/77/LT0093_13_147_77.tif,ENSG00000173227,1 +LT0093_13,147_59,1,LT0093_13_147_59,LT0093_13/147/59/LT0093_13_147_59.tif,ENSG00000173227,1 +LT0093_13,147_75,1,LT0093_13_147_75,LT0093_13/147/75/LT0093_13_147_75.tif,ENSG00000173227,1 +LT0138_03,127_44,1,LT0138_03_127_44,LT0138_03/127/44/LT0138_03_127_44.tif,ENSG00000116641,1 +LT0138_03,127_51,1,LT0138_03_127_51,LT0138_03/127/51/LT0138_03_127_51.tif,ENSG00000116641,1 +LT0138_03,127_62,1,LT0138_03_127_62,LT0138_03/127/62/LT0138_03_127_62.tif,ENSG00000116641,1 +LT0138_03,127_35,1,LT0138_03_127_35,LT0138_03/127/35/LT0138_03_127_35.tif,ENSG00000116641,1 +LT0138_03,127_31,1,LT0138_03_127_31,LT0138_03/127/31/LT0138_03_127_31.tif,ENSG00000116641,1 +LT0094_04,319_73,1,LT0094_04_319_73,LT0094_04/319/73/LT0094_04_319_73.tif,ENSG00000177426,1 +LT0094_04,319_93,1,LT0094_04_319_93,LT0094_04/319/93/LT0094_04_319_93.tif,ENSG00000177426,1 +LT0094_04,319_30,1,LT0094_04_319_30,LT0094_04/319/30/LT0094_04_319_30.tif,ENSG00000177426,1 +LT0094_04,319_7,1,LT0094_04_319_7,LT0094_04/319/7/LT0094_04_319_7.tif,ENSG00000177426,1 +LT0094_04,319_89,1,LT0094_04_319_89,LT0094_04/319/89/LT0094_04_319_89.tif,ENSG00000177426,1 +LT0094_04,319_61,1,LT0094_04_319_61,LT0094_04/319/61/LT0094_04_319_61.tif,ENSG00000177426,1 +LT0094_04,319_5,1,LT0094_04_319_5,LT0094_04/319/5/LT0094_04_319_5.tif,ENSG00000177426,1 +LT0094_04,319_66,1,LT0094_04_319_66,LT0094_04/319/66/LT0094_04_319_66.tif,ENSG00000177426,1 +LT0090_33,383_72,1,LT0090_33_383_72,LT0090_33/383/72/LT0090_33_383_72.tif,failed_QC,1 +LT0090_33,383_60,1,LT0090_33_383_60,LT0090_33/383/60/LT0090_33_383_60.tif,failed_QC,1 +LT0090_33,383_84,1,LT0090_33_383_84,LT0090_33/383/84/LT0090_33_383_84.tif,failed_QC,1 +LT0090_33,383_92,1,LT0090_33_383_92,LT0090_33/383/92/LT0090_33_383_92.tif,failed_QC,1 +LT0106_02,287_19,1,LT0106_02_287_19,LT0106_02/287/19/LT0106_02_287_19.tif,ENSG00000186143,1 +LT0106_02,287_1,1,LT0106_02_287_1,LT0106_02/287/1/LT0106_02_287_1.tif,ENSG00000186143,1 +LT0106_02,287_6,1,LT0106_02_287_6,LT0106_02/287/6/LT0106_02_287_6.tif,ENSG00000186143,1 +LT0106_02,287_33,1,LT0106_02_287_33,LT0106_02/287/33/LT0106_02_287_33.tif,ENSG00000186143,1 diff --git a/3.extract_features/outputs/efn_pretrained/checkpoint/efficientnet-b0_weights_tf_dim_ordering_tf_kernels_autoaugment.h5 b/3.extract_features/outputs/efn_pretrained/checkpoint/efficientnet-b0_weights_tf_dim_ordering_tf_kernels_autoaugment.h5 new file mode 100644 index 0000000..4e4b1fc Binary files /dev/null and b/3.extract_features/outputs/efn_pretrained/checkpoint/efficientnet-b0_weights_tf_dim_ordering_tf_kernels_autoaugment.h5 differ