33from maayanlab_bioinformatics .utils import fetch_save_read
44
55@lru_cache ()
6- def ncbi_genes_fetch (organism = 'Mammalia/Homo_sapiens' , filters = lambda ncbi : ncbi ['type_of_gene' ]== 'protein-coding' ):
6+ def ncbi_genes_fetch (organism = 'Mammalia/Homo_sapiens' , filters = lambda ncbi : ncbi ['type_of_gene' ]== 'protein-coding' , cache_dir = '' ):
77 ''' Fetch the current NCBI Human Gene Info database.
88 See ftp://ftp.ncbi.nih.gov/gene/DATA/GENE_INFO/ for the directory/file of the organism of interest.
99 '''
@@ -28,6 +28,7 @@ def supplement_dbXref_prefix_omitted(ids):
2828 'ftp://ftp.ncbi.nih.gov/gene/DATA/GENE_INFO/{}.gene_info.gz' .format (organism ),
2929 '{}.gene_info.tsv' .format (organism ),
3030 sep = '\t ' ,
31+ cache_dir = cache_dir ,
3132 )
3233 if filters and callable (filters ):
3334 ncbi = ncbi [filters (ncbi )]
@@ -47,15 +48,15 @@ def supplement_dbXref_prefix_omitted(ids):
4748 return ncbi
4849
4950@lru_cache ()
50- def ncbi_genes_lookup (organism = 'Mammalia/Homo_sapiens' , filters = lambda ncbi : ncbi ['type_of_gene' ]== 'protein-coding' ):
51+ def ncbi_genes_lookup (organism = 'Mammalia/Homo_sapiens' , filters = lambda ncbi : ncbi ['type_of_gene' ]== 'protein-coding' , cache_dir = '' ):
5152 ''' Return a lookup dictionary with synonyms as the keys, and official symbols as the values
5253 Usage:
5354 ```python
5455 ncbi_lookup = ncbi_genes_lookup('Mammalia/Homo_sapiens')
5556 print(ncbi_lookup('STAT3')) # any alias will get converted into the official symbol
5657 ```
5758 '''
58- ncbi_genes = ncbi_genes_fetch (organism = organism , filters = filters )
59+ ncbi_genes = ncbi_genes_fetch (organism = organism , filters = filters , cache_dir = cache_dir )
5960 synonyms , symbols = zip (* {
6061 (synonym , gene_info ['Symbol' ])
6162 for _ , gene_info in ncbi_genes .iterrows ()
0 commit comments