├── .gitignore ├── LICENSE ├── README.md ├── additional_png └── additional.png ├── data ├── train │ ├── domain_1.tsv │ └── domain_2.h5ad └── val │ └── domain_val.csv ├── data_loaders └── domian_loaders.py ├── infer.py ├── models └── model.py ├── requirements.txt ├── sample_result_saliency ├── gene_list.txt ├── grad.csv ├── saliency_map.png ├── top_20_gene_list_0.txt ├── top_20_gene_list_1.txt ├── top_20_gene_list_2.txt ├── top_20_gene_list_3.txt ├── top_20_gene_list_4.txt ├── train_log_loss.txt └── train_log_val.txt ├── train.py ├── train_gene_set.py ├── train_saliency_map.py └── utils ├── args_utils.py └── opt_utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # ./sample_data 3 | ignore 4 | checkpoints 5 | sample_data_bak 6 | README_bak.md 7 | out_bak.csv 8 | README_bak2.md 9 | train_saliency_map.py -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2023 Patchouli 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Domain generalization enables general cancer cell annotation in single-cell and spatial transcriptomics 2 | Article : https://www.nature.com/articles/s41467-024-46413-6 3 | ## Abstract 4 | Single-cell and spatial transcriptome sequencing, two recently optimized transcriptome sequencing methods, are increasingly used to study cancer and related diseases. Cell annotation, particularly for malignant cell annotation, is essential and crucial for in-depth analyses in these studies. However, current algorithms lack accuracy and generalization, making it difficult to consistently and rapidly infer malignant cells from pan-cancer data. To address this issue, we present Cancer-Finder, a domain generalization-based deep learning algorithm that can rapidly identify malignant cells/spots in single-cell and spatial transcriptomics data. Additionally, Cancer-Finder integrated an interpretability module, which can utilizes a saliency map to identified important genes related to prognosis and tumor microenvironment. 5 | 6 | ## Set Up Environment 7 | 8 | Prerequisites: 9 | ``` 10 | System: Ubuntu 18.04 11 | python: 3.9.16 12 | CUDA: 11.6 13 | torch: 1.13.1 14 | ``` 15 | You can build the environment with Anaconda: 16 | ``` 17 | conda create -n scf python==3.9.16 18 | conda activate scf 19 | pip install -r requirements.txt 20 | ``` 21 | 22 | ## Running the Code 23 | ### Usage and Options - Inference 24 | 25 | 26 | A input count matrix should be : 27 | 28 | 29 | 30 | | SYMBOL | Cell 1 | Cell 2 | ... |Cell n| 31 | | :----:| :----: | :----: | :----: | :----: | 32 | |Gene 1|0|2|...|0| 33 | |Gene 2|0|0|...|1| 34 | |...|...|...|...|...| 35 | |Gene n|0|0|...|0| 36 | 37 | 38 | 39 | **Supported input formats:** 40 | - `tsv` 41 | - `csv` 42 | - `h5ad` 43 | - `zarr` 44 | - `h5` 45 | 46 | You can use any of these formats for your input matrix. 47 | 48 | It can be used for new inference by executing the following command: 49 | 50 | ``` 51 | python -u infer.py --ckp=checkpoints/sc_pretrain_article.pkl --matrix=data_matrix.tsv --out=out.csv 52 | ``` 53 | 54 | The parameter `ckp` denotes the checkpoints of pre-trained model used for inference. 55 | The checkpoints used in article for [scRNA-seq data](https://drive.google.com/file/d/1l05-wMbPucfC4IG4oDmT5U-TOn_YZazL/view?usp=drive_link) and [spatial transcriptomics (ST) data](https://drive.google.com/file/d/1ci78ccgSwZStWU14PRR-OklDWRhI-8rf/view?usp=drive_link) are available for download. 56 | 57 | If you wish to perform inference on your own dataset, please replace `data_matrix.tsv` with your own expression matrix. 58 | **Supported formats:** `zarr`, `h5ad`, `h5`, `tsv`, and `csv`. 59 | 60 | Additionally, you can use the `infering` function from `infer.py` to perform inference on an AnnData object directly within your code. This function allows for more flexible integration into existing workflows. 61 | 62 | --- 63 | 64 | 65 | Regarding the data (train, val and test), please refer to the "Data availability" and "Methods" section of the [article](https://www.nature.com/articles/s41467-024-46413-6). 66 | The "Data Availability" section of the article provides a detailed description of the test data, including Cell line data, Peripheral Blood Mononuclear Cells (PBMC) data, and other data from patients. The corresponding test results are presented in Figure 3b. 67 | The sample test data in previous versions is also from the "Data Availability" section. 68 | 69 | --- 70 | 71 | 72 | More usage for **inference**: 73 | ``` 74 | python -u infer.py \ 75 | --ckp= \ # path for pre-trained model 76 | --matrix= \ # path for data, "tsv", "csv", "h5ad", "h5", and "zarr" formats are supported. 77 | --out= \ # out path 78 | --threshold= # threshold of inference, default=0.5. Recommended to use 0.5 for scRNA-seq, 10x Visium, legacy ST and slide-seq data. Recommended to use 0.9766 for MERFISH data. 79 | ``` 80 | 81 | Additionally, a pre-trained model trained with 476,562 cells (148,332 more cells than the article.) from 13 tissues can also be [downloaded](https://drive.google.com/file/d/1qwWMl0WtOwBzUhUdxL72331gNqnp3F2i/view?usp=drive_link). Its internal performance is as follows. 82 | 83 | 84 | 85 | 86 | --- 87 | ### Usage and Options - Train 88 | 89 | 90 | If you want train **a gene set**, please run the command: 91 | ``` 92 | python -u train_gene_set.py 93 | ``` 94 | 95 | 96 | If you want to **train** **without a gene set**, just to train a pre-trained model for inference. Please run the command: 97 | ``` 98 | python -u train.py 99 | ``` 100 | 101 | By default, the preceding command will use the data within `data/train/*` as from the training domain and `data/val/*` as from the validation domain for training. 102 | 103 | More usage for **training**: 104 | ``` 105 | python -u train.py \ 106 | --train_dir= \ # Directory of training data 107 | --val_dir= \ # Directory of val data 108 | --batch_size= \ # batch size 109 | --lr= \ # learning rate 110 | --max_epoch= \ # max epoch 111 | --output= \ # The output directory of training, including checkpoint and the gene list, and logs files 112 | --gpu_id= # Not necessary, Specify the No. of the gpu if it is available 113 | ``` 114 | 115 | 116 | 117 | 118 | ## License 119 | 120 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -------------------------------------------------------------------------------- /additional_png/additional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Patchouli-M/SequencingCancerFinder/ec88d4d9b75d589aa3635fb1a40b0b71a78657be/additional_png/additional.png -------------------------------------------------------------------------------- /data/train/domain_2.h5ad: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Patchouli-M/SequencingCancerFinder/ec88d4d9b75d589aa3635fb1a40b0b71a78657be/data/train/domain_2.h5ad -------------------------------------------------------------------------------- /data_loaders/domian_loaders.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import torch 3 | import os 4 | import glob 5 | import numpy as np 6 | from torch.utils.data import TensorDataset,DataLoader 7 | import scanpy 8 | def train_domian_loaders_l(args,shuffle_state=True): 9 | """ 10 | Create training dataloaders 11 | 12 | Args: 13 | args (object) : args object generated by opt_util.py 14 | shuffle_state (bool) : Whether to shuffle the data 15 | 16 | Returns: 17 | a list of dataloader 18 | """ 19 | SPL_PATH = args.train_dir 20 | NEED_ROWS = args.NEED_ROWS 21 | batch_size = args.batch_size 22 | TRAIN_GENE_LIST = os.path.join(args.output,args.genelist_outname) 23 | need_col_num=args.gene_num 24 | label_str = args.label_str 25 | gene_list = pd.read_csv(TRAIN_GENE_LIST,header=None,index_col=0) 26 | train_loader_l = [] 27 | for data_spl_file in sorted(glob.glob(os.path.join(SPL_PATH,'*'))): 28 | if data_spl_file.endswith('.tsv'): 29 | raw_df = pd.read_csv(data_spl_file,index_col=0,sep='\t') 30 | elif data_spl_file.endswith('.csv'): 31 | raw_df = pd.read_csv(data_spl_file,index_col=0,sep=',') 32 | elif data_spl_file.endswith('.h5ad'): 33 | adata = scanpy.read_h5ad(data_spl_file) 34 | raw_df = adata.to_df() 35 | raw_df = pd.merge(raw_df.T,pd.DataFrame(adata.var['label']),left_index=True,right_index=True,how='inner').T 36 | raw_df = pd.merge(gene_list,raw_df,how='left',left_index=True,right_index=True).fillna(0) 37 | raw_df = raw_df[~raw_df.index.duplicated()] 38 | raw_df = raw_df.loc[gene_list.index] 39 | raw_df = raw_df.T 40 | 41 | if NEED_ROWS > raw_df.shape[0] : 42 | raw_df = pd.DataFrame(np.repeat(raw_df.values,NEED_ROWS/(raw_df.shape[0]),axis=0),columns=raw_df.columns) 43 | else : 44 | raw_df = raw_df.sample(NEED_ROWS,random_state=42) 45 | X = raw_df.iloc[:,:need_col_num].to_numpy() 46 | Y = raw_df.loc[:,label_str].to_numpy() 47 | raw_set = TensorDataset(torch.from_numpy(X).float(),torch.from_numpy(Y).float()) 48 | train_set = raw_set 49 | train_loader = DataLoader(dataset=train_set,batch_size = batch_size,shuffle=shuffle_state,drop_last=True) 50 | train_loader_l.append(train_loader) 51 | return train_loader_l 52 | 53 | def val_domian_loaders_l(args,shuffle_state=True): 54 | """ 55 | Create validating dataloaders 56 | 57 | Args: 58 | args (object) : args object generated by opt_util.py 59 | shuffle_state (bool) : Whether to shuffle the data 60 | 61 | Returns: 62 | a dict of validating dataloaders 63 | """ 64 | SPL_PATH = args.val_dir 65 | NEED_ROWS = args.NEED_ROWS 66 | batch_size = args.batch_size 67 | TRAIN_GENE_LIST = os.path.join(args.output,args.genelist_outname) 68 | need_col_num=args.gene_num 69 | label_str = args.label_str 70 | gene_list = pd.read_csv(TRAIN_GENE_LIST,header=None,index_col=0) 71 | val_loader_dict = {} 72 | for data_spl_file in sorted(glob.glob(os.path.join(SPL_PATH,'*'))): 73 | if data_spl_file.endswith('.tsv'): 74 | raw_df = pd.read_csv(data_spl_file,index_col=0,sep='\t') 75 | elif data_spl_file.endswith('.csv'): 76 | raw_df = pd.read_csv(data_spl_file,index_col=0,sep=',') 77 | elif data_spl_file.endswith('.h5ad'): 78 | raw_df = scanpy.read_h5ad(data_spl_file).to_df() 79 | 80 | raw_df = pd.merge(gene_list,raw_df,how='left',left_index=True,right_index=True).fillna(0) 81 | raw_df = raw_df[~raw_df.index.duplicated()] 82 | raw_df = raw_df.loc[gene_list.index] 83 | raw_df = raw_df.T 84 | if NEED_ROWS > raw_df.shape[0] : 85 | raw_df = pd.DataFrame(np.repeat(raw_df.values,NEED_ROWS/(raw_df.shape[0]),axis=0),columns=raw_df.columns) 86 | else : 87 | raw_df = raw_df.sample(NEED_ROWS,random_state=42) 88 | X = raw_df.iloc[:,:need_col_num].to_numpy() 89 | Y = raw_df.loc[:,label_str].to_numpy() 90 | raw_set = TensorDataset(torch.from_numpy(X).float(),torch.from_numpy(Y).float()) 91 | val_set = raw_set 92 | val_loader = DataLoader(dataset=val_set,batch_size = batch_size,shuffle=shuffle_state,drop_last=True) 93 | val_loader_dict[os.path.basename(data_spl_file).split('.')[0]] = val_loader 94 | print(val_loader_dict) 95 | return val_loader_dict -------------------------------------------------------------------------------- /infer.py: -------------------------------------------------------------------------------- 1 | from torch.utils.data import TensorDataset,DataLoader 2 | import torch 3 | import pandas as pd 4 | from models import model 5 | from utils import opt_utils,args_utils 6 | import warnings 7 | from typing import Optional 8 | 9 | def run_inference(args): 10 | """ 11 | Run inference using the provided arguments. 12 | 13 | Args: 14 | args: Arguments for inference. 15 | 16 | Returns: 17 | DataFrame containing the inference results. 18 | """ 19 | # Initialize model with args 20 | algorithm = model.VREx(args) 21 | algorithm.load_state_dict(torch.load(args.ckp)['model_dict']) 22 | algorithm.eval() 23 | 24 | # get dataloaders for inference 25 | infor_loaders = opt_utils.InferLoaders(args) 26 | predict_dict = {'sample':[],'predict':[]} 27 | count = 0 28 | 29 | # get data from dataloaders 30 | for input_data,input_loader in infor_loaders: 31 | print(f'begin {count}') 32 | count+=1 33 | # predict 34 | for data in input_loader: 35 | out = torch.softmax(algorithm.predict(data[0]),axis=1)[:,1] 36 | for idx,i in enumerate(out): 37 | predict_dict['sample'].append(input_data.index[idx]) 38 | predict_dict['predict'].append(i.item()) 39 | # generate dataframe from results 40 | predict_df = pd.DataFrame(predict_dict) 41 | predict_df['predict'][predict_df['predict'] > args.threshold] = 1 42 | predict_df['predict'][predict_df['predict'] != 1 ] = 0 43 | 44 | return predict_df 45 | 46 | def infering( 47 | # Model parameters 48 | matrix = 'data_matrix.h5ad', 49 | num_classes: int = 2, 50 | ckp: str = 'checkpoints/sc_pretrain_article.pkl', 51 | threshold: float = 0.5, 52 | out: str = 'out.csv', 53 | 54 | # Training parameters (kept for model initialization) 55 | lr: float = 1e-3, 56 | schuse: bool = False, 57 | schusech: str = 'cos', 58 | seed: int = 0, 59 | gpu_id: Optional[int] = None, 60 | weight_decay: float = 5e-4, 61 | momentum: float = 0.9, 62 | lr_decay: float = 0.75, 63 | lr_decay1: float = 1.0, 64 | lr_decay2: float = 1.0, 65 | anneal_iters: int = 500, 66 | max_epoch: int = 5, 67 | lam: float = 1, 68 | gene_num: int = 4572, 69 | label_str: str = 'label', 70 | batch_size: int = 10, 71 | NEED_ROWS: int = 50, 72 | save_output: bool = True 73 | ) -> None: 74 | """ 75 | Perform inference using a pre-trained model on AnnData object. 76 | 77 | Args: 78 | num_classes (int): Number of classes for classification 79 | ckp (str): Path to the checkpoint file containing the pre-trained model 80 | threshold (float): Classification threshold for binary predictions 81 | out (str): Path to save the output predictions 82 | lr (float): Learning rate 83 | schuse (bool): Whether to use scheduler 84 | schusech (str): Scheduler type 85 | seed (int): Random seed 86 | gpu_id (Optional[int]): GPU device ID 87 | weight_decay (float): Weight decay for optimizer 88 | momentum (float): Momentum for optimizer 89 | lr_decay (float): Learning rate decay 90 | lr_decay1 (float): Learning rate decay for pretrained featurizer 91 | lr_decay2 (float): Initial learning rate decay of network 92 | anneal_iters (int): Penalty anneal iterations used in VREx 93 | max_epoch (int): Maximum number of epochs 94 | lam (float): Tradeoff hyperparameter used in VREx 95 | gene_num (int): Number of features 96 | label_str (str): Row label for the label in training data 97 | batch_size (int): Batch size 98 | NEED_ROWS (int): Number of samples in one step 99 | save_output (bool): Option to save or not the output 100 | 101 | Returns: 102 | pd.DataFrame 103 | """ 104 | # Convert function arguments to args object 105 | args = args_utils.create_args_from_infering( 106 | matrix=matrix, 107 | num_classes=num_classes, 108 | ckp=ckp, 109 | threshold=threshold, 110 | out=out, 111 | lr=lr, 112 | schuse=schuse, 113 | schusech=schusech, 114 | seed=seed, 115 | gpu_id=gpu_id, 116 | weight_decay=weight_decay, 117 | momentum=momentum, 118 | lr_decay=lr_decay, 119 | lr_decay1=lr_decay1, 120 | lr_decay2=lr_decay2, 121 | anneal_iters=anneal_iters, 122 | max_epoch=max_epoch, 123 | lam=lam, 124 | gene_num=gene_num, 125 | label_str=label_str, 126 | batch_size=batch_size, 127 | NEED_ROWS=NEED_ROWS 128 | ) 129 | 130 | predict_df = run_inference(args) 131 | 132 | # save results 133 | if save_output == True: 134 | predict_df.to_csv(args.out,index=False) 135 | 136 | return predict_df 137 | 138 | 139 | 140 | warnings.filterwarnings('ignore') 141 | 142 | if __name__=='__main__': 143 | # get arguments for inference 144 | args = args_utils.infer_args() 145 | # Run inference 146 | predict_df = run_inference(args) 147 | 148 | print(predict_df) 149 | predict_df.to_csv(args.out) 150 | 151 | 152 | -------------------------------------------------------------------------------- /models/model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | from torchvision import models 4 | import torch.nn.functional as F 5 | import numpy as np 6 | 7 | # a FcNet 8 | class FcNet(nn.Module): 9 | def __init__(self,in_size:int = 4096, mid_size:int = 512): 10 | """ 11 | A full connected network 12 | 13 | Args: 14 | args (object) : args object generated by opt_util.py 15 | mid_size (int) : The bottleneck layer size of the network 16 | """ 17 | super(FcNet, self).__init__() 18 | self.desen_layer = nn.Sequential( 19 | nn.Linear(in_size,in_size), 20 | nn.Dropout(), 21 | nn.Linear(in_size,mid_size) 22 | ) 23 | self.in_features=mid_size 24 | def forward(self,x): 25 | x = self.desen_layer(x) 26 | return x 27 | 28 | def get_fea(args): 29 | return FcNet(in_size=len(args.HVG_list)) 30 | 31 | class feat_classifier(nn.Module): 32 | def __init__(self, class_num, bottleneck_dim=512): 33 | """ 34 | A classification layer 35 | 36 | Args: 37 | class_num (int) : Number of classes. 38 | bottleneck_dim (int) : The input size of the classification layer 39 | """ 40 | super(feat_classifier, self).__init__() 41 | self.fc = nn.Linear(bottleneck_dim, class_num) 42 | def forward(self, x): 43 | x = self.fc(x) 44 | return x 45 | 46 | class VREx(nn.Module): 47 | def __init__(self, args): 48 | """ 49 | The network contains a feature extractor and a classifier 50 | Args: 51 | args (object) : args object generated by opt_util.py 52 | """ 53 | super(VREx, self).__init__() 54 | self.featurizer = get_fea(args) 55 | self.classifier = feat_classifier(args.num_classes, self.featurizer.in_features) 56 | self.network = nn.Sequential(self.featurizer, self.classifier) 57 | self.register_buffer('update_count', torch.tensor([0])) 58 | self.args = args 59 | 60 | def update(self, minibatches, opt, sch): 61 | """ 62 | Network forward propagation, back propagation, parameter updating 63 | 64 | Args: 65 | minibatches (list) : mini batch of training data 66 | opt (object) : optimizer of the network 67 | sch (object) : learning rate scheduler 68 | 69 | """ 70 | if self.update_count >= self.args.anneal_iters: 71 | penalty_weight = self.args.lam 72 | else: 73 | penalty_weight = 1.0 74 | nll = 0. 75 | if self.args.gpu_id: 76 | all_x = torch.cat([data[0].cuda().float() for data in minibatches]) 77 | else: 78 | all_x = torch.cat([data[0].float() for data in minibatches]) 79 | all_logits = self.network(all_x) 80 | all_logits_idx = 0 81 | losses = torch.zeros(len(minibatches)) 82 | for i, data in enumerate(minibatches): 83 | logits = all_logits[all_logits_idx:all_logits_idx + 84 | data[0].shape[0]] 85 | all_logits_idx += data[0].shape[0] 86 | if self.args.gpu_id: 87 | nll = F.cross_entropy(logits, data[1].cuda().long()) 88 | else: 89 | nll = F.cross_entropy(logits, data[1].long()) 90 | losses[i] = nll 91 | mean = losses.mean() 92 | penalty = ((losses - mean) ** 2).mean() 93 | loss = mean + penalty_weight * penalty 94 | opt.zero_grad() 95 | loss.backward() 96 | opt.step() 97 | if sch: 98 | sch.step() 99 | self.update_count += 1 100 | return {'loss': loss.item(),'mean': mean.item(), 'penalty': penalty.item()} 101 | 102 | 103 | def predict(self, x): 104 | return self.network(x) 105 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | anndata==0.9.1 2 | numpy==1.23.0 3 | pandas==1.5.2 4 | scanpy==1.9.3 5 | torch==1.13.1 6 | torchvision==0.14.1 7 | zarr 8 | -------------------------------------------------------------------------------- /sample_result_saliency/gene_list.txt: -------------------------------------------------------------------------------- 1 | IGKC 2 | MALAT1 3 | IGHGP 4 | IGLC2 5 | IGHA1 6 | IGHG3 7 | IGHA2 8 | JCHAIN 9 | IGLC3 10 | IGHG1 11 | RPS27 12 | IGHM 13 | IGHG2 14 | RPL10 15 | RPL21 16 | RPL3 17 | RPL13A 18 | RPL41 19 | RPL18A 20 | EEF1A1 21 | RPL39 22 | IGHG4 23 | RPL7 24 | IGLV3-25 25 | RPS28 26 | IGLV1-47 27 | RPS3A 28 | PTMA 29 | HSP90B1 30 | RPS15 31 | RPS12 32 | IGHD 33 | RPL9 34 | RPL28 35 | IGHV3-15 36 | RPL23A 37 | RPL11 38 | CD74 39 | RPL29 40 | RPS27A 41 | ACTB 42 | MZB1 43 | RPL6 44 | RPSA 45 | CXCR4 46 | TMSB4X 47 | H3F3A 48 | HLA-DRA 49 | UBC 50 | XBP1 51 | GAPDH 52 | RPS9 53 | RPS3 54 | RPL15 55 | RPS19 56 | RPS18 57 | FTH1 58 | RPL36 59 | RPL12 60 | RPL35A 61 | RPS26 62 | RPS25 63 | RPL13 64 | BTG1 65 | HDLBP 66 | RPL10A 67 | RPL27A 68 | IGHV3-30 69 | RPS5 70 | TXNIP 71 | PDIA4 72 | RPS23 73 | RPS10 74 | RPL34 75 | HMGB1 76 | OAZ1 77 | RPS27L 78 | RPL35 79 | CALR 80 | RPL18 81 | DERL3 82 | H3F3B 83 | SLC25A6 84 | RPL14 85 | FKBP11 86 | SEL1L3 87 | EMP3 88 | RPS2 89 | PFDN5 90 | RPS14 91 | FAU 92 | RPL22 93 | ATP5L 94 | RPL7A 95 | HLA-A 96 | FKBP2 97 | NEAT1 98 | HINT1 99 | EEF1D 100 | SUB1 101 | HLA-DPA1 102 | RPL32 103 | RPN2 104 | RPL36AL 105 | RPS13 106 | MIF 107 | BTF3 108 | RPL5 109 | ZFP36 110 | PDIA6 111 | MYL12A 112 | NPM1 113 | HNRNPA2B1 114 | CD79A 115 | IGLJ1 116 | COX7C 117 | CHCHD2 118 | HNRNPA1 119 | IGLV2-14 120 | PPIA 121 | RPS17 122 | PRDX4 123 | RPL27 124 | DDX5 125 | LAPTM5 126 | LGALS1 127 | RPL26 128 | RPS24 129 | CIRBP 130 | YBX1 131 | RPL36A 132 | SPCS3 133 | EIF1 134 | HSPA8 135 | TMSB10 136 | IGLV6-57 137 | VIM 138 | NDUFA4 139 | RPL24 140 | ATP5D 141 | PABPC1 142 | NFKBIA 143 | JUN 144 | RPL8 145 | SSR4 146 | MTDH 147 | NDUFA1 148 | RPS16 149 | RPLP2 150 | BTG2 151 | FTL 152 | SSR3 153 | GNAS 154 | SPCS1 155 | HLA-DQB1 156 | HSP90AB1 157 | KRTCAP2 158 | ITM2B 159 | RABAC1 160 | HSP90AA1 161 | ATP5G2 162 | EDF1 163 | PPIB 164 | PECAM1 165 | LMAN2 166 | EEF2 167 | RRBP1 168 | TMA7 169 | FAM46C 170 | SRP14 171 | CD52 172 | SYVN1 173 | EEF1B2 174 | RPS20 175 | RPS4X 176 | TMEM258 177 | CHCHD10 178 | RPS21 179 | TXN 180 | ISG20 181 | SNRPD2 182 | PFN1 183 | MAN1A1 184 | HLA-DPB1 185 | IER2 186 | JUNB 187 | TRAM1 188 | ACTG1 189 | CFL1 190 | RPLP0 191 | DDOST 192 | HLA-DRB1 193 | FXYD5 194 | ISCU 195 | ATP5E 196 | IGLV3-1 197 | MYL6 198 | LDHA 199 | RPS15A 200 | RPL38 201 | UQCRB 202 | RPS7 203 | SPCS2 204 | CAST 205 | CDV3 206 | ITM2C 207 | COX6C 208 | MANF 209 | EIF3L 210 | NPC2 211 | PIM2 212 | RPL23 213 | COX6B1 214 | UQCRQ 215 | GSTP1 216 | TMEM208 217 | EIF4A2 218 | PSMA7 219 | COMMD6 220 | PEBP1 221 | LDHB 222 | NME2 223 | RPL19 224 | ERP29 225 | RPL17 226 | CCND1 227 | RPL37 228 | MTRNR2L12 229 | SERP1 230 | CLIC1 231 | P4HB 232 | RPS29 233 | EIF3K 234 | UBL5 235 | NDUFB7 236 | SNU13 237 | RAN 238 | PRDX1 239 | TAP1 240 | UQCR11 241 | GLRX 242 | SLC25A5 243 | FOS 244 | HLA-DQA1 245 | PDIA3 246 | MTIF3 247 | SSR2 248 | GRB2 249 | SLAMF7 250 | TMEM205 251 | CYTIP 252 | ERLEC1 253 | SDF2L1 254 | SEC61A1 255 | ATP6V1G1 256 | S100A11 257 | HLA-E 258 | CD63 259 | UBA52 260 | SRSF5 261 | HIST1H1C 262 | MCL1 263 | CKAP4 264 | H2AFZ 265 | SDC1 266 | MTRNR2L8 267 | EIF3E 268 | CD38 269 | HNRNPK 270 | SURF4 271 | SRPRB 272 | HAX1 273 | RPL4 274 | TNFRSF17 275 | PHPT1 276 | TMBIM6 277 | NACA 278 | MYDGF 279 | UBB 280 | ARID5B 281 | POLR2L 282 | SEC61G 283 | COPE 284 | ERGIC3 285 | JSRP1 286 | SH3BGRL3 287 | LMNA 288 | CALM2 289 | TUBA1B 290 | SMC4 291 | COX6A1 292 | SRM 293 | TSC22D3 294 | RPS6 295 | NDUFC2 296 | SEC62 297 | CANX 298 | SUMO2 299 | CRELD2 300 | DNAJC1 301 | TMEM156 302 | UBE2J1 303 | CYBA 304 | YPEL5 305 | TAGLN2 306 | SQSTM1 307 | CD44 308 | ATP5A1 309 | COX4I1 310 | NCL 311 | MYL12B 312 | IRF4 313 | EIF5A 314 | ELL2 315 | JTB 316 | JUND 317 | HSPB1 318 | CTSS 319 | TMEM147 320 | RCE1 321 | RHOA 322 | CCDC47 323 | CD48 324 | IGLV1-50 325 | ALDOA 326 | OS9 327 | NDUFB2 328 | RPL30 329 | CSDE1 330 | S100A4 331 | PNISR 332 | KDELR2 333 | VAMP2 334 | ATF4 335 | ARHGDIB 336 | TOP1 337 | CD37 338 | RPS4Y1 339 | TRMT112 340 | RPN1 341 | RPS8 342 | TRIB1 343 | PRELID1 344 | EIF3D 345 | ECH1 346 | SRGN 347 | NDUFA2 348 | GPX1 349 | ARPC2 350 | FCGR2B 351 | TMEM123 352 | LMAN1 353 | CREB3L2 354 | SEC11A 355 | CUTA 356 | NUCB2 357 | GM2A 358 | ENO1 359 | PSMB4 360 | EIF3G 361 | AES 362 | SMAP2 363 | GUK1 364 | ITGA4 365 | SEL1L 366 | SEC14L1 367 | EBAG9 368 | HERPUD1 369 | UFM1 370 | MLEC 371 | MAP1LC3B 372 | ARL6IP5 373 | UQCRH 374 | HLA-B 375 | PSME2 376 | SEC61B 377 | SLC38A10 378 | SNRPE 379 | SRSF3 380 | DUSP2 381 | PSME1 382 | ATP5J 383 | NDUFV2 384 | IGHV3-23 385 | CALM1 386 | TMEM167A 387 | CBFA2T3 388 | CLPTM1L 389 | NDUFB11 390 | RBM39 391 | TMEM256 392 | DPP7 393 | SLC25A3 394 | DNAJB11 395 | TOMM7 396 | UBE2D3 397 | PAIP2 398 | ST6GAL1 399 | IL2RG 400 | HMGN1 401 | SEC63 402 | SEC11C 403 | HSPA5 404 | EIF2AK4 405 | LSM7 406 | SARAF 407 | CYCS 408 | NDUFA11 409 | AURKAIP1 410 | KMT2E 411 | ANP32B 412 | PPP2R1A 413 | TXNDC5 414 | EAF2 415 | TMBIM4 416 | PKM 417 | ARPC3 418 | ALKBH7 419 | ISG15 420 | BLOC1S6 421 | C19orf60 422 | HEXB 423 | RNASET2 424 | C14orf2 425 | PTP4A2 426 | SNHG8 427 | TPM3 428 | PCBP2 429 | PELI1 430 | REEP5 431 | IGLV1-40 432 | LAPTM4A 433 | COX5A 434 | DAD1 435 | ANAPC5 436 | S100A6 437 | PRDX5 438 | NDUFB1 439 | RGS2 440 | SSU72 441 | YWHAZ 442 | MARCKS 443 | PNRC1 444 | TFG 445 | NOL7 446 | C19orf70 447 | FAM3C 448 | YIPF5 449 | AREG 450 | NDUFB9 451 | BST2 452 | N4BP2L2 453 | SF3B6 454 | EZR 455 | SDF4 456 | H1FX 457 | SPATS2 458 | COMMD3 459 | HSPA9 460 | ARF1 461 | PSMB1 462 | HLA-DMA 463 | TMED2 464 | HLA-C 465 | DYNLL1 466 | CCR2 467 | IFNAR2 468 | SOD1 469 | OSTC 470 | PSMB6 471 | PTGES3 472 | ZNF706 473 | ATP6V1F 474 | CCNL1 475 | CD59 476 | GOLGA4 477 | BMI1 478 | TIMP1 479 | C14orf166 480 | TECR 481 | METAP2 482 | RPLP1 483 | MRPS21 484 | PSAP 485 | TSPAN3 486 | SF3B5 487 | AGPAT1 488 | ANAPC11 489 | CD47 490 | HNRNPA3 491 | TMED9 492 | ATP5B 493 | ETFA 494 | GTF3A 495 | ATP5I 496 | ACP1 497 | SAT1 498 | AC090498.1 499 | ATP5G3 500 | RPL31 501 | ORMDL3 502 | COX5B 503 | ANAPC16 504 | NDUFS5 505 | NSUN3 506 | TMED10 507 | SAP18 508 | LAMTOR4 509 | ATOX1 510 | CD164 511 | TCF25 512 | EIF3H 513 | ZBTB38 514 | PPA1 515 | GFPT1 516 | HNRNPC 517 | MED13L 518 | UBXN4 519 | GADD45GIP1 520 | AKAP13 521 | DNAJC3 522 | HDAC2 523 | HIST1H2AC 524 | IGLL1 525 | HM13 526 | NENF 527 | NAGA 528 | TAPBP 529 | CST3 530 | GPX4 531 | TPI1 532 | ATP6V0E1 533 | ARHGDIA 534 | MGST3 535 | PCGF5 536 | GDI2 537 | COX8A 538 | SSR1 539 | PTPN2 540 | C11orf58 541 | GPATCH11 542 | BIRC3 543 | PABPC4 544 | STK4 545 | ORAI2 546 | ASAH1 547 | HNRNPF 548 | GRN 549 | NDUFB4 550 | MBD2 551 | MEF2C 552 | TUFM 553 | HIST1H4C 554 | UQCR10 555 | ATPIF1 556 | SMDT1 557 | ANXA5 558 | FCRLA 559 | TBCA 560 | ACO2 561 | ZFAS1 562 | RTN4 563 | CD79B 564 | CLTC 565 | CNBP 566 | TPT1 567 | PARP1 568 | EPRS 569 | TBC1D1 570 | MBOAT7 571 | YWHAE 572 | MRPL20 573 | RBX1 574 | LSP1 575 | YWHAB 576 | ERGIC2 577 | EID1 578 | ROMO1 579 | RPL37A 580 | TTC3 581 | ANXA11 582 | B2M 583 | FRZB 584 | CSTB 585 | GHITM 586 | RAB7A 587 | ATP6V0B 588 | SSBP1 589 | TOMM5 590 | DERL1 591 | ANKRD17 592 | ATP5J2 593 | MRPL54 594 | KDELR1 595 | ZC3H15 596 | CCND2 597 | ZFP36L2 598 | ANKHD1 599 | BRD2 600 | AKAP2 601 | APOBEC3G 602 | PBXIP1 603 | CYB5R3 604 | ATP5G1 605 | EMC7 606 | HLA-DMB 607 | EIF5 608 | EIF2A 609 | PLPP5 610 | COPZ1 611 | SLC44A1 612 | TAX1BP1 613 | PRR13 614 | GPSM3 615 | MEAF6 616 | B4GALT3 617 | KLF2 618 | EIF3F 619 | EIF3M 620 | COTL1 621 | LITAF 622 | SDAD1 623 | PLAC8 624 | SYNCRIP 625 | CCDC186 626 | COPB2 627 | RPL22L1 628 | PSMB7 629 | GMFG 630 | CITED2 631 | COX7A2 632 | APRT 633 | NDUFS6 634 | HNRNPDL 635 | SNX3 636 | TRABD 637 | POU2F2 638 | ITGA6 639 | SPG21 640 | MED13 641 | RWDD1 642 | SIL1 643 | NFE2L2 644 | PSMA2 645 | HIGD2A 646 | SRSF11 647 | SUCO 648 | PPDPF 649 | SRPRA 650 | PSMB9 651 | EMC4 652 | PARK7 653 | HLA-DRB5 654 | SLC3A2 655 | CSNK2B 656 | DERL2 657 | PRKCD 658 | CMTM6 659 | EIF4H 660 | VCP 661 | RAC2 662 | ICAM3 663 | BSG 664 | EIF4G2 665 | ERP44 666 | PARM1 667 | CIR1 668 | VDAC1 669 | SULF2 670 | DUSP1 671 | LAMP2 672 | BHLHE41 673 | MORF4L1 674 | CNOT7 675 | EVI2A 676 | RAB11B 677 | SNRPB 678 | PRDX6 679 | PPP1R15A 680 | ATP2A3 681 | PGRMC2 682 | DNAJC4 683 | CCNI 684 | CDC42SE2 685 | PTPRC 686 | WARS 687 | POU2AF1 688 | ATP6V0C 689 | CD27 690 | PSMD4 691 | PSMA3 692 | BSCL2 693 | DUS1L 694 | FBL 695 | TAF7 696 | COPA 697 | LIMD2 698 | PRDX2 699 | CCNG1 700 | RNPS1 701 | COX7B 702 | CCPG1 703 | ANKRD12 704 | PM20D2 705 | CDC37 706 | OST4 707 | MEI1 708 | CCT4 709 | LY96 710 | HYOU1 711 | LY9 712 | FIS1 713 | DBI 714 | UBE2B 715 | VDAC2 716 | LAP3 717 | COPB1 718 | ZCCHC11 719 | CD46 720 | GORASP2 721 | PLP2 722 | ST13 723 | BCAP31 724 | PPHLN1 725 | SH3KBP1 726 | SF1 727 | SLC38A1 728 | IL27RA 729 | LAX1 730 | SNRPC 731 | CCDC85B 732 | NSA2 733 | VOPP1 734 | SNRPB2 735 | RNF181 736 | PPP1R15B 737 | AUP1 738 | HMGN3 739 | NDUFA13 740 | SSNA1 741 | RBM3 742 | IFITM1 743 | LSM4 744 | ARCN1 745 | CXXC5 746 | EPC1 747 | BRK1 748 | SP140 749 | C6orf62 750 | RNF114 751 | BOD1L1 752 | C4orf3 753 | TRAPPC3 754 | RALY 755 | BIRC6 756 | IPO7 757 | ICAM2 758 | PCMTD1 759 | SRP19 760 | NDUFB6 761 | MTRNR2L1 762 | MDH2 763 | TXNDC11 764 | STT3B 765 | LY6E 766 | DNAJB9 767 | SET 768 | ODC1 769 | TAPBPL 770 | GOLGB1 771 | PPP4C 772 | SRSF9 773 | DHRS7 774 | DHRS9 775 | STK17B 776 | GYPC 777 | MRPS6 778 | FAM208B 779 | CNPY2 780 | PCNP 781 | TYMP 782 | TRIM44 783 | IGKV1-5 784 | ARHGEF37 785 | HNRNPU 786 | TMEM109 787 | CDKN1A 788 | DNPH1 789 | PRDM2 790 | NME1 791 | LAMTOR1 792 | CTBP1 793 | NEU1 794 | MPC2 795 | HMGB2 796 | SP110 797 | UROS 798 | PSMD7 799 | ATP5H 800 | MBD4 801 | NET1 802 | UBE2D2 803 | CNOT4 804 | PNN 805 | SRP9 806 | PPP1R18 807 | MRPS24 808 | SURF1 809 | MAPK1IP1L 810 | NDUFB8 811 | PSMD8 812 | UGCG 813 | ATP6AP2 814 | SLIRP 815 | RB1 816 | TERF2IP 817 | IGLC6 818 | UBE2L6 819 | DDB1 820 | MAGED2 821 | SUCLG1 822 | DSTN 823 | SRSF7 824 | MS4A1 825 | HNRNPM 826 | DDX17 827 | IFI6 828 | HSPB11 829 | KLF3 830 | PUF60 831 | PRMT1 832 | UBXN1 833 | EDEM1 834 | SAT2 835 | CTSO 836 | CFLAR 837 | GNB1 838 | ZNF24 839 | PSENEN 840 | HNRNPR 841 | NEMF 842 | DARS 843 | NUCB1 844 | ERH 845 | FAM204A 846 | SHC1 847 | SKP1 848 | NDFIP1 849 | SSB 850 | NAPA 851 | PSMA1 852 | ATP5O 853 | JAK1 854 | USP16 855 | ARID5A 856 | PTP4A1 857 | IER3IP1 858 | MRPL23 859 | SDHB 860 | HLA-DOB 861 | ILF3 862 | MBNL1 863 | EIF3A 864 | PET100 865 | GLCCI1 866 | COX17 867 | AGTPBP1 868 | PSMA6 869 | ADGRE5 870 | NDUFA3 871 | NAP1L1 872 | HSPD1 873 | CCDC142 874 | GLS 875 | PGK1 876 | WBP2 877 | CCT7 878 | YIPF3 879 | SUMF2 880 | YLPM1 881 | ARL14EP 882 | LARP1B 883 | CD53 884 | CCDC90B 885 | SFPQ 886 | C11orf54 887 | AIMP1 888 | POLR3GL 889 | RBM8A 890 | IGF1 891 | PDIA2 892 | EIF5B 893 | NOP10 894 | POMP 895 | DNAJC15 896 | TXNDC15 897 | PCF11 898 | FBXW7 899 | YIPF4 900 | RSF1 901 | MIA3 902 | MPHOSPH10 903 | NFKBID 904 | SCARB2 905 | ANAPC13 906 | MX1 907 | PSMC3 908 | KRT10 909 | SRP72 910 | FCRL5 911 | MPHOSPH8 912 | PPM1K 913 | SREK1 914 | LRP10 915 | SOD2 916 | TRA2B 917 | NR1H2 918 | SNRPG 919 | TXNL4A 920 | C12orf57 921 | TPM4 922 | NAA50 923 | TMEM219 924 | RGS1 925 | SERF2 926 | PDK1 927 | UBE2G1 928 | SMARCA5 929 | IDH2 930 | CPNE5 931 | CD81 932 | NAMPT 933 | PLXNB2 934 | DDX24 935 | SEC23B 936 | C4orf48 937 | KLHL5 938 | PPP1R2 939 | IQSEC1 940 | UFC1 941 | RMDN1 942 | STAG1 943 | PHF3 944 | DDX46 945 | PPP2R5C 946 | TUBA4A 947 | ABCB9 948 | TMEM59 949 | PABPN1 950 | SWI5 951 | FRA10AC1 952 | ATP5F1 953 | FAM162A 954 | ILF2 955 | RAC1 956 | C20orf24 957 | HNRNPA0 958 | WDR83OS 959 | H2AFY 960 | UAP1 961 | DRAP1 962 | SH2B1 963 | SLC17A9 964 | LARP1 965 | MCTS1 966 | CNPPD1 967 | ETV6 968 | SPEN 969 | KRR1 970 | EIF1B 971 | TIMM8B 972 | TYW3 973 | MYC 974 | UQCRFS1 975 | HSPA4 976 | GTPBP4 977 | GLO1 978 | CASP10 979 | C8orf59 980 | HCST 981 | EIF1AX 982 | TMED4 983 | C1orf43 984 | TMF1 985 | MYO18A 986 | NDUFB3 987 | CNPY3 988 | RTN3 989 | ARL6IP4 990 | LRPAP1 991 | IL16 992 | IMP4 993 | IFI27L2 994 | ARRDC3 995 | RAD23A 996 | SYPL1 997 | PIGT 998 | IRF3 999 | EIF4B 1000 | NDUFA5 1001 | UBE2Q1 1002 | PSMB2 1003 | FBXO9 1004 | TM9SF2 1005 | PRPF8 1006 | ARF4 1007 | RPS19BP1 1008 | PRCP 1009 | SRP68 1010 | EIF2S3 1011 | MRPL41 1012 | AP3D1 1013 | FAM96B 1014 | TMEM220 1015 | COPS6 1016 | NR4A2 1017 | ARL6IP1 1018 | TCF4 1019 | SEMA4A 1020 | VPS51 1021 | MRPL55 1022 | CHD9 1023 | TRIM4 1024 | DNAJB6 1025 | ABI1 1026 | HADHA 1027 | SVIP 1028 | ITGB2 1029 | RASA2 1030 | C15orf39 1031 | ASNS 1032 | ATRAID 1033 | PRDM1 1034 | HMGN2 1035 | ZFAND6 1036 | IFNAR1 1037 | P2RY10 1038 | HSCB 1039 | GMPPB 1040 | AKR1A1 1041 | EXOC4 1042 | TANK 1043 | PYCR2 1044 | VPS29 1045 | BRD4 1046 | PPT1 1047 | FOXO3 1048 | NEDD8 1049 | LGALS3 1050 | PAPOLA 1051 | ISCA1 1052 | WAC 1053 | RNH1 1054 | ATF6 1055 | COPG1 1056 | EMC3 1057 | DDX19A 1058 | TMCO1 1059 | BLOC1S1 1060 | CCDC50 1061 | ADAL 1062 | H2AFV 1063 | FEM1B 1064 | UBA1 1065 | MRPS31 1066 | CALM3 1067 | NDUFAF3 1068 | PA2G4 1069 | BMPR2 1070 | EIF2S2 1071 | C9orf16 1072 | MGAT1 1073 | PDCD5 1074 | PPP4R3B 1075 | NAE1 1076 | REPIN1 1077 | PHB 1078 | FUS 1079 | CACYBP 1080 | SCAMP2 1081 | MAGED1 1082 | ENSA 1083 | KLHL6 1084 | RAB30 1085 | CHD2 1086 | TPD52 1087 | SLC33A1 1088 | ATF1 1089 | C19orf24 1090 | COPS2 1091 | PUM1 1092 | PSMB3 1093 | PIN1 1094 | MVP 1095 | PRRC2C 1096 | LTV1 1097 | WNT10A 1098 | MPC1 1099 | TXNDC17 1100 | TACC1 1101 | NCOA3 1102 | ANXA2 1103 | FKBP8 1104 | RBM17 1105 | ID2 1106 | NANS 1107 | DEDD2 1108 | DNAJC10 1109 | NDUFAB1 1110 | IGHV4-34 1111 | POP5 1112 | TGOLN2 1113 | MRPS15 1114 | SLC31A1 1115 | RBBP4 1116 | RAB5B 1117 | NEDD9 1118 | C9orf78 1119 | PUM2 1120 | MRPS16 1121 | DPM3 1122 | COX7A2L 1123 | GARS 1124 | IL6R 1125 | PPP1CA 1126 | LMO4 1127 | THRAP3 1128 | TARS 1129 | CHD4 1130 | YIF1A 1131 | CABIN1 1132 | FBXW5 1133 | MPV17L2 1134 | CS 1135 | SH3GLB1 1136 | IRF2 1137 | HAGH 1138 | SEC31A 1139 | PFDN2 1140 | FXR1 1141 | SYNGR2 1142 | PSMC2 1143 | SFT2D1 1144 | NDUFS7 1145 | PYURF 1146 | MAP3K5 1147 | ARPC1B 1148 | IRAK1 1149 | NDUFA12 1150 | PDE4B 1151 | USO1 1152 | BUD31 1153 | TSPAN31 1154 | RAB2A 1155 | TPP1 1156 | MKKS 1157 | ZBTB7A 1158 | CAP1 1159 | ITM2A 1160 | TJAP1 1161 | NCF1 1162 | CLN6 1163 | NSRP1 1164 | IGBP1 1165 | CMPK1 1166 | CWC27 1167 | GRPEL1 1168 | RIOK3 1169 | PSMD2 1170 | ZNHIT1 1171 | PCBP1 1172 | CHMP2A 1173 | CAPN2 1174 | B4GALT1 1175 | LINC00467 1176 | UXT 1177 | AHCY 1178 | EIF3I 1179 | MNAT1 1180 | NDUFV1 1181 | FAM92B 1182 | SLC25A4 1183 | TMEM14C 1184 | DHTKD1 1185 | AUH 1186 | FNDC3B 1187 | ATPAF1 1188 | PNOC 1189 | NFYB 1190 | HARS 1191 | RER1 1192 | CLINT1 1193 | AZIN1 1194 | OGFOD3 1195 | MGAT2 1196 | THAP4 1197 | TMEM50A 1198 | TMEM30A 1199 | SERINC1 1200 | USMG5 1201 | TROVE2 1202 | SHMT2 1203 | TUG1 1204 | MYBBP1A 1205 | PIGH 1206 | RBBP7 1207 | DDX18 1208 | GRK6 1209 | PAK1 1210 | CLDND1 1211 | RABGAP1 1212 | C8orf33 1213 | RNASEK-C17orf49 1214 | BASP1 1215 | TMEM214 1216 | HCLS1 1217 | EPB41 1218 | ECI1 1219 | MAN1A2 1220 | ACBD3 1221 | JMJD8 1222 | HSPE1 1223 | GPX7 1224 | KIAA0040 1225 | MPZL1 1226 | TMEM140 1227 | MRPL47 1228 | TCL1A 1229 | TRAC 1230 | C1QBP 1231 | FABP5 1232 | PLD3 1233 | TCEA1 1234 | MYCBP2 1235 | MSL3 1236 | AMPD1 1237 | RIC1 1238 | FUNDC2 1239 | NKTR 1240 | LSM5 1241 | BZW1 1242 | CAMTA1 1243 | KTN1 1244 | ACTR3 1245 | GNG5 1246 | ATP6AP1 1247 | MRPL51 1248 | NAGK 1249 | BTK 1250 | FRG1 1251 | WDSUB1 1252 | ALG2 1253 | MZT2B 1254 | BTN3A2 1255 | YTHDC1 1256 | POLR2I 1257 | ALDH16A1 1258 | GNG7 1259 | PSMD14 1260 | ST6GALNAC4 1261 | DNAJA1 1262 | TOMM20 1263 | RHEB 1264 | KXD1 1265 | RAB21 1266 | RAB4A 1267 | MINOS1 1268 | KLF6 1269 | ARL1 1270 | MKL1 1271 | CNN2 1272 | SYK 1273 | SNRPF 1274 | ARFGAP3 1275 | SF3A2 1276 | BAG6 1277 | SNX2 1278 | ZBTB20 1279 | IGHV3-11 1280 | KDM6B 1281 | UBE2J2 1282 | ABT1 1283 | SON 1284 | HNRNPD 1285 | LUC7L3 1286 | SAV1 1287 | DNAJC5 1288 | RBPJ 1289 | MXD4 1290 | TMEM131 1291 | XRN1 1292 | NXPE3 1293 | IRF8 1294 | RDX 1295 | ALG3 1296 | RNF41 1297 | CCDC25 1298 | SPTBN1 1299 | SNRPD1 1300 | IKZF3 1301 | DAZAP1 1302 | HEBP2 1303 | KARS 1304 | CAPZA1 1305 | EIF2B3 1306 | SLC35B3 1307 | NOC3L 1308 | SCAMP5 1309 | TCEAL4 1310 | IGLC4 1311 | PDCD7 1312 | NUDC 1313 | UNC93B1 1314 | SUPT4H1 1315 | ARPC5 1316 | HIPK2 1317 | TLN1 1318 | MCUR1 1319 | C19orf38 1320 | IKBIP 1321 | ZC3HAV1 1322 | TBC1D9 1323 | BTLA 1324 | EMC10 1325 | S100A10 1326 | XIAP 1327 | CDKN1B 1328 | CCS 1329 | EIF3J 1330 | RPAIN 1331 | NUCKS1 1332 | RSU1 1333 | NAA38 1334 | CIB1 1335 | POLR2E 1336 | GBF1 1337 | ABCE1 1338 | LGALS8 1339 | DNTTIP2 1340 | SF3B4 1341 | BAG1 1342 | SELL 1343 | ID3 1344 | VPS36 1345 | PTPRA 1346 | UCP2 1347 | SAMSN1 1348 | MRPS18B 1349 | HNRNPH1 1350 | TATDN1 1351 | HPCAL1 1352 | TOMM22 1353 | SKIL 1354 | CNDP2 1355 | DDRGK1 1356 | BABAM1 1357 | LSM8 1358 | ARPP19 1359 | SECISBP2L 1360 | ATP6V1E1 1361 | TXNDC12 1362 | CEBPZ 1363 | SRSF8 1364 | CASP8 1365 | GABARAP 1366 | RSL24D1 1367 | WASF2 1368 | CPNE1 1369 | C11orf24 1370 | DNAJC7 1371 | HGF 1372 | OSTF1 1373 | ZNF22 1374 | LAMTOR5 1375 | ZFP36L1 1376 | MAP3K8 1377 | MANEA 1378 | CCDC167 1379 | PIGP 1380 | ASXL1 1381 | TRIB3 1382 | WDR1 1383 | GON4L 1384 | NUDCD2 1385 | PRKACB 1386 | SH3BP5 1387 | PPP2CA 1388 | PPP6C 1389 | THEMIS2 1390 | RPS6KB2 1391 | ERAP2 1392 | TMEM165 1393 | TMEM33 1394 | FCRL2 1395 | CHID1 1396 | SUMO1 1397 | THOC7 1398 | DUSP12 1399 | UBE2F 1400 | SLC35E1 1401 | PTK2B 1402 | CDK7 1403 | SNX5 1404 | TM9SF3 1405 | MRPL35 1406 | CHMP1B 1407 | ACLY 1408 | GLT8D1 1409 | ADI1 1410 | MAP2K2 1411 | IGLV2-8 1412 | FAM96A 1413 | HNRNPH3 1414 | NAA10 1415 | NELFE 1416 | TKT 1417 | MED4 1418 | CPSF1 1419 | CBX3 1420 | MRPS34 1421 | NDUFS8 1422 | PREB 1423 | DOPEY2 1424 | QPCT 1425 | TIFA 1426 | KPNB1 1427 | GMPR2 1428 | CTSD 1429 | COMMD1 1430 | EIF4G1 1431 | RFC1 1432 | ZDHHC2 1433 | APOBEC3C 1434 | RALGPS2 1435 | WAPL 1436 | IGLVI-70 1437 | MMP24-AS1 1438 | DDT 1439 | TIMP2 1440 | SYTL1 1441 | XRCC4 1442 | IQGAP1 1443 | TNPO1 1444 | TBL2 1445 | GOLGA7 1446 | AHNAK 1447 | FDPS 1448 | POLR2C 1449 | SCNM1 1450 | FAM49B 1451 | MRPS14 1452 | PERP 1453 | PPIG 1454 | C12orf65 1455 | MIR4435-2HG 1456 | GNL3 1457 | B9D1 1458 | KCNN3 1459 | IDI1 1460 | REXO2 1461 | IFT57 1462 | ZNHIT3 1463 | NARF 1464 | A1BG 1465 | WIPF1 1466 | RPA3 1467 | U2SURP 1468 | FASTKD2 1469 | NR3C1 1470 | TIMM17B 1471 | PSMG2 1472 | OTUB1 1473 | CCT8 1474 | EIF4A1 1475 | NCSTN 1476 | PRRC1 1477 | CDS2 1478 | TMEM263 1479 | MRPS18C 1480 | SCAMP3 1481 | GPI 1482 | KPNA4 1483 | CYC1 1484 | GTF2H5 1485 | TSR1 1486 | POGZ 1487 | BAD 1488 | MAN2A1 1489 | GNS 1490 | SLK 1491 | NNT 1492 | KLF7 1493 | SF3A3 1494 | SMIM19 1495 | ABHD2 1496 | LMNB2 1497 | CLIP1 1498 | CASP1 1499 | ZNF417 1500 | GLMN 1501 | RNF6 1502 | IRGQ 1503 | IRF5 1504 | SLC39A10 1505 | SLC25A17 1506 | CDR1 1507 | USP35 1508 | NOSIP 1509 | CHPF 1510 | IFIH1 1511 | ZFP14 1512 | GUSB 1513 | HLA-F 1514 | LSM2 1515 | TOR3A 1516 | SSSCA1 1517 | DDX21 1518 | POLR2G 1519 | SAR1A 1520 | CCT3 1521 | HECA 1522 | UFL1 1523 | UBE2V2 1524 | PNPLA2 1525 | UQCRC1 1526 | FAM49A 1527 | SRRM1 1528 | PRKACA 1529 | TNRC6A 1530 | SERINC3 1531 | B3GAT3 1532 | C19orf53 1533 | NDUFA9 1534 | CEP63 1535 | NAP1L4 1536 | GABARAPL2 1537 | FICD 1538 | CBX1 1539 | ERMARD 1540 | MRPL40 1541 | CAV1 1542 | PTBP1 1543 | NFX1 1544 | ATXN10 1545 | PRPF31 1546 | ZCCHC7 1547 | GNAI2 1548 | C6orf48 1549 | RAP1B 1550 | LIME1 1551 | HIRIP3 1552 | IRF2BP2 1553 | STRAP 1554 | TMEM134 1555 | NDUFC1 1556 | VAMP5 1557 | APLP2 1558 | PRKAR2A 1559 | PIEZO1 1560 | SERBP1 1561 | SAR1B 1562 | REST 1563 | CORO1B 1564 | CCNL2 1565 | IMPDH2 1566 | WDR26 1567 | UBALD2 1568 | CD2BP2 1569 | ZSWIM7 1570 | OTUD6B-AS1 1571 | XRCC5 1572 | FAAP20 1573 | TXNL1 1574 | CHMP4A 1575 | BOD1 1576 | DNAJC2 1577 | PPP1R7 1578 | SART1 1579 | ANO6 1580 | HINT2 1581 | ERCC5 1582 | MSLN 1583 | ARL2BP 1584 | DAP 1585 | EIF6 1586 | KMT2A 1587 | TALDO1 1588 | COG3 1589 | TMEM87B 1590 | GATC 1591 | MIS12 1592 | CMC1 1593 | IGLL5 1594 | PARVB 1595 | AGTRAP 1596 | C1GALT1C1 1597 | YWHAQ 1598 | MRPL33 1599 | AAMP 1600 | IDS 1601 | GAS6 1602 | ORMDL1 1603 | PIAS2 1604 | COMMD10 1605 | NDUFV3 1606 | ARMC2 1607 | MRPS7 1608 | CEP170 1609 | IMP3 1610 | TTN 1611 | MZT1 1612 | GART 1613 | VPS28 1614 | BBX 1615 | CSNK2A1 1616 | SND1 1617 | YAF2 1618 | SYAP1 1619 | SLC25A46 1620 | OCIAD1 1621 | ELAC1 1622 | SYF2 1623 | MRPS18A 1624 | NOP58 1625 | UBL7 1626 | FGFR1OP2 1627 | CTDNEP1 1628 | PHF1 1629 | CRBN 1630 | CLIC2 1631 | SLC25A1 1632 | PNRC2 1633 | SPAG4 1634 | NT5DC2 1635 | APEX1 1636 | RRAGD 1637 | ALKBH5 1638 | METTL9 1639 | BMP6 1640 | MBD5 1641 | PGAM1 1642 | RIC3 1643 | THUMPD3-AS1 1644 | PPP1R10 1645 | UBE2N 1646 | IL6ST 1647 | ELF1 1648 | SCAF11 1649 | PARP14 1650 | ZCCHC17 1651 | PRDX3 1652 | RELB 1653 | C14orf119 1654 | DHPS 1655 | MARCKSL1 1656 | HAUS3 1657 | WDR45B 1658 | UCHL5 1659 | ARPC5L 1660 | HDDC2 1661 | RPS11 1662 | CLEC2D 1663 | TRAM2 1664 | MAPKAP1 1665 | RSRC2 1666 | OAS1 1667 | CCDC124 1668 | MRPS33 1669 | METTL23 1670 | ZMAT2 1671 | CDK2AP2 1672 | SMAD5 1673 | ITGA8 1674 | COA3 1675 | CHMP3 1676 | CTSH 1677 | KLF13 1678 | FARSA 1679 | MIR155HG 1680 | CADM1 1681 | SLTM 1682 | ABCF2 1683 | LAMTOR2 1684 | RTF1 1685 | MTFP1 1686 | TNFSF10 1687 | TMEM230 1688 | SNRNP70 1689 | TSR3 1690 | TRMT10C 1691 | SCAND1 1692 | CELF1 1693 | UHMK1 1694 | CSNK1A1 1695 | PDCD2 1696 | IGSF8 1697 | UPF2 1698 | FBXO32 1699 | DYNLT3 1700 | LPIN1 1701 | ITFG1 1702 | DYNLRB1 1703 | MAPRE1 1704 | HP1BP3 1705 | DPP9 1706 | NSMCE1 1707 | PMVK 1708 | COX18 1709 | SPTLC2 1710 | AP3S1 1711 | TEX264 1712 | SNRPN 1713 | RMDN3 1714 | FDFT1 1715 | CTBS 1716 | PLCG2 1717 | HVCN1 1718 | PRKCSH 1719 | UBE2H 1720 | M6PR 1721 | GSE1 1722 | BICD1 1723 | IARS 1724 | TBCC 1725 | ARPC4 1726 | RAB3B 1727 | UQCC2 1728 | XRCC6 1729 | MRPL34 1730 | CAPNS1 1731 | KDM5A 1732 | CCNC 1733 | MYO1C 1734 | PRIM1 1735 | MPDU1 1736 | C6orf89 1737 | SEC24A 1738 | GSPT1 1739 | CRTAP 1740 | SFT2D2 1741 | PPM1A 1742 | PAG1 1743 | DDA1 1744 | METTL7A 1745 | PCMT1 1746 | MSL1 1747 | IK 1748 | PDCD4 1749 | GRSF1 1750 | SRD5A3 1751 | STAG2 1752 | USP40 1753 | INSR 1754 | TAF9 1755 | ZMYND11 1756 | NDUFA10 1757 | TCOF1 1758 | TPR 1759 | RANGRF 1760 | POLR1D 1761 | PSMA5 1762 | CDK12 1763 | DAZAP2 1764 | UBE2Q2 1765 | RBM47 1766 | PDIA5 1767 | RFWD2 1768 | LRRC59 1769 | PRKCB 1770 | TMEM19 1771 | PPM1B 1772 | TKFC 1773 | SRI 1774 | ADIPOR1 1775 | NGLY1 1776 | NDUFB10 1777 | ANKLE2 1778 | FAM107B 1779 | PSMC4 1780 | VAPA 1781 | SH3TC1 1782 | SLC35B2 1783 | PPP1CC 1784 | STAU1 1785 | CHCHD7 1786 | NOA1 1787 | CLPP 1788 | EIF2AK2 1789 | TMCC2 1790 | DOCK10 1791 | GAA 1792 | CRYBG3 1793 | GTF2A1 1794 | DDI2 1795 | CGREF1 1796 | ATXN2 1797 | ADAR 1798 | PPP3CC 1799 | DAP3 1800 | FOXN3 1801 | SRSF2 1802 | RGL2 1803 | TIMM17A 1804 | FNTA 1805 | NMI 1806 | SLC35B1 1807 | ENTPD5 1808 | DUT 1809 | STOML2 1810 | ARMCX3 1811 | USP48 1812 | NFU1 1813 | RPA2 1814 | BARD1 1815 | FIBP 1816 | CD68 1817 | LYN 1818 | SLU7 1819 | FKBP4 1820 | TRMT44 1821 | DTD1 1822 | APOL1 1823 | TM9SF1 1824 | DNAAF2 1825 | BLK 1826 | PCSK7 1827 | PLK3 1828 | RAB3GAP1 1829 | TCP1 1830 | TEFM 1831 | FAM215B 1832 | PARP11 1833 | RASGRP2 1834 | SPIB 1835 | GPR108 1836 | QTRT1 1837 | PSMD3 1838 | BET1L 1839 | CHRAC1 1840 | MED21 1841 | APH1A 1842 | ABHD17A 1843 | CMC2 1844 | EDEM3 1845 | RNASEH2C 1846 | SSBP4 1847 | PAFAH1B1 1848 | ASNA1 1849 | EIF3B 1850 | FUCA2 1851 | RBM25 1852 | BCL2 1853 | ANXA6 1854 | PHKB 1855 | TOP2B 1856 | KIAA0930 1857 | ZC2HC1A 1858 | NIPBL 1859 | RGS19 1860 | BEX5 1861 | GTF2F2 1862 | ERC1 1863 | NABP1 1864 | ZBTB1 1865 | APMAP 1866 | ACBD6 1867 | IGLV1-51 1868 | ZDHHC17 1869 | CD151 1870 | AP2M1 1871 | G3BP2 1872 | CD2AP 1873 | IFI35 1874 | NSMCE4A 1875 | RAB8A 1876 | UBXN6 1877 | PINK1 1878 | RASSF1 1879 | ECHS1 1880 | ACTR2 1881 | PAICS 1882 | POLR3E 1883 | TARSL2 1884 | EPM2AIP1 1885 | SUPT5H 1886 | ARF3 1887 | EBNA1BP2 1888 | TTLL7 1889 | IRF1 1890 | KLHL24 1891 | CLCC1 1892 | NMRK1 1893 | RINL 1894 | FAM173A 1895 | KMT2C 1896 | NHP2 1897 | IFI16 1898 | AP1B1 1899 | ACADVL 1900 | CD55 1901 | PEA15 1902 | LTN1 1903 | HEXA 1904 | VAMP4 1905 | VKORC1 1906 | ZYG11B 1907 | HMGCS1 1908 | PDHB 1909 | RBBP6 1910 | CHP1 1911 | CTNNBIP1 1912 | WBP11 1913 | ZNF544 1914 | DDX27 1915 | FAM114A1 1916 | STIP1 1917 | GOLPH3 1918 | RAB6A 1919 | CWF19L2 1920 | ST3GAL6 1921 | NDUFS4 1922 | POLD4 1923 | NTMT1 1924 | MPV17 1925 | IRF7 1926 | SGTA 1927 | SPATA20 1928 | EIF1AY 1929 | CKLF-CMTM1 1930 | KIAA0100 1931 | TRIM33 1932 | OTUD1 1933 | HEATR5A 1934 | NCOA5 1935 | C8orf76 1936 | CLK1 1937 | CKLF 1938 | LSM1 1939 | MRPL14 1940 | DCTN6 1941 | UBE2K 1942 | SF3B2 1943 | FCMR 1944 | ACTL6A 1945 | SIDT2 1946 | ZNF524 1947 | C5orf24 1948 | SRP54 1949 | RECQL 1950 | FAM199X 1951 | KHDRBS1 1952 | SLC50A1 1953 | GPAA1 1954 | MRPL32 1955 | BCLAF1 1956 | TMEM179B 1957 | CERS2 1958 | TNFRSF13B 1959 | MLLT3 1960 | N4BP2L1 1961 | RNF113A 1962 | ARL4A 1963 | SLC7A5 1964 | SP140L 1965 | ATP1B3 1966 | PSMB8 1967 | TNK2 1968 | ATRX 1969 | SSBP2 1970 | BOP1 1971 | TSPO 1972 | MBTPS1 1973 | MRPL9 1974 | SCO2 1975 | CLECL1 1976 | MSL2 1977 | ZDHHC23 1978 | GPCPD1 1979 | PLA2G16 1980 | RAD21 1981 | ARPC1A 1982 | CHMP4B 1983 | PRRC2B 1984 | GCLM 1985 | DYNLT1 1986 | TCF3 1987 | FKBP5 1988 | MDH1 1989 | C5orf15 1990 | UBA2 1991 | DIABLO 1992 | JADE1 1993 | CSTF3 1994 | SIPA1L1 1995 | TMED3 1996 | TMEM8B 1997 | SF3B1 1998 | PWWP2A 1999 | OAZ2 2000 | C1orf35 2001 | MRPS2 2002 | HMBOX1 2003 | SLC38A2 2004 | ANKDD1A 2005 | GADD45B 2006 | NTAN1 2007 | SESN1 2008 | PHC3 2009 | NUP210 2010 | PHF23 2011 | MRGBP 2012 | OTULIN 2013 | PIGK 2014 | GBP2 2015 | RNF10 2016 | EBPL 2017 | EMC6 2018 | ZC3H13 2019 | IGKV3-11 2020 | AC078883.3 2021 | RBM19 2022 | ZRSR1 2023 | LINC00882 2024 | STS 2025 | ATP10B 2026 | PURB 2027 | GSTM3 2028 | DCTD 2029 | HNRNPAB 2030 | CAMLG 2031 | IGKV4-1 2032 | NCAPH2 2033 | YTHDF2 2034 | SLC12A6 2035 | MATR3 2036 | MOB2 2037 | CRIPT 2038 | CEBPG 2039 | ENY2 2040 | FAM177A1 2041 | CBX7 2042 | DHX15 2043 | CDC42 2044 | ZCRB1 2045 | SIVA1 2046 | BCKDK 2047 | ZNF701 2048 | ZHX1 2049 | USP3 2050 | ZNF33A 2051 | RAPGEF2 2052 | TMEM259 2053 | SHARPIN 2054 | MSI2 2055 | RAP1A 2056 | ZNF121 2057 | TRIM38 2058 | SARS 2059 | IMPDH1 2060 | TBCEL 2061 | DYNC1I2 2062 | GALNT1 2063 | MCEE 2064 | PPME1 2065 | ATP2A2 2066 | PDAP1 2067 | DHX29 2068 | NXT1 2069 | UBA3 2070 | ALCAM 2071 | ALG13 2072 | CHST12 2073 | ZNF593 2074 | CAPZA2 2075 | INPP5A 2076 | MRFAP1 2077 | PMPCB 2078 | RSL1D1 2079 | HOOK1 2080 | PLOD1 2081 | PCCB 2082 | SUSD2 2083 | ZNF681 2084 | SMAP1 2085 | TMEM238 2086 | KDM2A 2087 | SRRM2 2088 | SERTAD1 2089 | GRAP 2090 | NKG7 2091 | THOC6 2092 | RNF138 2093 | ST3GAL1 2094 | BCL2A1 2095 | EGLN1 2096 | TTC1 2097 | LRRC41 2098 | KAT6B 2099 | OSBP 2100 | DEF6 2101 | POLR2F 2102 | SRPK2 2103 | ITGB7 2104 | TAB2 2105 | MYO9B 2106 | C6orf106 2107 | TAOK3 2108 | SAFB 2109 | CCDC69 2110 | HSD17B11 2111 | C1orf27 2112 | PAK2 2113 | SLC1A5 2114 | GRIPAP1 2115 | LSM14A 2116 | C2orf88 2117 | PFDN4 2118 | BRWD1 2119 | UBA5 2120 | CTHRC1 2121 | BRMS1 2122 | COMMD4 2123 | TP53INP1 2124 | ETFB 2125 | LTBP3 2126 | PITPNB 2127 | TOPORS 2128 | YIF1B 2129 | CCNB1IP1 2130 | TLK1 2131 | RNASEH2B 2132 | CCDC91 2133 | GLOD4 2134 | USP11 2135 | SLC1A4 2136 | RERE 2137 | ARID1A 2138 | MECP2 2139 | MFSD11 2140 | HERC1 2141 | FAM98A 2142 | TMEM107 2143 | C11orf1 2144 | CHD7 2145 | ELL 2146 | EXOSC1 2147 | SNRPD3 2148 | STARD7 2149 | ATL3 2150 | NARS 2151 | PRPS1 2152 | ATM 2153 | KRI1 2154 | DESI1 2155 | MRPL42 2156 | MRPL4 2157 | CCM2 2158 | AGPS 2159 | RARS 2160 | SRSF1 2161 | TWF2 2162 | HEXIM2 2163 | POLR2B 2164 | PDXK 2165 | SCRN2 2166 | ALDH9A1 2167 | TIMM10B 2168 | FKBP3 2169 | PLEKHJ1 2170 | RSRP1 2171 | ITGB1 2172 | OXA1L 2173 | THAP5 2174 | UBQLN1 2175 | UBE3A 2176 | MRPL15 2177 | NDUFA8 2178 | ZNF580 2179 | HECTD4 2180 | LYPLA1 2181 | TMEM70 2182 | HSD17B10 2183 | KRAS 2184 | EIF4ENIF1 2185 | CORO1A 2186 | PRADC1 2187 | EXOSC8 2188 | SGK3 2189 | MEF2A 2190 | STRBP 2191 | ELF2 2192 | ATG13 2193 | MRPL17 2194 | RB1CC1 2195 | RBM4 2196 | RNF7 2197 | ASH1L 2198 | CREM 2199 | C16orf58 2200 | OSER1 2201 | MRPL57 2202 | AATF 2203 | APP 2204 | CALU 2205 | SHKBP1 2206 | RRP15 2207 | HSD17B8 2208 | VASP 2209 | CCNH 2210 | COX11 2211 | TRIM13 2212 | EWSR1 2213 | POLR2J3 2214 | FMNL1 2215 | SHISA5 2216 | BCCIP 2217 | MICU1 2218 | NOMO1 2219 | JADE2 2220 | AAGAB 2221 | PPP4R2 2222 | RRAGA 2223 | C12orf45 2224 | PIH1D1 2225 | DCAF10 2226 | HERPUD2 2227 | BLNK 2228 | NME3 2229 | PRKD3 2230 | GPBP1 2231 | AP4M1 2232 | RCSD1 2233 | SMIM12 2234 | PTDSS1 2235 | FAM89B 2236 | SNW1 2237 | WFS1 2238 | STK40 2239 | TSEN34 2240 | HIST1H1E 2241 | ADCK2 2242 | ZNF33B 2243 | SETD5 2244 | SERPINB1 2245 | PIK3IP1 2246 | RORA 2247 | POU2F1 2248 | ADAM19 2249 | GTF2E1 2250 | ADD3 2251 | AP1G2 2252 | POP7 2253 | SLC25A25 2254 | PGRMC1 2255 | RBMX 2256 | WAS 2257 | PEX11B 2258 | FKBP1A 2259 | ADRM1 2260 | SPOP 2261 | B4GALT2 2262 | DDX6 2263 | ALKBH4 2264 | PCIF1 2265 | LBR 2266 | PRPF38B 2267 | OCIAD2 2268 | CAPN1 2269 | ITGAE 2270 | CNIH1 2271 | RCN1 2272 | RAB1A 2273 | FBXO11 2274 | MGEA5 2275 | TINF2 2276 | KBTBD8 2277 | PIAS1 2278 | PBRM1 2279 | DCUN1D1 2280 | C17orf62 2281 | PTPN6 2282 | PSMA4 2283 | ZNF562 2284 | LCMT1 2285 | MR1 2286 | PGD 2287 | BCL3 2288 | RNPC3 2289 | TMOD3 2290 | TMEM14B 2291 | C2orf74 2292 | TRIM27 2293 | CBX5 2294 | NSD1 2295 | MTMR12 2296 | FBXO18 2297 | TSC22D4 2298 | CISD2 2299 | MAT2B 2300 | VPS4A 2301 | ZNF280D 2302 | SURF6 2303 | STK24 2304 | CDC5L 2305 | CLTA 2306 | DDX19B 2307 | MUM1 2308 | BUB3 2309 | FUT8 2310 | ZDHHC5 2311 | SEPHS1 2312 | CSNK1E 2313 | TSTA3 2314 | UBAP2 2315 | ERN1 2316 | DENND6A 2317 | HTT 2318 | GOSR2 2319 | CARS 2320 | INTS8 2321 | MCM6 2322 | SERTAD3 2323 | VTI1B 2324 | SLC52A2 2325 | MSMO1 2326 | FBXL3 2327 | SLC35D2 2328 | AC104699.1 2329 | MOB1A 2330 | TMX2 2331 | MARS 2332 | PPIP5K2 2333 | COQ4 2334 | SNUPN 2335 | TAF3 2336 | AIDA 2337 | CLK3 2338 | CCT2 2339 | CREBL2 2340 | TBC1D9B 2341 | CCNK 2342 | PRPF40A 2343 | ETNK1 2344 | YPEL3 2345 | UBE2E3 2346 | RNMT 2347 | SMIM7 2348 | ADPRHL2 2349 | ANXA7 2350 | QRSL1 2351 | PRR34-AS1 2352 | SDHA 2353 | NAGLU 2354 | RAB10 2355 | AKAP9 2356 | RNF34 2357 | WDR48 2358 | POLE3 2359 | PDXDC1 2360 | RPS6KA1 2361 | ACAA1 2362 | BRI3 2363 | COBLL1 2364 | SLC25A20 2365 | HPS6 2366 | MRPL45 2367 | TBC1D10C 2368 | RBM26 2369 | YIPF6 2370 | TMEM5 2371 | UNK 2372 | XPO4 2373 | PLEK 2374 | STAT1 2375 | SHOC2 2376 | ARRDC1 2377 | GCC2 2378 | BAZ1A 2379 | MTMR6 2380 | SLC35E2B 2381 | DMTF1 2382 | LAMP1 2383 | LSM10 2384 | C21orf91 2385 | BANF1 2386 | GFOD2 2387 | ATP8B2 2388 | FAM122A 2389 | TNFRSF14 2390 | PARP8 2391 | POLR2J 2392 | DDX54 2393 | FBP1 2394 | HECTD1 2395 | ZNF337 2396 | ZNF331 2397 | PDS5A 2398 | PPAN 2399 | C6orf47 2400 | DGCR6L 2401 | VAMP3 2402 | ME2 2403 | CMTR2 2404 | SUSD3 2405 | C11orf57 2406 | TMEM9B 2407 | RHOB 2408 | PPFIA1 2409 | CCDC112 2410 | ARID4B 2411 | SH3PXD2A 2412 | COIL 2413 | UMAD1 2414 | FAR2 2415 | OXR1 2416 | STX7 2417 | DCXR 2418 | SYNJ2 2419 | SLC43A2 2420 | SYTL3 2421 | COL6A3 2422 | AGPAT3 2423 | STXBP2 2424 | CSNK1D 2425 | FHIT 2426 | MAN2B1 2427 | CYB5A 2428 | PMEPA1 2429 | PRKRIP1 2430 | NDUFB5 2431 | DUSP23 2432 | BLVRB 2433 | POM121 2434 | PHF20L1 2435 | BET1 2436 | HTATSF1 2437 | PIP4K2B 2438 | TRMT1 2439 | BPTF 2440 | TMEM56 2441 | TSPAN13 2442 | GRK5 2443 | CLSTN1 2444 | HBB 2445 | ETHE1 2446 | ARHGAP25 2447 | DMAP1 2448 | C19orf25 2449 | SYNRG 2450 | PDE6D 2451 | YME1L1 2452 | SLMAP 2453 | SURF2 2454 | ZDHHC12 2455 | PGF 2456 | ADORA2A 2457 | ARAF 2458 | YTHDF3-AS1 2459 | PCSK1N 2460 | VMA21 2461 | SPAG7 2462 | DDX50 2463 | ARHGAP5 2464 | PTPN12 2465 | ZNF414 2466 | TLE4 2467 | NFYC 2468 | DIDO1 2469 | PYCR1 2470 | TAF15 2471 | PPCDC 2472 | RHOG 2473 | ATXN1 2474 | DCPS 2475 | KIF1BP 2476 | SLC22A17 2477 | PNPLA8 2478 | IMMP2L 2479 | TMBIM1 2480 | HYI 2481 | ECI2 2482 | FBXL15 2483 | FASTK 2484 | MYH9 2485 | ACTN4 2486 | NPEPPS 2487 | LAMTOR3 2488 | COL9A2 2489 | LENG8 2490 | FBXO45 2491 | CSNK1G2 2492 | TMED5 2493 | ATG4B 2494 | UBQLN2 2495 | MAFG 2496 | POT1 2497 | MTRF1L 2498 | TMEM245 2499 | NR1D2 2500 | SCPEP1 2501 | UBIAD1 2502 | RHOH 2503 | QARS 2504 | MTCH1 2505 | UBE2I 2506 | YWHAG 2507 | FOXN2 2508 | EPSTI1 2509 | CERK 2510 | ZDHHC4 2511 | ELP5 2512 | KBTBD3 2513 | SDHAF1 2514 | LARP4 2515 | SMIM15 2516 | DEGS1 2517 | MAPKAPK5 2518 | RRP36 2519 | CCDC59 2520 | COMMD5 2521 | SMUG1 2522 | RAB11A 2523 | COPS3 2524 | DBNL 2525 | CAPZB 2526 | SYCP2 2527 | CBFA2T2 2528 | ZMYM2 2529 | CSNK1G3 2530 | ZNF559 2531 | TSPYL2 2532 | STK26 2533 | TTPAL 2534 | MAD1L1 2535 | ZCCHC8 2536 | LETMD1 2537 | ZNF83 2538 | NOL8 2539 | RBM5 2540 | KLHL28 2541 | PLIN3 2542 | P4HA1 2543 | SCFD1 2544 | MRPL18 2545 | ZCCHC6 2546 | TCERG1 2547 | ARHGAP30 2548 | CEP350 2549 | SRA1 2550 | APPBP2 2551 | NIT1 2552 | TUBB4B 2553 | MB21D1 2554 | ZFAND2B 2555 | PSMB5 2556 | RANBP1 2557 | WDR89 2558 | PIGF 2559 | PSMG4 2560 | GRINA 2561 | ARFGEF1 2562 | MPP6 2563 | USP4 2564 | CAB39 2565 | H2AFJ 2566 | CYTH2 2567 | UNC50 2568 | DDX39A 2569 | HDAC1 2570 | GOLGA3 2571 | PTPN11 2572 | PSMD6 2573 | USP1 2574 | GTF2IRD2 2575 | SLC9A3R1 2576 | NDRG1 2577 | GTF2A2 2578 | ATP11C 2579 | IMPACT 2580 | FBXO10 2581 | BNIP2 2582 | NUP58 2583 | ITFG2 2584 | DPAGT1 2585 | MRPL3 2586 | ZSCAN16-AS1 2587 | MGRN1 2588 | PSMB10 2589 | ELAVL1 2590 | PSMA3-AS1 2591 | ACADM 2592 | PEPD 2593 | SRSF4 2594 | RDH11 2595 | CDC40 2596 | MRPS36 2597 | ZNF277 2598 | ADO 2599 | CHERP 2600 | IGHV3-33 2601 | FAM120A 2602 | WDR55 2603 | BTF3L4 2604 | CCAR1 2605 | DR1 2606 | MEGF9 2607 | AVL9 2608 | EXOSC3 2609 | CUX1 2610 | STUB1 2611 | NDUFA7 2612 | ZNF143 2613 | BCL7B 2614 | FUCA1 2615 | FOSB 2616 | CDIP1 2617 | MRPL24 2618 | SRRT 2619 | SEC24D 2620 | HAT1 2621 | URM1 2622 | PEF1 2623 | GAR1 2624 | GSK3B 2625 | NUDT21 2626 | COMT 2627 | POLR3F 2628 | PJA2 2629 | RBM33 2630 | NUMB 2631 | ZNF207 2632 | BEX2 2633 | UPF3B 2634 | ERAP1 2635 | SLC7A1 2636 | NAPA-AS1 2637 | FBXO30 2638 | UBE3B 2639 | SETD6 2640 | UTP14C 2641 | PUS7L 2642 | TAP2 2643 | ATG12 2644 | TMED7 2645 | CEACAM21 2646 | ARF6 2647 | CYB561D1 2648 | LIPT1 2649 | PTPRN2 2650 | MAP3K6 2651 | ATG4A 2652 | SZRD1 2653 | LAGE3 2654 | ZRANB2 2655 | SRP14-AS1 2656 | TDP1 2657 | MRPL21 2658 | LGMN 2659 | PPIL4 2660 | MAP3K7 2661 | C5orf51 2662 | AKNA 2663 | STAMBPL1 2664 | MSH6 2665 | ZNF3 2666 | LIMS2 2667 | CWC25 2668 | RALBP1 2669 | FAM214A 2670 | NIFK 2671 | CASC3 2672 | LRRC8A 2673 | EIF2AK1 2674 | PSMC6 2675 | PHB2 2676 | VEZT 2677 | TOR1A 2678 | RANBP2 2679 | MAP4 2680 | PSMD10 2681 | COPS5 2682 | FBXO25 2683 | EHMT2 2684 | HLTF 2685 | PRCC 2686 | PSMC1 2687 | PDCD10 2688 | C11orf98 2689 | MRPL52 2690 | MGA 2691 | HID1 2692 | CNOT1 2693 | TTC17 2694 | MCM8 2695 | TMEM138 2696 | QPRT 2697 | RABEP2 2698 | MYSM1 2699 | WWP1 2700 | USP14 2701 | CCDC115 2702 | CYB5B 2703 | GEMIN7 2704 | ZNF814 2705 | NAA60 2706 | CAMK2G 2707 | SEC13 2708 | POR 2709 | NCBP2 2710 | ZBP1 2711 | MTRNR2L10 2712 | CFAP97 2713 | COMMD7 2714 | DRG1 2715 | SMIM4 2716 | RPAP2 2717 | RBMXL1 2718 | CTSZ 2719 | CLIC4 2720 | RASGRP3 2721 | TAF11 2722 | TSPYL1 2723 | MAP4K4 2724 | RPS6KA5 2725 | AGO2 2726 | YBEY 2727 | DNAAF5 2728 | ABCD2 2729 | CIDEB 2730 | ZBED3 2731 | AKAP10 2732 | ZBTB22 2733 | NUDT22 2734 | CALCOCO1 2735 | RAB34 2736 | EPS8L2 2737 | YWHAH 2738 | PSIP1 2739 | PSMD11 2740 | UQCRC2 2741 | MRPS23 2742 | LRRC57 2743 | CPSF4 2744 | ABHD11 2745 | ATP1A1 2746 | BPGM 2747 | FAM78A 2748 | ATP9B 2749 | TTC31 2750 | ZNF268 2751 | BGLAP 2752 | FAM172A 2753 | HS2ST1 2754 | CIPC 2755 | KCTD6 2756 | ZXDC 2757 | SGK1 2758 | DRAM1 2759 | NUP50 2760 | HSPBAP1 2761 | USP47 2762 | C2CD5 2763 | SLC8A1 2764 | METTL2A 2765 | SAP30L 2766 | UCHL3 2767 | PPP2R2A 2768 | FAM133B 2769 | BOLA3 2770 | AQP3 2771 | IPO5 2772 | ABTB1 2773 | ERCC3 2774 | SLC39A7 2775 | GYG1 2776 | SRSF10 2777 | DCTN3 2778 | ACAT1 2779 | CBR1 2780 | CTSW 2781 | PDHA1 2782 | LMF2 2783 | LRRN1 2784 | BCL2L1 2785 | HBA2 2786 | C7orf50 2787 | SBNO1 2788 | ZNF106 2789 | PURA 2790 | SUPT16H 2791 | NACA2 2792 | OGT 2793 | CCDC97 2794 | GLRX3 2795 | YIPF1 2796 | GMCL1 2797 | WBP1L 2798 | UBE2G2 2799 | MAP3K11 2800 | TFAM 2801 | KPNA3 2802 | IDH3B 2803 | RNF115 2804 | COX20 2805 | TAF4B 2806 | GOLGA2 2807 | RBM7 2808 | DOCK8 2809 | GPRC5D 2810 | RAB1B 2811 | MSN 2812 | TNIP1 2813 | SLC12A2 2814 | NFIA 2815 | SLC16A1-AS1 2816 | CCND3 2817 | WIPF2 2818 | LIMS1 2819 | SLC25A23 2820 | NEK8 2821 | HSF1 2822 | FAM32A 2823 | TUBB 2824 | EP400 2825 | CYP2R1 2826 | CSK 2827 | MED19 2828 | SLC35A5 2829 | IDH3G 2830 | HDAC5 2831 | GMDS 2832 | MED25 2833 | TRAPPC1 2834 | S100A5 2835 | GTF2H2 2836 | ZNF32 2837 | PDPK1 2838 | CASP3 2839 | GTF3C6 2840 | TRAPPC2L 2841 | USP15 2842 | MDK 2843 | DUSP5 2844 | BNIP3L 2845 | MLLT10 2846 | ST3GAL5 2847 | PDHX 2848 | JMJD1C 2849 | TMEM50B 2850 | BBIP1 2851 | GCDH 2852 | TERF1 2853 | TRIM69 2854 | UBE2R2 2855 | UBE2L3 2856 | ZNF440 2857 | CDC6 2858 | SLC45A4 2859 | GMIP 2860 | CEP76 2861 | PHIP 2862 | ARL5A 2863 | SFXN4 2864 | HADH 2865 | CDC73 2866 | GGA2 2867 | PGGT1B 2868 | STAT3 2869 | TSEN15 2870 | CLNS1A 2871 | TAOK1 2872 | C1orf186 2873 | HDGF 2874 | CFAP54 2875 | DBR1 2876 | ZNF563 2877 | KIAA1147 2878 | CMIP 2879 | P3H1 2880 | PTS 2881 | MANEAL 2882 | DNAJC27-AS1 2883 | PLAGL2 2884 | TMEM184C 2885 | PTPRG 2886 | C9orf40 2887 | GBP3 2888 | IRF2BPL 2889 | ATF5 2890 | SSH2 2891 | DPEP1 2892 | IGHV3OR16-13 2893 | CSPP1 2894 | RPL39L 2895 | HMGA1 2896 | CIAO1 2897 | ATG101 2898 | VHL 2899 | TPST2 2900 | ACSS1 2901 | MYO1G 2902 | TNFRSF13C 2903 | CENPH 2904 | RAB33B 2905 | DUSP10 2906 | RASA1 2907 | INPP5D 2908 | SP100 2909 | ZNF274 2910 | PIK3CB 2911 | ARHGAP15 2912 | PAFAH1B2 2913 | COMMD2 2914 | OPN3 2915 | WDR83 2916 | ATP6V0A1 2917 | SPATA33 2918 | SPPL3 2919 | WIPI2 2920 | ELFN1-AS1 2921 | MIATNB 2922 | ALG14 2923 | DDX3Y 2924 | PTP4A3 2925 | CYB561A3 2926 | UBR5 2927 | ADAM10 2928 | CCDC130 2929 | HNRNPH2 2930 | SIRT3 2931 | MFF 2932 | FLII 2933 | VPS54 2934 | C5orf63 2935 | PHF14 2936 | MYCBP 2937 | WDR59 2938 | BTRC 2939 | PNP 2940 | GOT1 2941 | PGM3 2942 | GALK2 2943 | COQ10B 2944 | AASDHPPT 2945 | PPTC7 2946 | SLAIN2 2947 | FIG4 2948 | CCDC61 2949 | SUPT20H 2950 | TMEM170A 2951 | CRELD1 2952 | WIPI1 2953 | C21orf2 2954 | C1GALT1 2955 | MDM2 2956 | API5 2957 | DENR 2958 | TUT1 2959 | TRAPPC6B 2960 | SNRNP25 2961 | DDX41 2962 | CDC42SE1 2963 | PTPN7 2964 | TIMM10 2965 | ZNF638 2966 | FAM120B 2967 | OSBPL11 2968 | PHF20 2969 | NDUFA6 2970 | SPAG6 2971 | PDLIM5 2972 | TMEM106B 2973 | DECR1 2974 | RPS6KB1 2975 | AK2 2976 | PTPN1 2977 | GNPTG 2978 | GSTO1 2979 | TRAPPC4 2980 | SNX25 2981 | LYPLAL1 2982 | MRPS12 2983 | SLC35F2 2984 | THYN1 2985 | RAD23B 2986 | KLHL21 2987 | MIS18BP1 2988 | AP3B1 2989 | RNF126 2990 | GNPTAB 2991 | GANAB 2992 | RPL7L1 2993 | CNIH4 2994 | P2RX5 2995 | DPH2 2996 | USP42 2997 | DDX23 2998 | UQCRHL 2999 | KIDINS220 3000 | GNB2 3001 | FAM174A 3002 | ITPA 3003 | CFAP20 3004 | QSOX2 3005 | UGT2B17 3006 | AMZ2 3007 | HSPA13 3008 | DDIT4 3009 | CHST2 3010 | ERO1A 3011 | NAGPA 3012 | CNOT2 3013 | CXXC1 3014 | SEC23IP 3015 | SEC22C 3016 | DNAJB14 3017 | MRPS27 3018 | AK3 3019 | ARF5 3020 | MORF4L2 3021 | RAB5A 3022 | NASP 3023 | PARP10 3024 | TRAP1 3025 | CYSLTR1 3026 | WDR33 3027 | PPIE 3028 | GPR89B 3029 | FLAD1 3030 | ACYP2 3031 | POMC 3032 | DCTN5 3033 | TTC37 3034 | C4orf33 3035 | SDF2 3036 | MYO5A 3037 | AP2S1 3038 | UPF3A 3039 | ZMPSTE24 3040 | MN1 3041 | BAZ2B 3042 | COX14 3043 | BNIP3 3044 | CENPBD1 3045 | SMC3 3046 | C17orf49 3047 | TM2D2 3048 | ILVBL 3049 | ZNF45 3050 | TPP2 3051 | IST1 3052 | CKAP2 3053 | COA1 3054 | ERGIC1 3055 | TSR2 3056 | OAS2 3057 | CD1D 3058 | PRKCA 3059 | ZNF747 3060 | MRPL27 3061 | PRPF4B 3062 | NOP56 3063 | MKRN1 3064 | EIF4A3 3065 | TXNRD2 3066 | AKR1B1 3067 | TRIM5 3068 | ISOC2 3069 | RFXANK 3070 | BRD7 3071 | NUDT16 3072 | MPEG1 3073 | ILK 3074 | FLOT1 3075 | CD320 3076 | TMEM80 3077 | MAGT1 3078 | ARFGAP2 3079 | TOR1AIP2 3080 | SMARCA4 3081 | RNF31 3082 | TNFRSF4 3083 | TGIF2 3084 | CWC22 3085 | ASCC1 3086 | YKT6 3087 | ZNF688 3088 | FAM213A 3089 | PFDN1 3090 | NCOA2 3091 | IDUA 3092 | SC5D 3093 | HPS5 3094 | SLC25A11 3095 | SUGT1 3096 | AKIRIN1 3097 | GLIPR1 3098 | MTSS1 3099 | MCM3 3100 | DHX9 3101 | SLC38A5 3102 | BAK1 3103 | DUSP22 3104 | IGF2R 3105 | CTNNA1 3106 | LILRB1 3107 | TFE3 3108 | GNPAT 3109 | OAS3 3110 | TMEM222 3111 | TMEM42 3112 | BTN3A3 3113 | POLDIP2 3114 | GLRX5 3115 | ALG8 3116 | BZW2 3117 | ESYT2 3118 | EIF2B1 3119 | C17orf58 3120 | MCM5 3121 | GABPB1-AS1 3122 | DNASE2 3123 | ZNF770 3124 | CLDN12 3125 | WAC-AS1 3126 | MRPS22 3127 | ATG3 3128 | ACP2 3129 | EMC2 3130 | MRPS5 3131 | SCLT1 3132 | ANKRD10 3133 | MIF4GD 3134 | VRK2 3135 | BCL2L11 3136 | ATP5C1 3137 | NDUFAF2 3138 | RGCC 3139 | CRIP1 3140 | IGHV3-43 3141 | FAM53B 3142 | FNBP4 3143 | MRPL30 3144 | MCMBP 3145 | BCL2L13 3146 | MMADHC 3147 | PRKCE 3148 | DMXL1 3149 | LZIC 3150 | EHMT1 3151 | FAM45A 3152 | PLIN2 3153 | ZNF532 3154 | TUBB6 3155 | SLC25A36 3156 | GNPDA2 3157 | ANGPTL6 3158 | BTBD7 3159 | MRPL10 3160 | THAP11 3161 | RPRD1A 3162 | MAGEH1 3163 | IER5 3164 | HYPK 3165 | AP4E1 3166 | NBR1 3167 | PIK3CD-AS2 3168 | AKT1 3169 | INO80E 3170 | EMB 3171 | C19orf66 3172 | NT5C3B 3173 | CAPRIN1 3174 | RSAD1 3175 | FGD3 3176 | ENTPD1 3177 | PCYOX1 3178 | C22orf39 3179 | ABCF1 3180 | TCTN3 3181 | ZNF768 3182 | REL 3183 | SIT1 3184 | INPP5K 3185 | CD70 3186 | SLC35F5 3187 | TRMT13 3188 | RAB13 3189 | NUAK2 3190 | ERCC1 3191 | ZNF529-AS1 3192 | STK10 3193 | CD40 3194 | TAF1B 3195 | FAM159A 3196 | UBR3 3197 | ARNTL 3198 | KAT5 3199 | UBE2QL1 3200 | ECHDC1 3201 | SLC16A1 3202 | MIR181A1HG 3203 | KIF5B 3204 | PTRHD1 3205 | CHAMP1 3206 | MALT1 3207 | KIAA2013 3208 | IGFLR1 3209 | B4GALT7 3210 | CDIPT 3211 | HEXDC 3212 | METAP1 3213 | KNOP1 3214 | C1orf52 3215 | NELFA 3216 | ASL 3217 | MPRIP 3218 | OFD1 3219 | WDR54 3220 | ZNF480 3221 | ARGLU1 3222 | DNAJA3 3223 | ARRB2 3224 | ZNF224 3225 | NAT9 3226 | WDR13 3227 | RASSF5 3228 | EML4 3229 | GMEB2 3230 | MSTO1 3231 | PAPD4 3232 | BRIX1 3233 | ARSA 3234 | FNDC3A 3235 | FH 3236 | COASY 3237 | SMCHD1 3238 | SMARCD1 3239 | SELPLG 3240 | MPLKIP 3241 | PRKD2 3242 | IARS2 3243 | FDX1 3244 | MKNK2 3245 | UBE2E2 3246 | ATP10D 3247 | KIF22 3248 | ANG 3249 | SETD2 3250 | IPO4 3251 | HEBP1 3252 | TST 3253 | CTDSP1 3254 | CDC37L1 3255 | COCH 3256 | ANKRD39 3257 | CYB561 3258 | YIPF2 3259 | CISD3 3260 | COPS4 3261 | TMEM141 3262 | GLUL 3263 | TMX3 3264 | CAT 3265 | ZC3H11A 3266 | KIF13B 3267 | AK6 3268 | CASP4 3269 | ATP5S 3270 | THUMPD3 3271 | SDHC 3272 | USP7 3273 | IFITM2 3274 | FOPNL 3275 | AIG1 3276 | ALG5 3277 | CARD8 3278 | UMPS 3279 | BIN2 3280 | RAB3D 3281 | NSF 3282 | NDUFAF4 3283 | GALNT2 3284 | NFE2L3 3285 | PIGBOS1 3286 | TGFB1 3287 | ZDHHC6 3288 | TRIP11 3289 | AZI2 3290 | PELP1 3291 | ITGAV 3292 | C12orf10 3293 | CAMKK2 3294 | LMF1 3295 | HIST1H1D 3296 | ACSL4 3297 | NRROS 3298 | PRKAA1 3299 | SCFD2 3300 | GGA1 3301 | RCHY1 3302 | FBXL5 3303 | PLEKHA3 3304 | G3BP1 3305 | TRAF4 3306 | MYO19 3307 | LARP7 3308 | NUP62 3309 | MED28 3310 | ENOPH1 3311 | AKAP8 3312 | PPOX 3313 | GPR155 3314 | ZFAND5 3315 | KIAA1143 3316 | POLR2K 3317 | KIAA1551 3318 | CEP68 3319 | KLHDC8A 3320 | SEMA4B 3321 | GDPGP1 3322 | TGFBR3L 3323 | MAST4 3324 | GPATCH8 3325 | ZNF141 3326 | HOXB7 3327 | SLC30A9 3328 | IGKV3-15 3329 | FEZ2 3330 | FGL2 3331 | PPCS 3332 | NEK7 3333 | ADRB2 3334 | KIAA1191 3335 | ATP11A 3336 | RBM15 3337 | ZNF596 3338 | FBXL16 3339 | ZDHHC7 3340 | ZNF746 3341 | ZHX3 3342 | CRHBP 3343 | KCTD3 3344 | TRPM7 3345 | PAPD7 3346 | ORC2 3347 | UHRF1BP1 3348 | PLBD1 3349 | REPS1 3350 | TTC7B 3351 | STK38 3352 | MGAT3 3353 | ATG5 3354 | SYNE3 3355 | PTPN18 3356 | CNEP1R1 3357 | CRACR2A 3358 | C11orf95 3359 | BIN3 3360 | RPAP3 3361 | KIF1B 3362 | SSPN 3363 | DVL3 3364 | TMEM159 3365 | MSS51 3366 | INPPL1 3367 | CETN3 3368 | SLC5A3 3369 | VIM-AS1 3370 | NAA30 3371 | CYP27B1 3372 | KCTD1 3373 | FKBP7 3374 | NLRP2 3375 | RNF121 3376 | SLCO4A1 3377 | ARHGEF2 3378 | ZNF430 3379 | ZNF652 3380 | EIF4E2 3381 | ALDH18A1 3382 | ALDH1L2 3383 | PPP1R12A 3384 | ZNF292 3385 | RNF13 3386 | DDX1 3387 | SIAH2 3388 | SKAP2 3389 | BAZ2A 3390 | NFIC 3391 | DOCK2 3392 | CYP20A1 3393 | CTAG2 3394 | NCLN 3395 | RRP1 3396 | VPS35 3397 | NUTM2B-AS1 3398 | AARS 3399 | BORCS7 3400 | UNC45A 3401 | WDR43 3402 | RANBP3 3403 | CCDC137 3404 | ARRDC1-AS1 3405 | ATG16L2 3406 | TNFRSF10D 3407 | HEXA-AS1 3408 | DUSP26 3409 | ZMAT1 3410 | UBL3 3411 | C2orf69 3412 | TAF8 3413 | FAM98C 3414 | HHLA3 3415 | ATAD3B 3416 | ATXN7L3 3417 | GIT2 3418 | PHTF1 3419 | TFRC 3420 | CRYZL1 3421 | SPSB2 3422 | GTF2IRD2B 3423 | TCTEX1D2 3424 | DPP8 3425 | TMC8 3426 | UBXN7 3427 | INPP5F 3428 | NISCH 3429 | TTC5 3430 | INO80C 3431 | TBC1D17 3432 | COMMD8 3433 | CLUAP1 3434 | ZNF594 3435 | MAP2K3 3436 | AGPAT2 3437 | CHKB 3438 | FUBP3 3439 | GH1 3440 | RASAL3 3441 | EMSY 3442 | PDS5B 3443 | SPSB3 3444 | RARA 3445 | TUBA1A 3446 | ALS2 3447 | PGP 3448 | COPS7B 3449 | SLC15A2 3450 | FAM193B 3451 | LRSAM1 3452 | CCR7 3453 | VCPIP1 3454 | ENTPD1-AS1 3455 | SAMHD1 3456 | ETS1 3457 | TRAF5 3458 | LIG4 3459 | SFXN5 3460 | HGSNAT 3461 | CD82 3462 | SRD5A1 3463 | SMG9 3464 | LYRM2 3465 | DHX8 3466 | ZNF267 3467 | PROSER3 3468 | CC2D1B 3469 | MDS2 3470 | COQ9 3471 | TCEAL1 3472 | NT5DC3 3473 | ARHGAP44 3474 | PYHIN1 3475 | SHPRH 3476 | MT2A 3477 | APIP 3478 | MUS81 3479 | PSMG3 3480 | LCK 3481 | SLX4IP 3482 | NOTCH4 3483 | MBTD1 3484 | TRAF3IP3 3485 | DLGAP1-AS1 3486 | PQLC1 3487 | OXSM 3488 | CPSF2 3489 | TMEM206 3490 | ANKRD54 3491 | HIF1A 3492 | TDRD3 3493 | TPT1-AS1 3494 | ELMSAN1 3495 | ZYG11A 3496 | TRIM26 3497 | CEP41 3498 | SMYD4 3499 | GPM6B 3500 | PANK4 3501 | ZNF561 3502 | LBH 3503 | MX2 3504 | GTF2H3 3505 | RNASEH2A 3506 | EGR1 3507 | FARP2 3508 | ZNF737 3509 | TARDBP 3510 | FOXP1 3511 | HELQ 3512 | DCK 3513 | C19orf68 3514 | NOL9 3515 | NKIRAS1 3516 | EI24 3517 | ZDHHC24 3518 | CTR9 3519 | RCC1 3520 | PTEN 3521 | TMPO 3522 | TNFAIP8 3523 | AIP 3524 | TAF1D 3525 | GNG11 3526 | SPINT2 3527 | MCPH1 3528 | VEZF1 3529 | SNF8 3530 | CSRP1 3531 | AP1M1 3532 | IL17RA 3533 | DNAJC8 3534 | SLC35C1 3535 | CNOT8 3536 | ARIH2 3537 | TMEM248 3538 | IMPAD1 3539 | TMEM160 3540 | GSTK1 3541 | ATG4C 3542 | ABHD12 3543 | MLH1 3544 | DFFA 3545 | HEMK1 3546 | ZNF275 3547 | ADH5 3548 | ZMAT3 3549 | MRPL11 3550 | LASP1 3551 | GLG1 3552 | AMD1 3553 | VEGFB 3554 | BMF 3555 | CYB5R2 3556 | RNF20 3557 | C12orf43 3558 | KHSRP 3559 | MAPK6 3560 | OARD1 3561 | OVCA2 3562 | FCER2 3563 | CIAPIN1 3564 | LIMD1 3565 | RNF170 3566 | TMEM167B 3567 | RMND1 3568 | TATDN2 3569 | STXBP3 3570 | MFN2 3571 | C16orf86 3572 | MED14 3573 | PGPEP1 3574 | LRRFIP2 3575 | ARSD 3576 | PINX1 3577 | COPS7A 3578 | PHF11 3579 | MRPL46 3580 | KCNAB2 3581 | TMEM18 3582 | TMEM243 3583 | EGLN2 3584 | CHMP5 3585 | SLC9B2 3586 | USF3 3587 | DDX28 3588 | RETSAT 3589 | ZNF26 3590 | WDR41 3591 | GTF2B 3592 | RSPH3 3593 | ARHGAP1 3594 | TMEM57 3595 | NBAS 3596 | CHTOP 3597 | LSR 3598 | IGKV1-6 3599 | PIK3CG 3600 | ASPHD2 3601 | ZNF69 3602 | RIPK1 3603 | GOLIM4 3604 | VPS25 3605 | PSMC5 3606 | FAM136A 3607 | CUL4A 3608 | UVRAG 3609 | SMAD2 3610 | LINC01480 3611 | ZNF260 3612 | PITHD1 3613 | MRPL37 3614 | NBEAL1 3615 | CD200 3616 | ORMDL2 3617 | MAP3K1 3618 | PRMT2 3619 | BBC3 3620 | BLOC1S2 3621 | BDP1 3622 | GALNT10 3623 | MTMR3 3624 | LINC-PINT 3625 | PFKL 3626 | MADD 3627 | TBC1D25 3628 | BOLA3-AS1 3629 | HMGCR 3630 | SLC35F6 3631 | DGCR2 3632 | GIGYF2 3633 | NCAPD3 3634 | GPR160 3635 | HELB 3636 | EMC1 3637 | GABRA4 3638 | DIS3L 3639 | WDR82 3640 | EXT1 3641 | ZNF684 3642 | RECQL5 3643 | MRPS10 3644 | KIAA0586 3645 | BRCA2 3646 | WDR81 3647 | BLOC1S4 3648 | TRMT12 3649 | RAB31 3650 | CDK14 3651 | NUB1 3652 | DCTPP1 3653 | SIGIRR 3654 | GPS2 3655 | DCTN2 3656 | PIK3C2A 3657 | C1RL 3658 | NOL10 3659 | ST8SIA4 3660 | TIPARP 3661 | PTRH2 3662 | C5orf42 3663 | KPNA6 3664 | ANKRD11 3665 | SDE2 3666 | ASPSCR1 3667 | HUWE1 3668 | ASRGL1 3669 | PPP3CA 3670 | USP13 3671 | SMU1 3672 | FARS2 3673 | FAM98B 3674 | TTF1 3675 | CAND1 3676 | SNRPA 3677 | MRPL44 3678 | TNFAIP3 3679 | GGNBP2 3680 | WDR46 3681 | GCSH 3682 | IGLC7 3683 | SLC39A14 3684 | JMY 3685 | ALAD 3686 | MED22 3687 | PSMD1 3688 | CMAS 3689 | PEX26 3690 | SPN 3691 | RTFDC1 3692 | CTDSP2 3693 | TYW1B 3694 | TMEM237 3695 | DOLK 3696 | ACADS 3697 | ZNF587 3698 | ANKRD49 3699 | ERCC6L2 3700 | PTBP3 3701 | ZNF215 3702 | CD3D 3703 | PGBD4 3704 | FER 3705 | RNF149 3706 | STT3A 3707 | FTSJ3 3708 | TUBGCP6 3709 | ADAM28 3710 | SLC39A4 3711 | PIN4 3712 | BAX 3713 | MDFIC 3714 | CAV2 3715 | FAM207A 3716 | KEAP1 3717 | SLC25A39 3718 | RABIF 3719 | DDX56 3720 | RNPEP 3721 | TSNAX 3722 | RCN2 3723 | CARD19 3724 | ZNF148 3725 | RNF213 3726 | STOM 3727 | SP1 3728 | PRKRA 3729 | CGRRF1 3730 | BMS1 3731 | TNIP2 3732 | SNRPA1 3733 | PRAF2 3734 | TMEM199 3735 | NMU 3736 | C4orf46 3737 | ECSIT 3738 | CD83 3739 | ATP2B1 3740 | ZBTB43 3741 | VGLL4 3742 | OAT 3743 | RABGGTB 3744 | ZNF124 3745 | AP000769.1 3746 | SNX6 3747 | SPG7 3748 | NSDHL 3749 | TMUB2 3750 | FPGS 3751 | C3orf38 3752 | LIG1 3753 | RABGAP1L 3754 | TYSND1 3755 | RSBN1L 3756 | PPP4R3A 3757 | NOLC1 3758 | CFL2 3759 | MAGOH 3760 | OPTN 3761 | IFT20 3762 | NAA20 3763 | EEF1E1 3764 | CASP8AP2 3765 | HSPA14 3766 | SNX4 3767 | RBCK1 3768 | ATN1 3769 | USP34 3770 | RAB18 3771 | NOP16 3772 | POLD2 3773 | GALC 3774 | PCK2 3775 | TXK 3776 | SERTAD2 3777 | SNHG10 3778 | NEB 3779 | NFATC2 3780 | AMY2B 3781 | TRAPPC5 3782 | GOLGA1 3783 | SAMD4A 3784 | SEC24B 3785 | TMEM91 3786 | ZBTB44 3787 | VPS18 3788 | RAB14 3789 | CHST11 3790 | SCNN1B 3791 | PDCD6 3792 | C1orf122 3793 | PEX2 3794 | NACC1 3795 | TAB3 3796 | GADD45G 3797 | SLC37A3 3798 | ATP5L2 3799 | HHAT 3800 | ITPR2 3801 | GAREM2 3802 | RSBN1 3803 | ZNF451 3804 | SNX11 3805 | TSPAN17 3806 | PMAIP1 3807 | BANP 3808 | FAM3A 3809 | ZNF320 3810 | PLXNC1 3811 | NFATC1 3812 | DPH7 3813 | ZBED1 3814 | SMAGP 3815 | L3MBTL3 3816 | TLE1 3817 | NDUFAF6 3818 | CRTC3 3819 | USP9X 3820 | HNRNPA1L2 3821 | SETDB1 3822 | CCNG2 3823 | RBM43 3824 | ZBTB33 3825 | LYST 3826 | HNRNPL 3827 | PRKAG2 3828 | NCBP3 3829 | CLASRP 3830 | PRR14 3831 | CDR2 3832 | BCR 3833 | CASP7 3834 | ZNF680 3835 | YY1AP1 3836 | ACAP2 3837 | ATP10A 3838 | OTUD3 3839 | GPR137B 3840 | ZNF565 3841 | MTR 3842 | NFAT5 3843 | SCIMP 3844 | RBM34 3845 | TCF7 3846 | PHTF2 3847 | STXBP5 3848 | ZEB2 3849 | ZNF548 3850 | HHEX 3851 | CELF2 3852 | ENC1 3853 | SIK2 3854 | MED15 3855 | GFOD1 3856 | IL10RB-AS1 3857 | PRSS27 3858 | CTNS 3859 | LTB 3860 | LDLRAP1 3861 | DENND5B 3862 | NDUFS3 3863 | GID8 3864 | LDAH 3865 | TRNT1 3866 | ZFP91 3867 | PCGF3 3868 | TSHZ2 3869 | BACH1 3870 | CASC4 3871 | EAPP 3872 | C7orf73 3873 | ATG10 3874 | SKA2 3875 | ATP8A2 3876 | LINC00324 3877 | PER2 3878 | SNX30 3879 | BEX4 3880 | SLC25A28 3881 | BLZF1 3882 | EEA1 3883 | AP2A1 3884 | DCAF7 3885 | E2F5 3886 | CDK5RAP3 3887 | SLC35A4 3888 | OCEL1 3889 | HSD17B4 3890 | WWC3 3891 | MPST 3892 | QDPR 3893 | IFNGR2 3894 | FBXO7 3895 | EPB41L4A 3896 | ZKSCAN1 3897 | KCTD5 3898 | NUDT8 3899 | PPM1G 3900 | SLAMF1 3901 | ATP6V0A2 3902 | PRELID3B 3903 | DNAJC19 3904 | APPL1 3905 | C11orf80 3906 | ZNF91 3907 | SOAT1 3908 | METTL14 3909 | RAPGEF1 3910 | USP10 3911 | GGACT 3912 | USF2 3913 | NOC2L 3914 | PLEKHM1 3915 | TMX4 3916 | FERMT3 3917 | PPP1R14B 3918 | LRCH4 3919 | NRBF2 3920 | C5orf56 3921 | TMEM175 3922 | PARL 3923 | AMDHD2 3924 | XPOT 3925 | HTATIP2 3926 | DNAAF1 3927 | SLC39A3 3928 | MIXL1 3929 | GBA 3930 | TSC2 3931 | SETX 3932 | PSMD12 3933 | ARHGEF12 3934 | NAA15 3935 | FGD2 3936 | NCK1-AS1 3937 | STRN3 3938 | AHSA1 3939 | WDR70 3940 | ANKIB1 3941 | ATXN2L 3942 | ETF1 3943 | UBE2E1 3944 | KIAA0368 3945 | CXCR3 3946 | CLK4 3947 | ZNF766 3948 | MTFR1L 3949 | POFUT1 3950 | HIGD1A 3951 | PPP3CB 3952 | TCAIM 3953 | PCCA 3954 | ATP6V1C1 3955 | FAM220A 3956 | CCT6A 3957 | PRIM2 3958 | LONP2 3959 | MEMO1 3960 | COA4 3961 | PPP1R11 3962 | EVI5 3963 | RNF187 3964 | PIP5K1B 3965 | PSMD13 3966 | JAK2 3967 | GXYLT1 3968 | COL4A3BP 3969 | RNGTT 3970 | DENND1B 3971 | WBP1 3972 | OGDH 3973 | METTL5 3974 | TMEM9 3975 | AHCYL1 3976 | RPP30 3977 | RPF1 3978 | SPTSSA 3979 | RHOT2 3980 | SYMPK 3981 | MRPL48 3982 | MAT2A 3983 | GTPBP3 3984 | MAPK13 3985 | RAB11FIP2 3986 | STX2 3987 | LMBRD1 3988 | INSIG2 3989 | SLC25A38 3990 | CMSS1 3991 | DEF8 3992 | PTRH1 3993 | SBDS 3994 | ARHGEF40 3995 | EIF4EBP3 3996 | GPN1 3997 | ZRSR2 3998 | RAB27A 3999 | GLA 4000 | SIGMAR1 4001 | VBP1 4002 | OSGEP 4003 | ZC3H18 4004 | LAMC1 4005 | ACTR1B 4006 | TRPC4AP 4007 | RNASE4 4008 | MRPL49 4009 | EHD4 4010 | FAM114A2 4011 | GBP5 4012 | CDC16 4013 | RBSN 4014 | COPS8 4015 | FURIN 4016 | TULP4 4017 | IRF9 4018 | ZBTB21 4019 | VDAC3 4020 | SQLE 4021 | LINC01055 4022 | RBM18 4023 | NIT2 4024 | CDC26 4025 | FAF1 4026 | SYNJ2BP 4027 | MFNG 4028 | AVEN 4029 | C2orf76 4030 | NRAS 4031 | C11orf63 4032 | CCT5 4033 | ECE2 4034 | RRP7A 4035 | NUTF2 4036 | USP22 4037 | CHD8 4038 | AGO3 4039 | FAM208A 4040 | PHYKPL 4041 | PAF1 4042 | ADA 4043 | HDAC9 4044 | UCKL1 4045 | NUBP1 4046 | RAD9A 4047 | MBNL2 4048 | MFSD1 4049 | SLFN11 4050 | BTN3A1 4051 | CLPTM1 4052 | SAFB2 4053 | BCAT2 4054 | TRUB2 4055 | KIF2A 4056 | EPB41L4A-AS1 4057 | SSRP1 4058 | SNRNP27 4059 | TMEM216 4060 | DCAF5 4061 | TMEM161A 4062 | TOMM40 4063 | CD180 4064 | EPN1 4065 | AIM2 4066 | EIF2D 4067 | ADCY7 4068 | TOB1 4069 | POLR2H 4070 | THEM4 4071 | HCG11 4072 | C15orf40 4073 | APTX 4074 | ANP32A 4075 | PTGES2 4076 | SUMO3 4077 | CPNE3 4078 | POLK 4079 | ZFAND1 4080 | G6PD 4081 | CCDC174 4082 | ANKRD28 4083 | HOMER3 4084 | TMEM101 4085 | SHROOM1 4086 | SMOC1 4087 | HBP1 4088 | CNOT6L 4089 | RNF141 4090 | ZNF428 4091 | INTS10 4092 | FCGRT 4093 | POLE4 4094 | BLCAP 4095 | GTF2H1 4096 | DNAJC13 4097 | WSB1 4098 | CEP104 4099 | SMOX 4100 | TPRKB 4101 | TIPRL 4102 | TRAPPC6A 4103 | SLC39A11 4104 | RBM38 4105 | CETN2 4106 | TIMM9 4107 | PQLC3 4108 | GPS1 4109 | HAPLN1 4110 | CUL1 4111 | COMTD1 4112 | SLC35A2 4113 | IQCB1 4114 | KIAA0907 4115 | LUC7L 4116 | PGLYRP2 4117 | SNHG7 4118 | PAXIP1-AS1 4119 | RPL26L1 4120 | MAN1B1 4121 | CHURC1 4122 | TRPT1 4123 | CHCHD5 4124 | MZT2A 4125 | BID 4126 | ZNF511 4127 | ACOT13 4128 | TSPAN7 4129 | SMPD1 4130 | MTMR14 4131 | STAT4 4132 | TIAL1 4133 | ARFRP1 4134 | BTD 4135 | RBM22 4136 | SLC25A26 4137 | IDH3A 4138 | SNX17 4139 | SNAPC5 4140 | CARHSP1 4141 | ASPH 4142 | USE1 4143 | DHRS4L2 4144 | RBM42 4145 | EIF4EBP1 4146 | MRPS9 4147 | DOHH 4148 | EIF2B2 4149 | PPP1R12B 4150 | PLEKHH3 4151 | SIAE 4152 | KIAA1109 4153 | BBS10 4154 | LAG3 4155 | PUSL1 4156 | CAMSAP2 4157 | DST 4158 | MIB1 4159 | VARS2 4160 | KIAA1586 4161 | ABCC4 4162 | TSHR 4163 | RBMS1 4164 | CHORDC1 4165 | SH3YL1 4166 | R3HDM1 4167 | CBWD1 4168 | EBP 4169 | MIIP 4170 | SCP2 4171 | HDHD3 4172 | MRPL13 4173 | STIM2 4174 | CHD6 4175 | CPTP 4176 | PDLIM1 4177 | TFDP2 4178 | RUBCN 4179 | PCM1 4180 | NUDT5 4181 | GCN1 4182 | SLC2A11 4183 | CCDC93 4184 | SATB2 4185 | SAMD4B 4186 | XRN2 4187 | POLL 4188 | SCAPER 4189 | MBNL3 4190 | SGTB 4191 | TRAT1 4192 | FAM161A 4193 | ACBD4 4194 | ZER1 4195 | NCK1 4196 | MAEA 4197 | GPATCH2L 4198 | RHBDD3 4199 | TDG 4200 | DXO 4201 | OSTM1 4202 | TM7SF2 4203 | XAB2 4204 | RTCB 4205 | HUS1 4206 | TMA16 4207 | CDKAL1 4208 | POP4 4209 | PAQR6 4210 | PDCD6IP 4211 | RUVBL2 4212 | TOLLIP 4213 | CNOT3 4214 | SMARCE1 4215 | MYD88 4216 | MICU2 4217 | NUPL2 4218 | CCNDBP1 4219 | CYB561D2 4220 | MAPKAPK2 4221 | VAMP8 4222 | IDNK 4223 | MALSU1 4224 | CTSB 4225 | MFSD3 4226 | NR2F6 4227 | SNX15 4228 | RPS6KC1 4229 | RAD17 4230 | MRPL16 4231 | SLC10A3 4232 | RAB8B 4233 | SDHAF2 4234 | STAP1 4235 | LYRM7 4236 | USP20 4237 | EDRF1 4238 | INAFM1 4239 | MYL6B 4240 | SLC38A7 4241 | MLX 4242 | FLYWCH2 4243 | TMEM69 4244 | DYNC1LI2 4245 | RPUSD3 4246 | LIX1L 4247 | PMM1 4248 | HAUS2 4249 | KANK1 4250 | JOSD1 4251 | DYNC2LI1 4252 | VPS72 4253 | EPOR 4254 | PNPLA4 4255 | RPP25 4256 | KDELR3 4257 | NFATC3 4258 | ATP1B1 4259 | RAB29 4260 | MAP4K1 4261 | FAN1 4262 | CEBPZOS 4263 | IFRD2 4264 | ZDHHC16 4265 | NUMA1 4266 | RITA1 4267 | HMGN4 4268 | IVD 4269 | PLGRKT 4270 | TPD52L2 4271 | EFCAB2 4272 | CORO1C 4273 | TRIAP1 4274 | KLHDC2 4275 | SLC30A5 4276 | SKI 4277 | APBB1IP 4278 | MCOLN1 4279 | PDZD11 4280 | TMX1 4281 | KCTD10 4282 | HCCS 4283 | NADSYN1 4284 | DCP1A 4285 | COX16 4286 | CCR10 4287 | PDE12 4288 | APEH 4289 | NDE1 4290 | DHX36 4291 | PIP4K2C 4292 | CCDC120 4293 | SH3GLB2 4294 | STX17 4295 | ERLIN1 4296 | VMP1 4297 | UBE2M 4298 | UGGT2 4299 | NUDT2 4300 | KDM3B 4301 | CNOT6 4302 | RPUSD2 4303 | ZMIZ2 4304 | TRMU 4305 | CMTR1 4306 | L3MBTL2 4307 | MAF1 4308 | NKAP 4309 | CUL3 4310 | PARP4 4311 | SYNE2 4312 | KIF3B 4313 | TTC7A 4314 | TRIM2 4315 | MOB3A 4316 | OTUD5 4317 | PLCD1 4318 | KIAA1217 4319 | DEXI 4320 | SDHAF3 4321 | BECN1 4322 | TBCE 4323 | CCDC28A 4324 | ATIC 4325 | NUS1 4326 | RALGAPA1 4327 | CUEDC2 4328 | LINC00116 4329 | MEA1 4330 | ITPKB 4331 | NBEA 4332 | FIRRE 4333 | DNAJC14 4334 | INTS12 4335 | OGFOD1 4336 | MRPL19 4337 | RAF1 4338 | RAB9A 4339 | LPIN2 4340 | DNPEP 4341 | TESC 4342 | HPRT1 4343 | APOL6 4344 | HPS1 4345 | ODF3B 4346 | TRIT1 4347 | DYNC1H1 4348 | ACADSB 4349 | PSEN2 4350 | CHTF8 4351 | ORAI3 4352 | IGLV3-10 4353 | PRPF4 4354 | PAIP1 4355 | TSN 4356 | TMEM53 4357 | TRIM56 4358 | PDZRN4 4359 | R3HDM4 4360 | PCDH9 4361 | MIR193BHG 4362 | LAT2 4363 | CRYL1 4364 | CBR4 4365 | CBL 4366 | PAGR1 4367 | NSFL1C 4368 | JARID2 4369 | CALML4 4370 | DGKD 4371 | CDC123 4372 | TBC1D20 4373 | LIN7B 4374 | TMEM41A 4375 | IKZF1 4376 | RING1 4377 | WDTC1 4378 | ATP11B 4379 | ATF2 4380 | ZNF43 4381 | H6PD 4382 | MRPL2 4383 | DCTN1 4384 | MRS2 4385 | DBF4 4386 | PPP2R5A 4387 | KDM1A 4388 | RHOQ 4389 | STIM1 4390 | MAMDC4 4391 | PYGB 4392 | TMEM129 4393 | C7orf26 4394 | CMTM7 4395 | HSD17B12 4396 | BOLA1 4397 | PXK 4398 | FBXO48 4399 | MLF2 4400 | C1D 4401 | CTSA 4402 | PUS3 4403 | CRY2 4404 | HNRNPUL1 4405 | LCOR 4406 | STARD13 4407 | UBE2S 4408 | DCAF8 4409 | TIMM50 4410 | CCDC12 4411 | C9orf72 4412 | XRCC1 4413 | NEIL2 4414 | MARK3 4415 | ANAPC15 4416 | CHCHD3 4417 | NFS1 4418 | CDC27 4419 | IFI27L1 4420 | YEATS4 4421 | UGGT1 4422 | MINPP1 4423 | CYLD 4424 | ENKD1 4425 | RWDD2A 4426 | DLG3 4427 | TRMT2A 4428 | PSMB8-AS1 4429 | SH2D3A 4430 | CHDH 4431 | TUSC2 4432 | JMJD4 4433 | CHCHD1 4434 | VPS13C 4435 | SMC1A 4436 | ITSN2 4437 | NCOR1 4438 | ETFDH 4439 | IGLV3-19 4440 | MS4A4A 4441 | EPS15 4442 | QPCTL 4443 | GPANK1 4444 | KIAA0319L 4445 | DZIP3 4446 | C17orf75 4447 | PSEN1 4448 | ATE1 4449 | RUFY1 4450 | CUL7 4451 | RHBDF1 4452 | CDK16 4453 | PHF21A 4454 | ERCC6 4455 | CSTF2T 4456 | KANSL3 4457 | KIF20B 4458 | EPB41L3 4459 | ACAD11 4460 | GAPVD1 4461 | SLC8B1 4462 | RASGEF1A 4463 | ZNF669 4464 | CCRL2 4465 | AZIN1-AS1 4466 | GNA12 4467 | SLC5A6 4468 | BCL10 4469 | PTPN9 4470 | LINC00205 4471 | BNIP1 4472 | MAP2K6 4473 | LRTOMT 4474 | C14orf159 4475 | ZNF286A 4476 | ASTE1 4477 | MXD3 4478 | TRIM8 4479 | ALKBH1 4480 | FAM222B 4481 | ABHD8 4482 | LMBR1 4483 | ISOC1 4484 | MRPL36 4485 | DPM2 4486 | PSMG1 4487 | ARFGEF2 4488 | GSR 4489 | NHSL2 4490 | MERTK 4491 | U2AF1L4 4492 | GALK1 4493 | UROD 4494 | MTA2 4495 | SCCPDH 4496 | VAT1 4497 | GTF2F1 4498 | CD9 4499 | C12orf49 4500 | CLPB 4501 | FBXO34 4502 | CSNK2A2 4503 | TSC22D2 4504 | ZBTB25 4505 | RNF168 4506 | PHACTR4 4507 | YAE1D1 4508 | CASP9 4509 | TBXAS1 4510 | MTRR 4511 | NAA40 4512 | PDK2 4513 | UGP2 4514 | NELFCD 4515 | POLR3K 4516 | RBM14 4517 | MAP2K1 4518 | TMEM126A 4519 | KPNA2 4520 | THAP7 4521 | MRPL43 4522 | WDR18 4523 | FIZ1 4524 | TBC1D13 4525 | RGS14 4526 | LAMA5 4527 | CCDC180 4528 | PI4K2B 4529 | FAM210B 4530 | PDE6G 4531 | ZNF710 4532 | NT5C2 4533 | ENPP1 4534 | LRRC58 4535 | SUN2 4536 | ZNF589 4537 | ZFR 4538 | HRAS 4539 | RNF207 4540 | ZNF397 4541 | SAMD12 4542 | TADA2A 4543 | LRIF1 4544 | KMT5B 4545 | IREB2 4546 | FAM160B1 4547 | TATDN3 4548 | GIMAP5 4549 | TNKS2 4550 | MCTP2 4551 | UTP23 4552 | STAM 4553 | KIZ 4554 | THOC2 4555 | TBK1 4556 | MAK16 4557 | TADA2B 4558 | SLC12A4 4559 | OTUD6B 4560 | OSBPL10 4561 | ABHD17B 4562 | ZNF629 4563 | USP9Y 4564 | GET4 4565 | EMP2 4566 | PPARA 4567 | MED26 4568 | TAF13 4569 | CLDN3 4570 | RABEP1 4571 | FAM213B 4572 | TGS1 4573 | label 4574 | -------------------------------------------------------------------------------- /sample_result_saliency/saliency_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Patchouli-M/SequencingCancerFinder/ec88d4d9b75d589aa3635fb1a40b0b71a78657be/sample_result_saliency/saliency_map.png -------------------------------------------------------------------------------- /sample_result_saliency/top_20_gene_list_0.txt: -------------------------------------------------------------------------------- 1 | EIF3A,0.036636792 2 | ISCU,0.034578767 3 | RARS,0.029964244 4 | RPS11,0.028858144 5 | VEGFB,0.028053928 6 | TMEM9,0.02724002 7 | TMED9,0.027117817 8 | DCAF8,0.027080368 9 | ZNHIT3,0.026486676 10 | HSPA14,0.026348382 11 | HLA-DRB1,0.026292278 12 | GLOD4,0.025832508 13 | CTSZ,0.025559768 14 | ZNF331,0.025296928 15 | CAT,0.024856696 16 | CHST12,0.024765903 17 | CCT4,0.024248788 18 | KIAA0100,0.024188036 19 | TIMM10,0.023998657 20 | HDGF,0.02396698 21 | -------------------------------------------------------------------------------- /sample_result_saliency/top_20_gene_list_1.txt: -------------------------------------------------------------------------------- 1 | EIF3A,0.034716643 2 | ISCU,0.03297247 3 | RARS,0.02821365 4 | RPS11,0.027482845 5 | VEGFB,0.027013646 6 | DCAF8,0.02693801 7 | ZNHIT3,0.026635028 8 | TMED9,0.026569556 9 | TMEM9,0.026457813 10 | HSPA14,0.025585605 11 | GLOD4,0.025430728 12 | CTSZ,0.024807476 13 | ZNF331,0.024690274 14 | HLA-DRB1,0.024502072 15 | CHST12,0.023904702 16 | INPP5K,0.023779146 17 | KIAA0100,0.023676332 18 | HDGF,0.02358193 19 | IGLV3-1,0.023206508 20 | CCT4,0.023114175 21 | -------------------------------------------------------------------------------- /sample_result_saliency/top_20_gene_list_2.txt: -------------------------------------------------------------------------------- 1 | EIF3A,0.03348303 2 | ISCU,0.03214994 3 | RARS,0.027650585 4 | TMED9,0.026360957 5 | RPS11,0.026331507 6 | VEGFB,0.02630814 7 | DCAF8,0.026185581 8 | ZNHIT3,0.026167957 9 | TMEM9,0.02604697 10 | HSPA14,0.02435799 11 | CTSZ,0.024227107 12 | GLOD4,0.024195403 13 | ZNF331,0.024143683 14 | HDGF,0.023345714 15 | CHST12,0.02324965 16 | KIAA0100,0.023133889 17 | HLA-DRB1,0.023105398 18 | IGLV3-1,0.023099512 19 | INPP5K,0.022701142 20 | CD47,0.022395223 21 | -------------------------------------------------------------------------------- /sample_result_saliency/top_20_gene_list_3.txt: -------------------------------------------------------------------------------- 1 | EIF3A,0.032625113 2 | ISCU,0.03155463 3 | RARS,0.027249597 4 | DCAF8,0.025923043 5 | VEGFB,0.025837246 6 | TMED9,0.02572666 7 | ZNHIT3,0.025470575 8 | RPS11,0.02543297 9 | TMEM9,0.025196513 10 | ZNF331,0.023880031 11 | GLOD4,0.023694701 12 | HSPA14,0.023507476 13 | CTSZ,0.02345529 14 | HDGF,0.02298009 15 | KIAA0100,0.02276433 16 | IGLV3-1,0.022735398 17 | INPP5K,0.022500824 18 | CHST12,0.022446122 19 | N4BP2L1,0.022439092 20 | CD47,0.022115324 21 | -------------------------------------------------------------------------------- /sample_result_saliency/top_20_gene_list_4.txt: -------------------------------------------------------------------------------- 1 | EIF3A,0.031907734 2 | ISCU,0.031072885 3 | RARS,0.026798695 4 | DCAF8,0.025932496 5 | TMED9,0.025633803 6 | VEGFB,0.02558052 7 | ZNHIT3,0.024852589 8 | RPS11,0.024549369 9 | TMEM9,0.024355954 10 | ZNF331,0.02314216 11 | CTSZ,0.023056772 12 | GLOD4,0.02301972 13 | HSPA14,0.023016399 14 | KIAA0100,0.022702988 15 | HDGF,0.02262657 16 | IGLV3-1,0.022588972 17 | CD47,0.02217791 18 | N4BP2L1,0.021959785 19 | CHST12,0.021958336 20 | INPP5K,0.02181684 21 | -------------------------------------------------------------------------------- /sample_result_saliency/train_log_loss.txt: -------------------------------------------------------------------------------- 1 | {'loss': 0.7340164184570312, 'mean': 0.730610728263855, 'penalty': 0.003405696013942361} 2 | {'loss': 0.7306279540061951, 'mean': 0.7272392511367798, 'penalty': 0.0033887077588588} 3 | {'loss': 0.7378189563751221, 'mean': 0.7361327409744263, 'penalty': 0.0016862344928085804} 4 | {'loss': 0.7471861839294434, 'mean': 0.7464209794998169, 'penalty': 0.0007652015774510801} 5 | {'loss': 0.7001662850379944, 'mean': 0.6998077034950256, 'penalty': 0.0003585938538890332} 6 | {'loss': 0.6597034931182861, 'mean': 0.6584014296531677, 'penalty': 0.001302089192904532} 7 | {'loss': 0.6795315742492676, 'mean': 0.6794716119766235, 'penalty': 5.9960064390907064e-05} 8 | {'loss': 0.702775776386261, 'mean': 0.6942688226699829, 'penalty': 0.008506964892148972} 9 | {'loss': 0.6162827610969543, 'mean': 0.6154646873474121, 'penalty': 0.0008180883014574647} 10 | {'loss': 0.6517245769500732, 'mean': 0.6509071588516235, 'penalty': 0.0008174405666068196} 11 | {'loss': 0.6144827604293823, 'mean': 0.6130803823471069, 'penalty': 0.0014023608528077602} 12 | {'loss': 0.5944592356681824, 'mean': 0.5944592356681824, 'penalty': 2.4071798776503783e-08} 13 | {'loss': 0.6179661750793457, 'mean': 0.6168818473815918, 'penalty': 0.001084325136616826} 14 | {'loss': 0.5664204955101013, 'mean': 0.5659119486808777, 'penalty': 0.0005085368757136166} 15 | {'loss': 0.5660725831985474, 'mean': 0.5650044679641724, 'penalty': 0.0010681073181331158} 16 | {'loss': 0.6080511808395386, 'mean': 0.6075917482376099, 'penalty': 0.00045944101293571293} 17 | {'loss': 0.6131542921066284, 'mean': 0.6099758148193359, 'penalty': 0.003178449347615242} 18 | {'loss': 0.5758979320526123, 'mean': 0.5755479335784912, 'penalty': 0.0003500022867228836} 19 | {'loss': 0.5970429182052612, 'mean': 0.5964465141296387, 'penalty': 0.0005964234005659819} 20 | {'loss': 0.5231006145477295, 'mean': 0.5221384167671204, 'penalty': 0.0009622136130928993} 21 | -------------------------------------------------------------------------------- /sample_result_saliency/train_log_val.txt: -------------------------------------------------------------------------------- 1 | domain_val 2 | 0.4500 3 | 0.5000 4 | 0.5000 5 | 0.5000 6 | 0.5000 7 | -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | # %% 2 | from torch.utils.data import TensorDataset,DataLoader 3 | from torchvision import datasets,transforms 4 | import torch 5 | import pandas as pd 6 | from models import model 7 | from utils import opt_utils,args_utils 8 | import importlib 9 | import glob 10 | import os 11 | import numpy as np 12 | from data_loaders import domian_loaders 13 | 14 | # get parameters for training 15 | args = args_utils.get_args() 16 | os.makedirs(args.output,exist_ok=True) 17 | 18 | # get model 19 | args_utils.set_random_seed(args.seed) 20 | args.HVG_list = opt_utils.generate_genelist(args) 21 | 22 | # get dataloaders for training 23 | train_loaders = domian_loaders.train_domian_loaders_l(args) 24 | print(len(train_loaders)) 25 | val_loaders = domian_loaders.val_domian_loaders_l(args) 26 | 27 | # i/o for log output 28 | f_loss_io = open( os.path.join(args.output,f'{args.logs_name}_loss.txt'),'w') 29 | f_val_io = open( os.path.join(args.output,f'{args.logs_name}_val.txt'),'w') 30 | [print(_,file=f_val_io,end='\t') if idx!=len(val_loaders)-1 else print(_,file=f_val_io,end='\n') for idx, _ in enumerate(val_loaders) ] 31 | algorithm = model.VREx(args) 32 | 33 | # train 34 | for epoch in range(args.max_epoch): 35 | train_minibatches_iterator = zip(*train_loaders) 36 | count = 0 37 | for single_train_minibatches in train_minibatches_iterator : 38 | count+=1 39 | algorithm.train() 40 | if args.gpu_id : 41 | algorithm.cuda() 42 | minibatches_device = [(data) for data in single_train_minibatches] 43 | opt = opt_utils.get_optimizer(algorithm, args) 44 | sch = opt_utils.get_scheduler(opt, args) 45 | # back-propagation 46 | step_vals = algorithm.update(minibatches_device, opt, sch) 47 | print(step_vals,file=f_loss_io) 48 | algorithm.eval() 49 | algorithm.cpu() 50 | 51 | # evaluate accuracy during training 52 | for idx,loader_idx in enumerate(val_loaders): 53 | acc = opt_utils.accuracy(algorithm,val_loaders[loader_idx]) 54 | if idx!=len(val_loaders)-1: 55 | print (f'{acc:.4f}',file=f_val_io,end='\t') 56 | else : 57 | print (f'{acc:.4f}',file=f_val_io,end='\n') 58 | print(f'{acc:.4f}',end='\t') 59 | f_val_io.flush() 60 | print(f'epoch={epoch}',end='\n') 61 | print(step_vals) 62 | 63 | # save pretrained model 64 | opt_utils.save_checkpoint(f'model_epoch{epoch}.pkl', algorithm, args) 65 | f_val_io.close() 66 | f_loss_io.close() 67 | 68 | 69 | -------------------------------------------------------------------------------- /train_gene_set.py: -------------------------------------------------------------------------------- 1 | # %% 2 | from torch.utils.data import TensorDataset,DataLoader 3 | from torchvision import datasets,transforms 4 | import torch 5 | import pandas as pd 6 | from models import model 7 | from utils import opt_utils,args_utils 8 | import importlib 9 | import glob 10 | import os 11 | import numpy as np 12 | from data_loaders import domian_loaders 13 | import matplotlib.pyplot as plt 14 | import seaborn as sns 15 | 16 | # get arguments for training 17 | args = args_utils.get_args() 18 | args.output = args.output.replace('normal','saliency') 19 | os.makedirs(args.output,exist_ok=True) 20 | 21 | # get model 22 | args_utils.set_random_seed(args.seed) 23 | args.HVG_list = opt_utils.generate_genelist(args) 24 | 25 | # get dataloaders for training 26 | train_loaders = domian_loaders.train_domian_loaders_l(args) 27 | val_loaders = domian_loaders.val_domian_loaders_l(args) 28 | 29 | # i/o for log output 30 | f_loss_io = open( os.path.join(args.output,f'{args.logs_name}_loss.txt'),'w') 31 | f_val_io = open( os.path.join(args.output,f'{args.logs_name}_val.txt'),'w') 32 | [print(_,file=f_val_io,end='\t') if idx!=len(val_loaders)-1 else print(_,file=f_val_io,end='\n') for idx, _ in enumerate(val_loaders) ] 33 | epoch_sum_grad = [] 34 | algorithm = model.VREx(args) 35 | 36 | # train 37 | for epoch in range(args.max_epoch): 38 | train_minibatches_iterator = zip(*train_loaders) 39 | count = 0 40 | grad_list = [] 41 | for single_train_minibatches in train_minibatches_iterator : 42 | for single_domain in single_train_minibatches: 43 | single_domain[0].requires_grad_() 44 | count+=1 45 | algorithm.train() 46 | if args.gpu_id : 47 | algorithm.cuda() 48 | minibatches_device = [(data) for data in single_train_minibatches] 49 | opt = opt_utils.get_optimizer(algorithm, args) 50 | sch = opt_utils.get_scheduler(opt, args) 51 | # back-propagation 52 | step_vals = algorithm.update(minibatches_device, opt, sch) 53 | print(step_vals,file=f_loss_io) 54 | for single_domain in single_train_minibatches: 55 | grad_list.append(single_domain[0].grad.data.abs().numpy()) 56 | algorithm.eval() 57 | algorithm.cpu() 58 | 59 | # evaluate accuracy during training 60 | for idx,loader_idx in enumerate(val_loaders): 61 | acc = opt_utils.accuracy(algorithm,val_loaders[loader_idx]) 62 | if idx!=len(val_loaders)-1: 63 | print (f'{acc:.4f}',file=f_val_io,end='\t') 64 | else : 65 | print (f'{acc:.4f}',file=f_val_io,end='\n') 66 | print(f'{acc:.4f}',end='\t') 67 | f_val_io.flush() 68 | print(f'epoch={epoch}',end='\n') 69 | print(step_vals) 70 | 71 | # save the gradient values. 72 | epoch_total_grad = np.concatenate(grad_list,axis=0).sum(axis=0) 73 | epoch_sum_grad.append(epoch_total_grad.reshape(-1,epoch_total_grad.shape[0])) 74 | grad_df = pd.DataFrame(np.concatenate(epoch_sum_grad,axis=0),columns=args.HVG_list) 75 | grad_df.to_csv(os.path.join(args.output,'grad.csv')) 76 | grad_df = grad_df.T 77 | grad_df['mean'] = grad_df.mean(axis=1) 78 | grad_df = grad_df.sort_values(by='mean',ascending=False) 79 | grad_df.iloc[:20].loc[:,'mean'].to_csv(os.path.join(args.output,f'top_20_gene_list_{epoch}.txt'),header=None) 80 | grad_df = grad_df.drop(columns='mean') 81 | plt.figure(figsize=(10,10)) 82 | # save the figure 83 | sns.heatmap(grad_df.iloc[:20],cmap='coolwarm') 84 | plt.savefig(os.path.join(args.output,f'saliency_map.png'),bbox_inches='tight') 85 | 86 | f_val_io.close() 87 | f_loss_io.close() 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /train_saliency_map.py: -------------------------------------------------------------------------------- 1 | # %% 2 | from torch.utils.data import TensorDataset,DataLoader 3 | from torchvision import datasets,transforms 4 | import torch 5 | import pandas as pd 6 | from models import model 7 | from utils import opt_utils,args_utils 8 | import importlib 9 | import glob 10 | import os 11 | import numpy as np 12 | from data_loaders import domian_loaders 13 | import matplotlib.pyplot as plt 14 | import seaborn as sns 15 | 16 | # get arguments for training 17 | args = args_utils.get_args() 18 | args.output = args.output.replace('normal','saliency') 19 | os.makedirs(args.output,exist_ok=True) 20 | 21 | # get model 22 | args_utils.set_random_seed(args.seed) 23 | args.HVG_list = opt_utils.generate_genelist(args) 24 | 25 | # get dataloaders for training 26 | train_loaders = domian_loaders.train_domian_loaders_l(args) 27 | val_loaders = domian_loaders.val_domian_loaders_l(args) 28 | 29 | # i/o for log output 30 | f_loss_io = open( os.path.join(args.output,f'{args.logs_name}_loss.txt'),'w') 31 | f_val_io = open( os.path.join(args.output,f'{args.logs_name}_val.txt'),'w') 32 | [print(_,file=f_val_io,end='\t') if idx!=len(val_loaders)-1 else print(_,file=f_val_io,end='\n') for idx, _ in enumerate(val_loaders) ] 33 | epoch_sum_grad = [] 34 | algorithm = model.VREx(args) 35 | 36 | # train 37 | for epoch in range(args.max_epoch): 38 | train_minibatches_iterator = zip(*train_loaders) 39 | count = 0 40 | grad_list = [] 41 | for single_train_minibatches in train_minibatches_iterator : 42 | for single_domain in single_train_minibatches: 43 | single_domain[0].requires_grad_() 44 | count+=1 45 | algorithm.train() 46 | if args.gpu_id : 47 | algorithm.cuda() 48 | minibatches_device = [(data) for data in single_train_minibatches] 49 | opt = opt_utils.get_optimizer(algorithm, args) 50 | sch = opt_utils.get_scheduler(opt, args) 51 | # back-propagation 52 | step_vals = algorithm.update(minibatches_device, opt, sch) 53 | print(step_vals,file=f_loss_io) 54 | for single_domain in single_train_minibatches: 55 | grad_list.append(single_domain[0].grad.data.abs().numpy()) 56 | algorithm.eval() 57 | algorithm.cpu() 58 | 59 | # evaluate accuracy during training 60 | for idx,loader_idx in enumerate(val_loaders): 61 | acc = opt_utils.accuracy(algorithm,val_loaders[loader_idx]) 62 | if idx!=len(val_loaders)-1: 63 | print (f'{acc:.4f}',file=f_val_io,end='\t') 64 | else : 65 | print (f'{acc:.4f}',file=f_val_io,end='\n') 66 | print(f'{acc:.4f}',end='\t') 67 | f_val_io.flush() 68 | print(f'epoch={epoch}',end='\n') 69 | print(step_vals) 70 | 71 | # save the gradient values. 72 | epoch_total_grad = np.concatenate(grad_list,axis=0).sum(axis=0) 73 | epoch_sum_grad.append(epoch_total_grad.reshape(-1,epoch_total_grad.shape[0])) 74 | grad_df = pd.DataFrame(np.concatenate(epoch_sum_grad,axis=0),columns=args.HVG_list) 75 | grad_df.to_csv(os.path.join(args.output,'grad.csv')) 76 | grad_df = grad_df.T 77 | grad_df['mean'] = grad_df.mean(axis=1) 78 | grad_df = grad_df.sort_values(by='mean',ascending=False) 79 | grad_df.iloc[:20].loc[:,'mean'].to_csv(os.path.join(args.output,f'top_20_gene_list_{epoch}.txt'),header=None) 80 | grad_df = grad_df.drop(columns='mean') 81 | plt.figure(figsize=(10,10)) 82 | # save the figure 83 | sns.heatmap(grad_df.iloc[:20],cmap='coolwarm') 84 | plt.savefig(os.path.join(args.output,f'saliency_map.png'),bbox_inches='tight') 85 | 86 | f_val_io.close() 87 | f_loss_io.close() 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /utils/args_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import time 4 | import numpy as np 5 | import argparse 6 | import torch 7 | import random 8 | 9 | def get_time_str(): 10 | """ 11 | Get current time 12 | 13 | Args: 14 | None 15 | Return: 16 | a str, MMDD-HHMM 17 | """ 18 | return time.strftime('%m%d-%H%M') 19 | 20 | def get_args(): 21 | """ 22 | Get the arguments for training to run the script and store them in the args object. 23 | 24 | Args: 25 | None 26 | Return: 27 | args object with arguments 28 | """ 29 | date_str = time.strftime('%m%d') 30 | parser = argparse.ArgumentParser(description='') 31 | parser.add_argument('--train_dir', type=str, default='data/train', help="path for training data") 32 | parser.add_argument('--val_dir', type=str, default='data/val', help="path for validating data") 33 | parser.add_argument('--lr', type=float, default=1e-3, help="learning rate") 34 | parser.add_argument('--schuse', action='store_true') 35 | parser.add_argument('--schusech', type=str, default='cos') 36 | parser.add_argument('--seed', type=int, default=0) 37 | parser.add_argument('--gpu_id', type=int, default=None, help="device id to run") 38 | parser.add_argument('--num_classes', type=int, default=2, help="number of classes") 39 | parser.add_argument('--weight_decay', type=float, default=5e-4) 40 | parser.add_argument('--momentum', type=float,default=0.9, help='for optimizer') 41 | parser.add_argument('--lr_decay', type=float, default=0.75, help='for sgd') 42 | parser.add_argument('--lr_decay1', type=float, default=1.0, help='for pretrained featurizer') 43 | parser.add_argument('--lr_decay2', type=float, default=1.0,help='inital learning rate decay of network') 44 | parser.add_argument('--anneal_iters', type=int,default=500, help='Penalty anneal iters used in VREx') 45 | parser.add_argument('--max_epoch', type=int,default=5, help="max iterations") 46 | parser.add_argument('--output', type=str,default=f'normal_log_{ date_str }', help="output dir") 47 | parser.add_argument('--genelist_outname', type=str,default='gene_list.txt', help="genelist_outname") 48 | parser.add_argument('--logs_name', type=str,default='train_log', help="train_log") 49 | parser.add_argument('--lam', type=float,default=1, help="tradeoff hyperparameter used in VREx") 50 | parser.add_argument('--gene_num', type=int,default=4572, help="number of features") 51 | parser.add_argument('--label_str', type=str,default='label', help="the row label for the label in the training data") 52 | parser.add_argument('--batch_size', type=int,default=10, help="batch_size") 53 | parser.add_argument('--NEED_ROWS', type=int,default=50, help="Number of samples in one step") 54 | args = parser.parse_args() 55 | os.environ['CUDA_VISIBLE_DEVICES'] = str(args.gpu_id) 56 | return args 57 | 58 | def infer_args(): 59 | """ 60 | Get the arguments for inference to run the script and store them in the args object. 61 | 62 | Args: 63 | None 64 | Return: 65 | args object with arguments 66 | """ 67 | date_str = time.strftime('%m%d') 68 | parser = argparse.ArgumentParser(description='') 69 | parser.add_argument('--num_classes', type=int, default=2, help="number of classes") 70 | parser.add_argument('--ckp', type=str, default='checkpoints/sc_pretrain_article.pkl',help="path for pretrained model") 71 | parser.add_argument('--matrix', type=str, default='data_matrix.tsv',help="path for data(tsv)") 72 | parser.add_argument('--threshold', type=float, default=0.5,help="threshold of inference") 73 | parser.add_argument('--out', type=str, default='out.csv',help="out path") 74 | args = parser.parse_args() 75 | args.HVG_list = torch.load(args.ckp)['HVG_list'] 76 | return args 77 | 78 | def create_args_from_infering( 79 | matrix = 'data_matrix.h5ad', 80 | num_classes: int = 2, 81 | ckp: str = 'checkpoints/sc_pretrain_article.pkl', 82 | threshold: float = 0.5, 83 | out: str = 'out.csv', 84 | lr: float = 1e-3, 85 | schuse: bool = False, 86 | schusech: str = 'cos', 87 | seed: int = 0, 88 | gpu_id: int = None, 89 | weight_decay: float = 5e-4, 90 | momentum: float = 0.9, 91 | lr_decay: float = 0.75, 92 | lr_decay1: float = 1.0, 93 | lr_decay2: float = 1.0, 94 | anneal_iters: int = 500, 95 | max_epoch: int = 5, 96 | lam: float = 1, 97 | gene_num: int = 4572, 98 | label_str: str = 'label', 99 | batch_size: int = 10, 100 | NEED_ROWS: int = 50, 101 | ) -> argparse.Namespace: 102 | """ 103 | Convert function arguments to an args object compatible with VREx model. 104 | 105 | Args: 106 | All parameters from the infering function 107 | 108 | Returns: 109 | argparse.Namespace: An args object with all the parameters set 110 | """ 111 | args = argparse.Namespace() 112 | 113 | # Set all attributes from the function parameters 114 | args.matrix = matrix 115 | args.num_classes = num_classes 116 | args.ckp = ckp 117 | args.threshold = threshold 118 | args.out = out 119 | args.lr = lr 120 | args.schuse = schuse 121 | args.schusech = schusech 122 | args.seed = seed 123 | args.gpu_id = gpu_id 124 | args.weight_decay = weight_decay 125 | args.momentum = momentum 126 | args.lr_decay = lr_decay 127 | args.lr_decay1 = lr_decay1 128 | args.lr_decay2 = lr_decay2 129 | args.anneal_iters = anneal_iters 130 | args.max_epoch = max_epoch 131 | args.lam = lam 132 | args.gene_num = gene_num 133 | args.label_str = label_str 134 | args.batch_size = batch_size 135 | args.NEED_ROWS = NEED_ROWS 136 | 137 | # Load HVG_list from checkpoint if it exists 138 | if os.path.exists(ckp): 139 | checkpoint = torch.load(ckp) 140 | args.HVG_list = checkpoint.get('HVG_list', []) 141 | else: 142 | args.HVG_list = [] 143 | 144 | return args 145 | 146 | def set_random_seed(seed=0): 147 | """ 148 | set the random seeds 149 | 150 | Args: 151 | seed (int): random seed 152 | Return: 153 | None 154 | """ 155 | # seed setting 156 | random.seed(seed) 157 | np.random.seed(seed) 158 | torch.manual_seed(seed) 159 | torch.cuda.manual_seed(seed) 160 | torch.backends.cudnn.deterministic = True 161 | torch.backends.cudnn.benchmark = False 162 | 163 | def print_environ(): 164 | """ 165 | Print the current environment and package version 166 | 167 | Returns: 168 | None 169 | """ 170 | print("Environment:") 171 | print("\tPython: {}".format(sys.version.split(" ")[0])) 172 | print("\tPyTorch: {}".format(torch.__version__)) 173 | print("\tCUDA: {}".format(torch.version.cuda)) 174 | print("\tCUDNN: {}".format(torch.backends.cudnn.version())) 175 | print("\tNumPy: {}".format(np.__version__)) 176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /utils/opt_utils.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import os 3 | import pandas as pd 4 | import scanpy 5 | import anndata 6 | import glob 7 | from torch.utils.data import TensorDataset,DataLoader 8 | import gc 9 | import csv 10 | import zarr 11 | 12 | def accuracy(network, loader): 13 | """ 14 | Calculate the accuracy of the network in the dataset 15 | 16 | Args: 17 | network : the networks that need to be evaluated 18 | loader: data_loader for the dataset 19 | Returns: 20 | accuracy 21 | """ 22 | correct = 0 23 | total = 0 24 | 25 | network.eval() 26 | with torch.no_grad(): 27 | for data in loader: 28 | x = data[0].cpu().float() 29 | y = data[1].cpu().long() 30 | p = network.predict(x) 31 | 32 | if p.size(1) == 1: 33 | correct += (p.gt(0).eq(y).float()).sum().item() 34 | else: 35 | correct += (p.argmax(1).eq(y).float()).sum().item() 36 | total += len(x) 37 | network.train() 38 | return correct / total 39 | 40 | def save_checkpoint(filename, alg, args): 41 | """ 42 | Save the checkpoint of the pre-trained model. 43 | 44 | Args: 45 | filename: Name of the target file to be saved 46 | alg: neural network models that need to be saved 47 | args: training parameters 48 | 49 | Returns: 50 | None 51 | """ 52 | save_dict = { 53 | "model_dict": alg.cpu().state_dict(), 54 | "HVG_list": args.HVG_list 55 | } 56 | torch.save(save_dict, os.path.join(args.output, filename)) 57 | 58 | def normalize_matrix_counts(raw_df,HVG_list,target_sum=10000): 59 | """ 60 | Normalize raw matrix counts and select feature genes 61 | 62 | Args: 63 | raw_df: The matrix that need to be normalized, pandas.Dataframe format 64 | HVG_list: A list of feature genes 65 | 66 | Returns: 67 | A matrix after normalization and selection of feature genes, pandas.Dataframe format 68 | """ 69 | gene_list = pd.DataFrame(HVG_list).set_index(0) 70 | raw_df['sum'] = raw_df.sum(axis=1) 71 | raw_df = raw_df.sort_values(by='sum',ascending=False) 72 | raw_df = raw_df.drop(columns='sum') 73 | raw_df = raw_df[~raw_df.index.duplicated()] 74 | raw_df = raw_df.T 75 | 76 | 77 | adata = anndata.AnnData(raw_df,raw_df.index.to_frame(), raw_df.columns.to_frame()) 78 | scanpy.pp.normalize_total(adata,target_sum=target_sum) 79 | scanpy.pp.log1p(adata) 80 | raw_df = pd.DataFrame(adata.X,index=adata.obs.index,columns=adata.var.index) 81 | select_df = pd.merge(gene_list,raw_df.T,how='left',left_index=True,right_index=True) 82 | select_df = select_df.fillna(0.0).T[gene_list.index] 83 | return select_df 84 | 85 | 86 | def generate_genelist(args): 87 | """ 88 | Generate a list of genes to be used as features 89 | 90 | Args: 91 | args: training parameters 92 | 93 | Returns: 94 | A list of feature genes 95 | """ 96 | 97 | fst_flag = True 98 | merged_df = pd.DataFrame() 99 | for file_name in glob.glob(os.path.join(args.train_dir,'*')): 100 | if file_name.endswith('.tsv'): 101 | raw_df = pd.read_csv(file_name,index_col=0,sep='\t') 102 | elif file_name.endswith('.csv'): 103 | raw_df = pd.read_csv(file_name,index_col=0,sep=',') 104 | elif file_name.endswith('.h5ad'): 105 | raw_df = scanpy.read_h5ad(file_name).to_df() 106 | elif file_name.endswith('.h5'): 107 | raw_df = pd.read_hdf(file_name) 108 | elif file_name.endswith('.zarr'): 109 | raw_df = anndata.read_zarr(file_name).to_df() 110 | 111 | raw_df['sum'] = raw_df.sum(axis=1) 112 | raw_df = raw_df.sort_values(by='sum',ascending=False) 113 | raw_df = raw_df.drop(columns='sum') 114 | raw_df = raw_df[~raw_df.index.duplicated()] 115 | 116 | if fst_flag: 117 | merged_df = raw_df.copy() 118 | else : 119 | merged_df = pd.merge(merged_df,raw_df,left_index=True,right_index=True,how='inner') 120 | merged_df = merged_df[merged_df.index!=args.label_str] 121 | merged_df['var'] = merged_df.var(axis=1) 122 | merged_df = merged_df.sort_values(by='var',ascending=False) 123 | genelist = list(merged_df.index[:args.gene_num]) 124 | pure_genelist = genelist.copy() 125 | genelist.append(args.label_str) 126 | pd.DataFrame(index=genelist).to_csv(os.path.join(args.output,args.genelist_outname),header=None) 127 | return pure_genelist 128 | 129 | class InferLoaders(): 130 | """ 131 | Iterators for the data_loader for inference 132 | 133 | Args: 134 | args: inference parameters 135 | step_num : int, the sample number of one s 136 | 137 | Returns: 138 | input_data : a dataframe with barcodes for inference 139 | input_loader : a data loader for inference 140 | """ 141 | def __init__(self,args,step_num = 1e4): 142 | self.obj_filename = args.matrix 143 | self.idx = 0 144 | self.step_num = step_num 145 | self.args = args 146 | self.is_anndata = isinstance(self.obj_filename, anndata.AnnData) 147 | 148 | def __iter__(self): 149 | if self.is_anndata: 150 | # Handle AnnData object directly 151 | self.full_raw_df = self.obj_filename.to_df() 152 | self.row = self.full_raw_df.columns 153 | self.row_len = len(self.row) 154 | else: 155 | if self.obj_filename.endswith('.h5ad') or self.obj_filename.endswith('.h5'): 156 | self.full_raw_df = scanpy.read_h5ad(self.obj_filename).to_df() 157 | self.row = self.full_raw_df.columns 158 | self.row_len = len(self.row) 159 | 160 | elif self.obj_filename.endswith('.zarr'): 161 | self.full_raw_df = anndata.read_zarr(self.obj_filename).to_df() 162 | self.row = self.full_raw_df.columns 163 | self.row_len = len(self.row) 164 | 165 | elif self.obj_filename.endswith('.csv'): 166 | with open(self.obj_filename,'r') as csv_file: 167 | reader = csv.reader(csv_file,delimiter=',') 168 | self.row = reader.__iter__().__next__() 169 | self.row_len = len(self.row) 170 | 171 | elif self.obj_filename.endswith('.tsv'): 172 | with open(self.obj_filename,'r') as csv_file: 173 | reader = csv.reader(csv_file,delimiter='\t') 174 | self.row = reader.__iter__().__next__() 175 | self.row_len = len(self.row) 176 | else: 177 | raise ValueError("Unrecognized Formats") 178 | self.idx = 0 179 | return self 180 | 181 | def __next__(self): 182 | if self.idx < self.row_len: 183 | step_end = int(min(self.idx + self.step_num,self.row_len)) 184 | 185 | if self.is_anndata or self.obj_filename.endswith('.h5ad') or \ 186 | self.obj_filename.endswith('.h5') or self.obj_filename.endswith('.zarr'): 187 | if self.idx == 0: 188 | raw_df = self.full_raw_df.iloc[:,0:step_end] 189 | else: 190 | raw_df = self.full_raw_df.iloc[:,self.idx:step_end] 191 | elif self.obj_filename.endswith('.csv'): 192 | print(self.idx,step_end) 193 | col_index = [self.row[0]] + self.row[self.idx:step_end] 194 | raw_df = pd.read_csv(self.obj_filename,index_col=0,usecols=col_index,sep=',') 195 | 196 | elif self.obj_filename.endswith('.tsv'): 197 | col_index = [self.row[0]] + self.row[self.idx:step_end] 198 | raw_df = pd.read_csv(self.obj_filename,index_col=0,usecols=col_index,sep='\t') 199 | else: 200 | raise ValueError("Unrecognized Formats") 201 | 202 | input_data = normalize_matrix_counts(raw_df,self.args.HVG_list) 203 | input_set = TensorDataset(torch.from_numpy(input_data.values).float()) 204 | input_loader = DataLoader(dataset=input_set,batch_size = len(input_set)) 205 | self.idx = int(self.idx + self.step_num) 206 | del raw_df 207 | gc.collect() 208 | return input_data,input_loader 209 | 210 | else: 211 | raise StopIteration 212 | 213 | def get_params(alg, args): 214 | """ 215 | Used to get weights in the network 216 | 217 | Args: 218 | args: training parameters 219 | alg : networks model 220 | 221 | Returns: 222 | weights in the network 223 | 224 | """ 225 | initlr = args.lr 226 | params = [ 227 | {'params': alg.featurizer.parameters(), 'lr': args.lr_decay1 * initlr}, 228 | {'params': alg.classifier.parameters(), 'lr': args.lr_decay2 * initlr} 229 | ] 230 | 231 | return params 232 | 233 | def get_optimizer(alg, args): 234 | """ 235 | Get the optimizer for training 236 | 237 | Args: 238 | args: training parameters 239 | alg : networks model 240 | 241 | Returns: 242 | optimizer for training 243 | 244 | """ 245 | params = get_params(alg, args) 246 | optimizer = torch.optim.SGD( 247 | params, lr=args.lr, momentum=args.momentum, weight_decay=args.weight_decay, nesterov=True) 248 | return optimizer 249 | 250 | def get_scheduler(optimizer, args): 251 | """ 252 | Get the scheduler for training 253 | 254 | Args: 255 | args: training parameters 256 | alg : networks model 257 | 258 | Returns: 259 | scheduler for training 260 | 261 | """ 262 | if not args.schuse: 263 | return None 264 | if args.schusech == 'cos': 265 | scheduler = torch.optim.lr_scheduler.CosineAnnealingLR( 266 | optimizer, args.max_epoch * args.steps_per_epoch) 267 | else: 268 | scheduler = torch.optim.lr_scheduler.LambdaLR( 269 | optimizer, lambda x: args.lr * (1. + args.lr_gamma * float(x)) ** (-args.lr_decay)) 270 | return scheduler --------------------------------------------------------------------------------