def setup(self): """Setup main parameters""" if base.check_snap() == True: print ('running in a snap') cmd = base.set_netmhcpan_cmd() print ('netmhcpan cmd set to:', cmd) pd.set_option('display.width', 120) #override base.defaults entries if provided in conf set_defaults(self.__dict__) self.sequences = None self.peptides = None if self.sequence_file is not '': self.sequences = get_sequences(self.sequence_file, header_sep=self.fasta_header_sep) print ('input is %s protein sequences' %len(self.sequences)) elif self.peptide_file is not '': self.peptides = read_names(self.peptide_file) print ('input is %s peptides' %len(self.peptides)) if self.sequences is None and self.peptides is None: print ('no valid inputs found') return False self.mhc1_alleles = get_alleles(self.mhc1_alleles) self.mhc2_alleles = get_alleles(self.mhc2_alleles) if len(self.mhc1_alleles)==0 and len(self.mhc2_alleles)==0: return False self.predictors = self.predictors.split(',') for p in self.predictors: if p not in base.predictors: print ('unknown predictor in config file. Use:') show_predictors() return False if self.mhc1_alleles[0] in base.mhc1_presets: self.mhc1_alleles = base.get_preset_alleles(self.mhc1_alleles[0]) if self.mhc2_alleles[0] in base.mhc2_presets: self.mhc2_alleles = base.get_preset_alleles(self.mhc2_alleles[0]) if type(self.cutoffs) is int: self.cutoffs = [self.cutoffs] else: self.cutoffs = [float(i) for i in self.cutoffs.split(',')] if os.path.exists(self.names): self.names = read_names(self.names) elif self.names == '': self.names=None else: self.names = self.names.split(',') if self.names is not None: print ('selected sequences:', self.names) if not os.path.exists(self.path) and self.path != '': os.mkdir(self.path) #copy input seqs to path if self.sequences is not None: self.sequences.to_csv(os.path.join(self.path, 'input.csv'),index=False) return True
def check_ensembl(release='75'): """Check pyensembl ref genome cached. Needed for running in snap""" #check if running inside a snap package so we can download #the genome files for pyensembl cache_dir = None if base.check_snap() is True: #home = os.path.join('/home', os.environ['USER']) home = os.environ['SNAP_USER_COMMON'] cache_dir = os.path.join(home, '.cache') os.environ['PYENSEMBL_CACHE_DIR'] = cache_dir print('checking for ref human genome') fetch_ensembl_release(cache_dir, release) return