Skip to content
Snippets Groups Projects
Commit a7b7156a authored by Blaise Li's avatar Blaise Li
Browse files

Some checks about libraries sharing raw data.

parent 5ad6fef6
No related branches found
No related tags found
No related merge requests found
......@@ -41,6 +41,13 @@ def dump_dicts(path, dicts):
dump(d, pickle_file, HIGHEST_PROTOCOL)
# https://stackoverflow.com/a/1319675/1878788
class TooManyValues(ValueError):
def __init__(self, message="Too many values.", value=None):
super().__init__(message)
self.value = value
def unlist(l):
try:
(elem,) = set(l)
......@@ -48,6 +55,7 @@ def unlist(l):
warnings.warn(f"There are more than one element in {l}.\n")
warnings.warn("Selecting an arbitrary one.\n")
(elem, *_) = set(l)
# raise TooManyValues(value=elem) from err
return elem
......@@ -220,11 +228,14 @@ def main():
# #warnings.warn(f"{rawdat} is a link.\n")
# rawdat = os.readlink(rawdat)
rawdat = OPR(rawdat)
rawdat2condrep[libtype][rawdat].append((cond, rep))
condrep2rawdat[libtype][(cond, rep)].append(rawdat)
#if rawdat in rawdat2lib:
if True:
rawdat2condrep[libtype][rawdat].append((cond, rep))
condrep2rawdat[libtype][(cond, rep)].append(rawdat)
bw = OPJ(from_folder, bw_pattern.format(
lib=cond, rep=rep,
**libtype_info[libtype]["default_wildcards"]).format(genome=genome))
**libtype_info[libtype]["default_wildcards"]).format(
genome=genome))
try:
assert Path(bw).exists()
except AssertionError as err:
......@@ -234,10 +245,55 @@ def main():
raise
condrep2bw[libtype][(cond, rep)].append(bw)
bw2condrep[libtype][bw].append((cond, rep))
# print(libtype)
for (k, v) in rawdat2condrep[libtype].items():
if len(v) > 1:
print(k)
print(v)
if k in rawdat2lib:
warnings.warn(f"Multiple {libtype} libraries for a submitted one.")
else:
warnings.warn(f"Not sure we should worry about the above multiple {libtype} libraries: They do not seem to match submitted raw data files.")
##
# Transform lists into unique values
##
# for (k, d) in rawdat2lib.items():
# try:
# rawdat2lib[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"rawdat2lib[{k}]\n{str(err)}")
# rawdat2lib[k] = err.value
# for (k, d) in lib2rawdat.items():
# try:
# lib2rawdat[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"lib2rawdat[{k}]\n{str(err)}")
# lib2rawdat[k] = err.value
# for (k, d) in rawdat2condrep.items():
# try:
# rawdat2condrep[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"rawdat2condrep[{k}]\n{str(err)}")
# rawdat2condrep[k] = err.value
# for (k, d) in condrep2rawdat.items():
# try:
# condrep2rawdat[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"condrep2rawdat[{k}]\n{str(err)}")
# condrep2rawdat[k] = err.value
# for (k, d) in condrep2bw.items():
# try:
# condrep2bw[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"condrep2bw[{k}]\n{str(err)}")
# condrep2bw[k] = err.value
# for (k, d) in bw2condrep.items():
# try:
# bw2condrep[k] = valmap(unlist, d)
# except TooManyValues as err:
# warnings.warn(f"bw2condrep[{k}]\n{str(err)}")
# bw2condrep[k] = err.value
for (k, d) in rawdat2lib.items():
rawdat2lib[k] = valmap(unlist, d)
for (k, d) in lib2rawdat.items():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment