Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
types = kwargs.get('types', 'Sequence')
if isinstance(types, basestring):
types = [types] * msa.numSequences()
elif isListLike(types) and isinstance(types[0], basestring):
if len(types) != msa.numSequences():
raise ValueError('There should be an entry in types list for each sequence in msa')
else:
raise TypeError('types should be a string or list of strings')
labels = kwargs.get('labels', None)
if labels is None:
labels = []
for sequence in msa:
labels.append(sequence.getLabel())
elif isListLike(labels) and isinstance(labels[0], basestring):
if len(labels) != msa.numSequences():
raise ValueError('There should be an entry in labels list for each sequence in msa')
else:
raise TypeError('labels should be a string or list of strings')
first_resnums = kwargs.get('first_resnums', 'FIRST')
if isinstance(first_resnums, basestring) and len(first_resnums) == 5:
first_resnums = [first_resnums] * msa.numSequences()
elif isListLike(first_resnums) and isinstance(first_resnums, basestring):
if len(first_resnums) != msa.numSequences():
raise ValueError('There should be an entry in first_resnums list for each sequence in msa')
else:
raise TypeError('first_resnums should be a string of length 5 or list of them')
first_chains = kwargs.get('first_chains', '@')
if isinstance(first_chains, basestring) and len(first_chains) == 1:
"""
msafile = open(filename, 'w')
chain_sep = kwargs.get('chain_sep', '/')
if isinstance(chain_sep, basestring):
chain_sep = [chain_sep] * msa.numSequences()
elif isListLike(chain_sep) and isinstance(chain_sep[0], basestring):
if len(chain_sep) != msa.numSequences():
raise ValueError('There should be an entry in chain_sep list for each sequence in msa')
else:
raise TypeError('chain_sep should be a string or list of strings')
types = kwargs.get('types', 'Sequence')
if isinstance(types, basestring):
types = [types] * msa.numSequences()
elif isListLike(types) and isinstance(types[0], basestring):
if len(types) != msa.numSequences():
raise ValueError('There should be an entry in types list for each sequence in msa')
else:
raise TypeError('types should be a string or list of strings')
labels = kwargs.get('labels', None)
if labels is None:
labels = []
for sequence in msa:
labels.append(sequence.getLabel())
elif isListLike(labels) and isinstance(labels[0], basestring):
if len(labels) != msa.numSequences():
raise ValueError('There should be an entry in labels list for each sequence in msa')
else:
raise TypeError('labels should be a string or list of strings')
for i, go_terms_i in enumerate(go_terms):
for j, go_terms_j in enumerate(go_terms):
distances[i, j] = calcGoOverlap(
go_terms_i, go_terms_j, pairwise=False, **kwargs)
else:
go_terms1 = go_terms[0]
flattened_term_list = []
for entry in go_terms[1:]:
if isListLike(entry):
flattened_term_list.extend(entry)
else:
flattened_term_list.append(entry)
if not isListLike(go_terms1):
go_terms1 = [go_terms1]
if not isListLike(flattened_term_list):
flattened_term_list = [flattened_term_list]
try:
flattened_term_list = [go[term] for term in flattened_term_list]
go_terms1 = [go[term] for term in go_terms1]
except:
try:
flattened_term_list = [term.id for term in flattened_term_list]
go_terms1 = [term.id for term in go_terms1]
except:
raise TypeError('go_terms should contain go terms or IDs')
for term in flattened_term_list:
# remove atommaps that share chains with the popped atommap
for i in reversed(range(len(atommap_segchids))):
amsegchids = atommap_segchids[i]
for segchid in amsegchids:
if segchid in segchids:
atommaps.pop(i)
atommap_segchids.pop(i)
break
atommaps = atommaps_
return atommaps
# checkers
if not isListLike(mappings):
raise TypeError('mappings should be a list')
if len(mappings) == 0:
raise ValueError('mappings cannot be empty')
if isinstance(mappings, tuple):
am, am_r, s, c = mappings
return am
mappings = np.atleast_2d(mappings)
if mappings.ndim != 2:
raise ValueError('mappings can only be either an 1-D or 2-D array')
# build atommaps
LOGGER.debug('Finding the atommaps based on their coverages...')
else:
raise TypeError('protein_names should be a string or list of strings')
protein_sources = kwargs.get('protein_sources', '')
if isinstance(protein_sources, basestring):
protein_sources = [protein_sources] * msa.numSequences()
elif isListLike(protein_sources) and isinstance(protein_sources, basestring):
if len(protein_sources) != msa.numSequences():
raise ValueError('There should be an entry in protein_sources list for each sequence in msa')
else:
raise TypeError('protein_sources should be a string or list of strings')
resolutions = kwargs.get('resolutions', '')
if isinstance(resolutions, basestring):
resolutions = [resolutions] * msa.numSequences()
elif isListLike(resolutions) and isinstance(resolutions, basestring):
if len(resolutions) != msa.numSequences():
raise ValueError('There should be an entry in resolutions list for each sequence in msa')
else:
raise TypeError('resolutions should be a string or list of strings')
r_factors = kwargs.get('r_factors', '')
if isinstance(r_factors, basestring):
r_factors = [r_factors] * msa.numSequences()
elif isListLike(r_factors) and isinstance(r_factors, basestring):
if len(r_factors) != msa.numSequences():
raise ValueError('There should be an entry in r_factors list for each sequence in msa')
else:
raise TypeError('r_factors should be a string or list of strings')
for i, sequence in enumerate(msa):
sequence = str(sequence).replace(chain_sep[i],'/')
else:
raise TypeError('last_chains should be a string of length 1 or list of them')
protein_names = kwargs.get('protein_names', '')
if isinstance(protein_names, basestring):
protein_names = [protein_names] * msa.numSequences()
elif isListLike(protein_names) and isinstance(protein_names, basestring):
if len(protein_names) != msa.numSequences():
raise ValueError('There should be an entry in protein_names list for each sequence in msa')
else:
raise TypeError('protein_names should be a string or list of strings')
protein_sources = kwargs.get('protein_sources', '')
if isinstance(protein_sources, basestring):
protein_sources = [protein_sources] * msa.numSequences()
elif isListLike(protein_sources) and isinstance(protein_sources, basestring):
if len(protein_sources) != msa.numSequences():
raise ValueError('There should be an entry in protein_sources list for each sequence in msa')
else:
raise TypeError('protein_sources should be a string or list of strings')
resolutions = kwargs.get('resolutions', '')
if isinstance(resolutions, basestring):
resolutions = [resolutions] * msa.numSequences()
elif isListLike(resolutions) and isinstance(resolutions, basestring):
if len(resolutions) != msa.numSequences():
raise ValueError('There should be an entry in resolutions list for each sequence in msa')
else:
raise TypeError('resolutions should be a string or list of strings')
r_factors = kwargs.get('r_factors', '')
if isinstance(r_factors, basestring):
else:
raise TypeError('labels should be a string or list of strings')
first_resnums = kwargs.get('first_resnums', 'FIRST')
if isinstance(first_resnums, basestring) and len(first_resnums) == 5:
first_resnums = [first_resnums] * msa.numSequences()
elif isListLike(first_resnums) and isinstance(first_resnums, basestring):
if len(first_resnums) != msa.numSequences():
raise ValueError('There should be an entry in first_resnums list for each sequence in msa')
else:
raise TypeError('first_resnums should be a string of length 5 or list of them')
first_chains = kwargs.get('first_chains', '@')
if isinstance(first_chains, basestring) and len(first_chains) == 1:
first_chains = [first_chains] * msa.numSequences()
elif isListLike(first_chains) and isinstance(first_chains, basestring):
if len(first_chains) != msa.numSequences():
raise ValueError('There should be an entry in first_chains list for each sequence in msa')
else:
raise TypeError('first_chains should be a string of length 1 or list of them')
last_resnums = kwargs.get('last_resnums', 'LAST ')
if isinstance(last_resnums, basestring) and len(last_resnums) == 5:
last_resnums = [last_resnums] * msa.numSequences()
elif isListLike(last_resnums) and isinstance(last_resnums, basestring):
if len(last_resnums) != msa.numSequences():
raise ValueError('There should be an entry in last_resnums list for each sequence in msa')
else:
raise TypeError('last_resnums should be a string of length 5 or list of them')
last_chains = kwargs.get('last_chains', ' ')
if isinstance(last_chains, basestring) and len(last_chains) == 1:
:arg database: name of the database of interest
default is PDB. Others include UNIPROT and
common names of many organisms.
:type database: str
"""
database = kwargs.pop('database', 'PDB')
gaf_dict = kwargs.pop('gaf_dict', None)
if gaf_dict is None:
gaf_dict = parseGAF(database=database, **kwargs)
LOGGER.info('GAF parsing completed.')
n_ids = len(ids)
if n_ids == 1:
if isListLike(ids[0]):
ids = ids[0]
n_ids = len(ids)
if n_ids == 1:
ids = list(ids)
results = []
unmapped = []
LOGGER.progress('Querying GOA for {0} ids...'
.format(n_ids), n_ids, '_prody_queryGOA')
for i, id in enumerate(ids):
LOGGER.update(i, 'Querying GOA for id {0} of {1}...'
.format(i+1, n_ids), label='_prody_queryGOA')
if not isinstance(id, str):
raise TypeError('each ID should be a string')
raise TypeError('go_terms should contain go terms or IDs')
for term in flattened_term_list:
if not isinstance(term, str):
term = term.id
for term in go_terms1:
if not isinstance(term, str):
term = term.id
distances = np.zeros((len(go_terms1), len(flattened_term_list)))
for i, go_id1 in enumerate(go_terms1):
for j, go_id2 in enumerate(flattened_term_list):
distances[i, j] = calcMinBranchLength(go_id1, go_id2, go)
if operator is not None and isListLike(distances):
distances = operator(distances)
if operator is None:
if distances.shape[-1] == 1:
distances = distances.flatten()
if distances.shape == (1,):
distances = distances[0]
if distance:
return distances
else:
return 1. / distances