Showing
7 changed files
with
192 additions
and
1929 deletions
... | @@ -71,11 +71,6 @@ sqlite3.enable_callback_tracebacks(True) | ... | @@ -71,11 +71,6 @@ sqlite3.enable_callback_tracebacks(True) |
71 | sqlite3.register_adapter(np.int64, lambda val: int(val)) # Tell Sqlite what to do with <class numpy.int64> objects ---> convert to int | 71 | sqlite3.register_adapter(np.int64, lambda val: int(val)) # Tell Sqlite what to do with <class numpy.int64> objects ---> convert to int |
72 | sqlite3.register_adapter(np.float64, lambda val: float(val)) # Tell Sqlite what to do with <class numpy.float64> objects ---> convert to float | 72 | sqlite3.register_adapter(np.float64, lambda val: float(val)) # Tell Sqlite what to do with <class numpy.float64> objects ---> convert to float |
73 | 73 | ||
74 | -# m = Manager() | ||
75 | -# running_stats = m.list() | ||
76 | -# running_stats.append(0) # n_launched | ||
77 | -# running_stats.append(0) # n_finished | ||
78 | -# running_stats.append(0) # n_skipped | ||
79 | n_launched = Value('i', 0) | 74 | n_launched = Value('i', 0) |
80 | n_finished = Value('i', 0) | 75 | n_finished = Value('i', 0) |
81 | n_skipped = Value('i', 0) | 76 | n_skipped = Value('i', 0) |
... | @@ -635,12 +630,24 @@ class Chain: | ... | @@ -635,12 +630,24 @@ class Chain: |
635 | if nt2 in res_ids: | 630 | if nt2 in res_ids: |
636 | interacts[nt2_idx] += 1 | 631 | interacts[nt2_idx] += 1 |
637 | if paired[nt2_idx] == "": | 632 | if paired[nt2_idx] == "": |
638 | - pair_type_LW[nt2_idx] = lw_pair[0] + lw_pair[2] + lw_pair[1] | 633 | + if lw_pair != "--": |
639 | - pair_type_DSSR[nt2_idx] = dssr_pair[0] + dssr_pair[3] + dssr_pair[2] + dssr_pair[1] | 634 | + pair_type_LW[nt2_idx] = lw_pair[0] + lw_pair[2] + lw_pair[1] |
635 | + else: | ||
636 | + pair_type_LW[nt2_idx] = "--" | ||
637 | + if dssr_pair != "--": | ||
638 | + pair_type_DSSR[nt2_idx] = dssr_pair[0] + dssr_pair[3] + dssr_pair[2] + dssr_pair[1] | ||
639 | + else: | ||
640 | + pair_type_DSSR[nt2_idx] = "--" | ||
640 | paired[nt2_idx] = str(nt1_idx + 1) | 641 | paired[nt2_idx] = str(nt1_idx + 1) |
641 | else: | 642 | else: |
642 | - pair_type_LW[nt2_idx] += ',' + lw_pair[0] + lw_pair[2] + lw_pair[1] | 643 | + if lw_pair != "--": |
643 | - pair_type_DSSR[nt2_idx] += ',' + dssr_pair[0] + dssr_pair[3] + dssr_pair[2] + dssr_pair[1] | 644 | + pair_type_LW[nt2_idx] += ',' + lw_pair[0] + lw_pair[2] + lw_pair[1] |
645 | + else: | ||
646 | + pair_type_LW[nt2_idx] += ",--" | ||
647 | + if dssr_pair != "--": | ||
648 | + pair_type_DSSR[nt2_idx] += ',' + dssr_pair[0] + dssr_pair[3] + dssr_pair[2] + dssr_pair[1] | ||
649 | + else: | ||
650 | + pair_type_DSSR[nt2_idx] += ",--" | ||
644 | paired[nt2_idx] += ',' + str(nt1_idx + 1) | 651 | paired[nt2_idx] += ',' + str(nt1_idx + 1) |
645 | 652 | ||
646 | # transform nt_id to shorter values | 653 | # transform nt_id to shorter values |
... | @@ -1083,7 +1090,7 @@ class Pipeline: | ... | @@ -1083,7 +1090,7 @@ class Pipeline: |
1083 | self.REUSE_ALL = False | 1090 | self.REUSE_ALL = False |
1084 | self.REDUNDANT = False | 1091 | self.REDUNDANT = False |
1085 | self.ALIGNOPTS = None | 1092 | self.ALIGNOPTS = None |
1086 | - self.RRNAALIGNOPTS = "--mxsize 8192 --cpu 10 --maxtau 0.1" | 1093 | + self.RRNAALIGNOPTS = ["--mxsize", "8192", "--cpu", "10", "--maxtau", "0.1"] |
1087 | self.STATSOPTS = None | 1094 | self.STATSOPTS = None |
1088 | self.USESINA = False | 1095 | self.USESINA = False |
1089 | self.SELECT_ONLY = None | 1096 | self.SELECT_ONLY = None |
... | @@ -1151,6 +1158,7 @@ class Pipeline: | ... | @@ -1151,6 +1158,7 @@ class Pipeline: |
1151 | "\n\t\t\t\t need of RAM. Should be a number between 1 and your number of CPUs. Note that portions" | 1158 | "\n\t\t\t\t need of RAM. Should be a number between 1 and your number of CPUs. Note that portions" |
1152 | "\n\t\t\t\t of the pipeline already limit themselves to 50% or 70% of that number by default.") | 1159 | "\n\t\t\t\t of the pipeline already limit themselves to 50% or 70% of that number by default.") |
1153 | print("--cmalign-opts=…\t\tA string of additional options to pass to cmalign aligner, e.g. \"--nonbanded --mxsize 2048\"") | 1160 | print("--cmalign-opts=…\t\tA string of additional options to pass to cmalign aligner, e.g. \"--nonbanded --mxsize 2048\"") |
1161 | + print("--cmalign-rrna-opts=…\tLike cmalign-opts, but applied for rRNA (large families, memory-heavy jobs).") | ||
1154 | print("--archive\t\t\tCreate tar.gz archives of the datapoints text files and the alignments," | 1162 | print("--archive\t\t\tCreate tar.gz archives of the datapoints text files and the alignments," |
1155 | "\n\t\t\t\t and update the link to the latest archive. ") | 1163 | "\n\t\t\t\t and update the link to the latest archive. ") |
1156 | print("--no-logs\t\t\tDo not save per-chain logs of the numbering modifications.") | 1164 | print("--no-logs\t\t\tDo not save per-chain logs of the numbering modifications.") |
... | @@ -1219,7 +1227,7 @@ class Pipeline: | ... | @@ -1219,7 +1227,7 @@ class Pipeline: |
1219 | elif opt == "cmalign-opts": | 1227 | elif opt == "cmalign-opts": |
1220 | self.ALIGNOPTS = arg | 1228 | self.ALIGNOPTS = arg |
1221 | elif opt == "cmalign-rrna-opts": | 1229 | elif opt == "cmalign-rrna-opts": |
1222 | - self.RRNAALIGNOPTS = arg | 1230 | + self.RRNAALIGNOPTS = " ".split(arg) |
1223 | elif opt == "stats-opts": | 1231 | elif opt == "stats-opts": |
1224 | self.STATSOPTS = " ".split(arg) | 1232 | self.STATSOPTS = " ".split(arg) |
1225 | elif opt == "--all": | 1233 | elif opt == "--all": |
... | @@ -1436,8 +1444,9 @@ class Pipeline: | ... | @@ -1436,8 +1444,9 @@ class Pipeline: |
1436 | args=[c, self.EXTRACT_CHAINS, self.KEEP_HETATM, retry, self.SAVELOGS])) | 1444 | args=[c, self.EXTRACT_CHAINS, self.KEEP_HETATM, retry, self.SAVELOGS])) |
1437 | try: | 1445 | try: |
1438 | results = execute_joblist(joblist) | 1446 | results = execute_joblist(joblist) |
1439 | - except: | 1447 | + except Exception as e: |
1440 | - print("Exiting", flush=True) | 1448 | + warn(str(e), error=True) |
1449 | + print("Exiting", str(e), flush=True) | ||
1441 | exit(1) | 1450 | exit(1) |
1442 | 1451 | ||
1443 | # If there were newly discovered problems, add this chain to the known issues | 1452 | # If there were newly discovered problems, add this chain to the known issues |
... | @@ -1550,7 +1559,7 @@ class Pipeline: | ... | @@ -1550,7 +1559,7 @@ class Pipeline: |
1550 | align = AlignIO.read(path_to_seq_data + "realigned/" + r[0] + "++.afa", "fasta") | 1559 | align = AlignIO.read(path_to_seq_data + "realigned/" + r[0] + "++.afa", "fasta") |
1551 | nb_3d_chains = len([1 for r in align if '[' in r.id]) | 1560 | nb_3d_chains = len([1 for r in align if '[' in r.id]) |
1552 | if r[0] in SSU_set: # SSU v138.1 is used | 1561 | if r[0] in SSU_set: # SSU v138.1 is used |
1553 | - nb_homologs = 2224740 # source: https://www.arb-silva.de/documentation/release-1381/ | 1562 | + nb_homologs = 2224740 # source: https://www.arb-silva.de/documentation/release-1381/ |
1554 | nb_total_homol = nb_homologs + nb_3d_chains | 1563 | nb_total_homol = nb_homologs + nb_3d_chains |
1555 | elif r[0] in LSU_set: # LSU v138.1 is used | 1564 | elif r[0] in LSU_set: # LSU v138.1 is used |
1556 | nb_homologs = 227331 # source: https://www.arb-silva.de/documentation/release-1381/ | 1565 | nb_homologs = 227331 # source: https://www.arb-silva.de/documentation/release-1381/ |
... | @@ -1794,9 +1803,9 @@ def init_no_tqdm(arg1, arg2, arg3): | ... | @@ -1794,9 +1803,9 @@ def init_no_tqdm(arg1, arg2, arg3): |
1794 | The children progress is followed using stdout text logs (notify(), warn(), etc) | 1803 | The children progress is followed using stdout text logs (notify(), warn(), etc) |
1795 | """ | 1804 | """ |
1796 | global n_launched, n_finished, n_skipped | 1805 | global n_launched, n_finished, n_skipped |
1797 | - n_launched = arg1 | 1806 | + n_launched = arg1 |
1798 | - n_finished = arg2 | 1807 | + n_finished = arg2 |
1799 | - n_skipped = arg3 | 1808 | + n_skipped = arg3 |
1800 | 1809 | ||
1801 | def warn(message, error=False): | 1810 | def warn(message, error=False): |
1802 | """ | 1811 | """ |
... | @@ -2147,7 +2156,7 @@ def execute_job(j, jobcount): | ... | @@ -2147,7 +2156,7 @@ def execute_job(j, jobcount): |
2147 | 2156 | ||
2148 | # increase the counter of running jobs | 2157 | # increase the counter of running jobs |
2149 | with n_launched.get_lock(): | 2158 | with n_launched.get_lock(): |
2150 | - n_launched.value += 1 | 2159 | + n_launched.value += 1 |
2151 | 2160 | ||
2152 | # Monitor this process | 2161 | # Monitor this process |
2153 | m = -1 | 2162 | m = -1 |
... | @@ -2208,7 +2217,8 @@ def execute_job(j, jobcount): | ... | @@ -2208,7 +2217,8 @@ def execute_job(j, jobcount): |
2208 | m = assistant_future.result() | 2217 | m = assistant_future.result() |
2209 | 2218 | ||
2210 | # increase the counter of finished jobs | 2219 | # increase the counter of finished jobs |
2211 | - running_stats[1] += 1 | 2220 | + with n_finished.get_lock(): |
2221 | + n_finished.value += 1 | ||
2212 | 2222 | ||
2213 | # return time and memory statistics, plus the job results | 2223 | # return time and memory statistics, plus the job results |
2214 | t = end_time - start_time | 2224 | t = end_time - start_time |
... | @@ -2223,9 +2233,12 @@ def execute_joblist(fulljoblist): | ... | @@ -2223,9 +2233,12 @@ def execute_joblist(fulljoblist): |
2223 | """ | 2233 | """ |
2224 | 2234 | ||
2225 | # Reset counters | 2235 | # Reset counters |
2226 | - running_stats[0] = 0 # started | 2236 | + with n_launched.get_lock(): |
2227 | - running_stats[1] = 0 # finished | 2237 | + n_launched.value = 0 |
2228 | - running_stats[2] = 0 # failed | 2238 | + with n_skipped.get_lock(): |
2239 | + n_skipped.value = 0 | ||
2240 | + with n_finished.get_lock(): | ||
2241 | + n_finished.value = 0 | ||
2229 | 2242 | ||
2230 | # Sort jobs in a tree structure, first by priority, then by CPU numbers | 2243 | # Sort jobs in a tree structure, first by priority, then by CPU numbers |
2231 | jobs = {} | 2244 | jobs = {} |
... | @@ -2276,10 +2289,6 @@ def execute_joblist(fulljoblist): | ... | @@ -2276,10 +2289,6 @@ def execute_joblist(fulljoblist): |
2276 | j.comp_time = round(r[0], 2) # seconds | 2289 | j.comp_time = round(r[0], 2) # seconds |
2277 | j.max_mem = int(r[1]/1000000) # MB | 2290 | j.max_mem = int(r[1]/1000000) # MB |
2278 | results.append((j.label, r[2], j.comp_time, j.max_mem)) | 2291 | results.append((j.label, r[2], j.comp_time, j.max_mem)) |
2279 | - | ||
2280 | - # Job is finished | ||
2281 | - with n_finished.get_lock(): | ||
2282 | - n_finished.value += 1 | ||
2283 | 2292 | ||
2284 | # throw back the money | 2293 | # throw back the money |
2285 | return results | 2294 | return results |
... | @@ -2672,13 +2681,17 @@ def use_infernal(rfam_acc, alignopts): | ... | @@ -2672,13 +2681,17 @@ def use_infernal(rfam_acc, alignopts): |
2672 | with open(path_to_seq_data + f"realigned/{rfam_acc}_new.log", 'w') as o: | 2681 | with open(path_to_seq_data + f"realigned/{rfam_acc}_new.log", 'w') as o: |
2673 | p1 = subprocess.run(["cmalign", "--ifile", path_to_seq_data + f"realigned/{rfam_acc}.ins", | 2682 | p1 = subprocess.run(["cmalign", "--ifile", path_to_seq_data + f"realigned/{rfam_acc}.ins", |
2674 | "--sfile", path_to_seq_data + f"realigned/{rfam_acc}.tsv", | 2683 | "--sfile", path_to_seq_data + f"realigned/{rfam_acc}.tsv", |
2675 | - "-o", path_to_seq_data + f"realigned/{rfam_acc}_new.stk", | 2684 | + "-o", new_ali_path, |
2676 | path_to_seq_data + f"realigned/{rfam_acc}.cm", | 2685 | path_to_seq_data + f"realigned/{rfam_acc}.cm", |
2677 | path_to_seq_data + f"realigned/{rfam_acc}_new.fa"], | 2686 | path_to_seq_data + f"realigned/{rfam_acc}_new.fa"], |
2678 | stdout=o, stderr=subprocess.PIPE) | 2687 | stdout=o, stderr=subprocess.PIPE) |
2679 | - if "--mxsize" in p1.stderr.decode("utf-8"): | 2688 | + align_errors = p1.stderr.decode("utf-8") |
2680 | - # not enough available RAM to allocate the DP matrix | 2689 | + if len(align_errors): |
2681 | - warn(f"Not enough RAM to allocate cmalign DP matrix for family {rfam_acc}. Use --sina or --cmalign-opts.", error=True) | 2690 | + if "--mxsize" in align_errors: |
2691 | + # not enough available RAM to allocate the DP matrix | ||
2692 | + warn(f"Not enough RAM to allocate cmalign DP matrix for family {rfam_acc}. Use --sina or --cmalign-opts.", error=True) | ||
2693 | + else: | ||
2694 | + warn(align_errors, error=True) | ||
2682 | notify("Aligned new sequences together") | 2695 | notify("Aligned new sequences together") |
2683 | 2696 | ||
2684 | # Detect doublons and remove them | 2697 | # Detect doublons and remove them |
... | @@ -2710,8 +2723,8 @@ def use_infernal(rfam_acc, alignopts): | ... | @@ -2710,8 +2723,8 @@ def use_infernal(rfam_acc, alignopts): |
2710 | os.remove(path_to_seq_data + "realigned/toremove.txt") | 2723 | os.remove(path_to_seq_data + "realigned/toremove.txt") |
2711 | 2724 | ||
2712 | # And we merge the two alignments | 2725 | # And we merge the two alignments |
2713 | - p2 = subprocess.run(["cmalign", "--merge" "-o", path_to_seq_data + f"realigned/{rfam_acc}_merged.stk", | 2726 | + p2 = subprocess.run(["esl-alimerge", "-o", path_to_seq_data + f"realigned/{rfam_acc}_merged.stk", |
2714 | - "--rna", path_to_seq_data + f"realigned/{rfam_acc}.cm", existing_ali_path, new_ali_path], | 2727 | + "--rna", existing_ali_path, new_ali_path], |
2715 | stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) | 2728 | stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) |
2716 | alignErrors = p1.stderr.decode('utf-8') | 2729 | alignErrors = p1.stderr.decode('utf-8') |
2717 | mergeErrors = p2.stderr.decode('utf-8') | 2730 | mergeErrors = p2.stderr.decode('utf-8') |
... | @@ -2730,7 +2743,7 @@ def use_infernal(rfam_acc, alignopts): | ... | @@ -2730,7 +2743,7 @@ def use_infernal(rfam_acc, alignopts): |
2730 | 2743 | ||
2731 | cmd = ["cmalign"] | 2744 | cmd = ["cmalign"] |
2732 | if alignopts is not None: | 2745 | if alignopts is not None: |
2733 | - cmd += " ".split(alignopts) | 2746 | + cmd += alignopts |
2734 | cmd += ['-o', path_to_seq_data + f"realigned/{rfam_acc}++.stk", | 2747 | cmd += ['-o', path_to_seq_data + f"realigned/{rfam_acc}++.stk", |
2735 | "--ifile", path_to_seq_data + f"realigned/{rfam_acc}.ins", | 2748 | "--ifile", path_to_seq_data + f"realigned/{rfam_acc}.ins", |
2736 | "--sfile", path_to_seq_data + f"realigned/{rfam_acc}.tsv", | 2749 | "--sfile", path_to_seq_data + f"realigned/{rfam_acc}.tsv", |
... | @@ -3166,8 +3179,6 @@ if __name__ == "__main__": | ... | @@ -3166,8 +3179,6 @@ if __name__ == "__main__": |
3166 | for c in pp.loaded_chains: | 3179 | for c in pp.loaded_chains: |
3167 | work_save(c, homology=False) | 3180 | work_save(c, homology=False) |
3168 | print("Completed.") | 3181 | print("Completed.") |
3169 | - exit(0) | ||
3170 | - | ||
3171 | 3182 | ||
3172 | # At this point, structure, chain and nucleotide tables of the database are up to date. | 3183 | # At this point, structure, chain and nucleotide tables of the database are up to date. |
3173 | # (Modulo some statistics computed by statistics.py) | 3184 | # (Modulo some statistics computed by statistics.py) | ... | ... |
... | @@ -35,11 +35,11 @@ nohup bash -c 'time docker run --rm -v /path/to/3D/data/folder:/3D -v /path/to/s | ... | @@ -35,11 +35,11 @@ nohup bash -c 'time docker run --rm -v /path/to/3D/data/folder:/3D -v /path/to/s |
35 | # Method 2 : Classical command line installation (Linux only) | 35 | # Method 2 : Classical command line installation (Linux only) |
36 | 36 | ||
37 | You need to install the dependencies: | 37 | You need to install the dependencies: |
38 | -- DSSR, you need to register to the X3DNA forum [here](http://forum.x3dna.org/site-announcements/download-instructions/) and then download the DSSR binary [on that page](http://forum.x3dna.org/downloads/3dna-download/). Make sure to have the `x3dna-dssr` binary in your $PATH variable so that RNANet.py finds it. | 38 | +- DSSR 1.9.9 or newer, you need to register to the X3DNA forum [here](http://forum.x3dna.org/site-announcements/download-instructions/) and then download the DSSR binary [on that page](http://forum.x3dna.org/downloads/3dna-download/). Make sure to have the `x3dna-dssr` binary in your $PATH variable so that RNANet.py finds it. |
39 | -- Infernal, to download at [Eddylab](http://eddylab.org/infernal/), several options are available depending on your preferences. Make sure to have the `cmalign`, `cmfetch`, `cmbuild`, `esl-alimanip`, `esl-alipid` and `esl-reformat` binaries in your $PATH variable, so that RNANet.py can find them. | 39 | +- Infernal 1.1.4 or newer, to download at [Eddylab](http://eddylab.org/infernal/), several options are available depending on your preferences. Make sure to have the `cmalign`, `cmfetch`, `cmbuild`, `esl-alimanip`, `esl-alimerge`, `esl-alipid` and `esl-reformat` binaries in your $PATH variable, so that RNANet.py can find them. |
40 | -- SINA, follow [these instructions](https://sina.readthedocs.io/en/latest/install.html) for example. Make sure to have the `sina` binary in your $PATH. | 40 | +- SINA (if you plan to use it), follow [these instructions](https://sina.readthedocs.io/en/latest/install.html) for example. Make sure to have the `sina` binary in your $PATH. |
41 | - Sqlite 3, available under the name *sqlite* in every distro's package manager, | 41 | - Sqlite 3, available under the name *sqlite* in every distro's package manager, |
42 | -- Python >= 3.8, (Unfortunately, python3.6 is no longer supported, because of changes in the multiprocessing and Threading packages. Untested with Python 3.7.\*) | 42 | +- Python >= 3.8, (Unfortunately, python3.6 is no longer supported, because of changes in the multiprocessing and Threading packages. Untested with Python 3.7.\*). |
43 | - The following Python packages: `python3.8 -m pip install biopython matplotlib pandas psutil pymysql requests scipy setproctitle sqlalchemy tqdm`. | 43 | - The following Python packages: `python3.8 -m pip install biopython matplotlib pandas psutil pymysql requests scipy setproctitle sqlalchemy tqdm`. |
44 | 44 | ||
45 | Then, run it from the command line, preferably using nohup if your shell will be interrupted: | 45 | Then, run it from the command line, preferably using nohup if your shell will be interrupted: | ... | ... |
... | @@ -19,3 +19,6 @@ | ... | @@ -19,3 +19,6 @@ |
19 | * Use and save Infernal alignment bounds and truncation information | 19 | * Use and save Infernal alignment bounds and truncation information |
20 | * Save if a chain is a representative in BGSU list | 20 | * Save if a chain is a representative in BGSU list |
21 | * Annotate unstructured regions (on a nucleotide basis) | 21 | * Annotate unstructured regions (on a nucleotide basis) |
22 | + | ||
23 | +## Technical to-do list | ||
24 | +* `cmalign --merge` is now deprecated, we use `esl-alimerge` instead. But, esl is a single-core process. We should run the merges of alignements of different families in parallel to save some time [TODO]. | ... | ... |
... | @@ -10,16 +10,19 @@ | ... | @@ -10,16 +10,19 @@ |
10 | import matplotlib.pyplot as plt | 10 | import matplotlib.pyplot as plt |
11 | import numpy as np | 11 | import numpy as np |
12 | import pandas as pd | 12 | import pandas as pd |
13 | -import Bio, json, os, random, setproctitle, sqlite3 | 13 | +import Bio, json, os, random, sqlite3 |
14 | from Bio.PDB.MMCIFParser import MMCIFParser | 14 | from Bio.PDB.MMCIFParser import MMCIFParser |
15 | from Bio.PDB.vectors import Vector, calc_angle, calc_dihedral | 15 | from Bio.PDB.vectors import Vector, calc_angle, calc_dihedral |
16 | from multiprocessing import Pool, Value | 16 | from multiprocessing import Pool, Value |
17 | from pandas.core.common import SettingWithCopyWarning | 17 | from pandas.core.common import SettingWithCopyWarning |
18 | +from setproctitle import setproctitle | ||
18 | from sklearn.mixture import GaussianMixture | 19 | from sklearn.mixture import GaussianMixture |
19 | from tqdm import tqdm | 20 | from tqdm import tqdm |
21 | +from RNAnet import trace_unhandled_exceptions | ||
20 | 22 | ||
21 | -# number of modes in the parameter distribution, used to know how many laws to use in the GMM. if you do not want to trust this data, | 23 | +# This dic stores the number laws to use in the GMM to estimate each parameter's distribution. |
22 | -# you can use the --rescan-nmodes option. GMMs will be trained between 1 and 8 modes and the best model will be kept. | 24 | +# If you do not want to trust this data, you can use the --rescan-nmodes option. |
25 | +# GMMs will be trained between 1 and 8 modes and the best model will be kept. | ||
23 | modes_data = { | 26 | modes_data = { |
24 | # bonded distances, all-atom, common to all. Some are also used for HiRE-RNA. | 27 | # bonded distances, all-atom, common to all. Some are also used for HiRE-RNA. |
25 | "C1'-C2'":3, "C2'-C3'":2, "C2'-O2'":2, "C3'-O3'":2, "C4'-C3'":2, "C4'-O4'":2, "C5'-C4'":2, "O3'-P":3, "O4'-C1'":3, "O5'-C5'":3, "P-O5'":3, "P-OP1":2, "P-OP2":2, | 28 | "C1'-C2'":3, "C2'-C3'":2, "C2'-O2'":2, "C3'-O3'":2, "C4'-C3'":2, "C4'-O4'":2, "C5'-C4'":2, "O3'-P":3, "O4'-C1'":3, "O5'-C5'":3, "P-O5'":3, "P-OP1":2, "P-OP2":2, |
... | @@ -730,7 +733,7 @@ def measures_aa(name, s, thr_idx): | ... | @@ -730,7 +733,7 @@ def measures_aa(name, s, thr_idx): |
730 | l_pyrimidines.append([c1p_n1, n1_c6, c6_c5, c5_c4, c4_n3, n3_c2, c2_o2, c2_n1, c4_n4, c4_o4]) | 733 | l_pyrimidines.append([c1p_n1, n1_c6, c6_c5, c5_c4, c4_n3, n3_c2, c2_o2, c2_n1, c4_n4, c4_o4]) |
731 | pbar.update(1) | 734 | pbar.update(1) |
732 | 735 | ||
733 | - df_comm = pd.DataFrame(l_common, columns=["Residu", "O3'-P", "P-OP1", "P-OP2", "P-O5'", "O5'-C5'", "C5'-C4'", "C4'-O4'", "C4'-C3'", "O4'-C1'", "C1'-C2'", "C2'-O2'", "C2'-C3'", "C3'-O3'"]) | 736 | + df_comm = pd.DataFrame(l_common, columns=["Residue", "O3'-P", "P-OP1", "P-OP2", "P-O5'", "O5'-C5'", "C5'-C4'", "C4'-O4'", "C4'-C3'", "O4'-C1'", "C1'-C2'", "C2'-O2'", "C2'-C3'", "C3'-O3'"]) |
734 | df_pur = pd.DataFrame(l_purines, columns=["C1'-N9", "N9-C8", "C8-N7", "N7-C5", "C5-C6", "C6-O6", "C6-N6", "C6-N1", "N1-C2", "C2-N2", "C2-N3", "N3-C4", "C4-N9", "C4-C5" ]) | 737 | df_pur = pd.DataFrame(l_purines, columns=["C1'-N9", "N9-C8", "C8-N7", "N7-C5", "C5-C6", "C6-O6", "C6-N6", "C6-N1", "N1-C2", "C2-N2", "C2-N3", "N3-C4", "C4-N9", "C4-C5" ]) |
735 | df_pyr = pd.DataFrame(l_pyrimidines, columns=["C1'-N1", "N1-C6", "C6-C5", "C5-C4", "C4-N3", "N3-C2", "C2-O2", "C2-N1", "C4-N4", "C4-O4"]) | 738 | df_pyr = pd.DataFrame(l_pyrimidines, columns=["C1'-N1", "N1-C6", "C6-C5", "C5-C4", "C4-N3", "N3-C2", "C2-O2", "C2-N1", "C4-N4", "C4-O4"]) |
736 | df = pd.concat([df_comm, df_pur, df_pyr], axis = 1) | 739 | df = pd.concat([df_comm, df_pur, df_pyr], axis = 1) |
... | @@ -785,9 +788,9 @@ def measures_pyle(name, s, thr_idx): | ... | @@ -785,9 +788,9 @@ def measures_pyle(name, s, thr_idx): |
785 | l_dist.append([res.get_resname(), c1p_psuiv, p_c1p, c4p_psuiv, p_c4p]) | 788 | l_dist.append([res.get_resname(), c1p_psuiv, p_c1p, c4p_psuiv, p_c4p]) |
786 | l_angl.append([res.get_resname(), p_c1p_psuiv, c1p_psuiv_c1psuiv]) | 789 | l_angl.append([res.get_resname(), p_c1p_psuiv, c1p_psuiv_c1psuiv]) |
787 | 790 | ||
788 | - df = pd.DataFrame(l_dist, columns=["Residu", "C1'-P", "P-C1'", "C4'-P", "P-C4'"]) | 791 | + df = pd.DataFrame(l_dist, columns=["Residue", "C1'-P", "P-C1'", "C4'-P", "P-C4'"]) |
789 | df.to_csv(runDir + "/results/geometry/Pyle/distances/distances_pyle_" + name + ".csv") | 792 | df.to_csv(runDir + "/results/geometry/Pyle/distances/distances_pyle_" + name + ".csv") |
790 | - df = pd.DataFrame(l_angl, columns=["Residu", "P-C1'-P°", "C1'-P°-C1'°"]) | 793 | + df = pd.DataFrame(l_angl, columns=["Residue", "P-C1'-P°", "C1'-P°-C1'°"]) |
791 | df.to_csv(runDir + "/results/geometry/Pyle/angles/flat_angles_pyle_"+name+".csv") | 794 | df.to_csv(runDir + "/results/geometry/Pyle/angles/flat_angles_pyle_"+name+".csv") |
792 | 795 | ||
793 | @trace_unhandled_exceptions | 796 | @trace_unhandled_exceptions |
... | @@ -798,11 +801,11 @@ def measures_hrna(name, s, thr_idx): | ... | @@ -798,11 +801,11 @@ def measures_hrna(name, s, thr_idx): |
798 | 801 | ||
799 | # do not recompute something already computed | 802 | # do not recompute something already computed |
800 | if (os.path.isfile(runDir + '/results/geometry/HiRE-RNA/distances/distances_HiRERNA '+name+'.csv') and | 803 | if (os.path.isfile(runDir + '/results/geometry/HiRE-RNA/distances/distances_HiRERNA '+name+'.csv') and |
801 | - os.path.isfile(runDir + '/results/geometry/HiRE-RNA/angles/angles_HiRERNA '+name+'.csv') and | 804 | + os.path.isfile(runDir + '/results/geometry/HiRE-RNA/angles/angles_HiRERNA '+name+'.csv') and |
802 | - os.path.isfile(runDir + '/results/geometry/HiRE-RNA/torsions/torsions_HiRERNA '+name+'.csv')): | 805 | + os.path.isfile(runDir + '/results/geometry/HiRE-RNA/torsions/torsions_HiRERNA '+name+'.csv')): |
803 | return | 806 | return |
804 | 807 | ||
805 | - l_dist=[] | 808 | + l_dist = [] |
806 | l_angl = [] | 809 | l_angl = [] |
807 | l_tors = [] | 810 | l_tors = [] |
808 | last_c4p = [] | 811 | last_c4p = [] |
... | @@ -845,8 +848,8 @@ def measures_hrna(name, s, thr_idx): | ... | @@ -845,8 +848,8 @@ def measures_hrna(name, s, thr_idx): |
845 | c1_c4_psuiv_o5suiv = np.nan | 848 | c1_c4_psuiv_o5suiv = np.nan |
846 | 849 | ||
847 | if res.get_resname() not in ['ATP', 'CCC', 'A3P', 'A23', 'GDP', 'RIA', "2BA"] : # several phosphate groups, ignore | 850 | if res.get_resname() not in ['ATP', 'CCC', 'A3P', 'A23', 'GDP', 'RIA', "2BA"] : # several phosphate groups, ignore |
848 | - atom_p = [ atom.get_coord() for atom in res if atom.get_name() == "P"] | 851 | + atom_p = [ atom.get_coord() for atom in res if atom.get_name() == "P"] |
849 | - atom_o5p= [ atom.get_coord() for atom in res if "O5'" in atom.get_fullname() ] | 852 | + atom_o5p = [ atom.get_coord() for atom in res if "O5'" in atom.get_fullname() ] |
850 | atom_c5p = [ atom.get_coord() for atom in res if "C5'" in atom.get_fullname() ] | 853 | atom_c5p = [ atom.get_coord() for atom in res if "C5'" in atom.get_fullname() ] |
851 | atom_c4p = [ atom.get_coord() for atom in res if "C4'" in atom.get_fullname() ] | 854 | atom_c4p = [ atom.get_coord() for atom in res if "C4'" in atom.get_fullname() ] |
852 | atom_c1p = [ atom.get_coord() for atom in res if "C1'" in atom.get_fullname() ] | 855 | atom_c1p = [ atom.get_coord() for atom in res if "C1'" in atom.get_fullname() ] |
... | @@ -854,26 +857,26 @@ def measures_hrna(name, s, thr_idx): | ... | @@ -854,26 +857,26 @@ def measures_hrna(name, s, thr_idx): |
854 | atom_b2 = pos_b2(res) # position b2 to be calculated only for those with 2 cycles | 857 | atom_b2 = pos_b2(res) # position b2 to be calculated only for those with 2 cycles |
855 | 858 | ||
856 | # Distances. If one of the atoms is empty, the euclidian distance returns NaN. | 859 | # Distances. If one of the atoms is empty, the euclidian distance returns NaN. |
857 | - last_c4p_p = get_euclidian_distance(last_c4p, atom_p) | 860 | + last_c4p_p = get_euclidian_distance(last_c4p, atom_p) |
858 | - p_o5p = get_euclidian_distance(atom_p, atom_o5p) | 861 | + p_o5p = get_euclidian_distance(atom_p, atom_o5p) |
859 | - o5p_c5p = get_euclidian_distance(atom_o5p, atom_c5p) | 862 | + o5p_c5p = get_euclidian_distance(atom_o5p, atom_c5p) |
860 | - c5p_c4p = get_euclidian_distance(atom_c5p, atom_c4p) | 863 | + c5p_c4p = get_euclidian_distance(atom_c5p, atom_c4p) |
861 | - c4p_c1p = get_euclidian_distance(atom_c4p, atom_c1p) | 864 | + c4p_c1p = get_euclidian_distance(atom_c4p, atom_c1p) |
862 | - c1p_b1 = get_euclidian_distance(atom_c1p, atom_b1) | 865 | + c1p_b1 = get_euclidian_distance(atom_c1p, atom_b1) |
863 | - b1_b2 = get_euclidian_distance(atom_b1, atom_b2) | 866 | + b1_b2 = get_euclidian_distance(atom_b1, atom_b2) |
864 | 867 | ||
865 | # flat angles. Same. | 868 | # flat angles. Same. |
866 | - lastc4p_p_o5p = get_flat_angle(last_c4p, atom_p, atom_o5p) | 869 | + lastc4p_p_o5p = get_flat_angle(last_c4p, atom_p, atom_o5p) |
867 | - lastc1p_lastc4p_p = get_flat_angle(last_c1p, last_c4p, atom_p) | 870 | + lastc1p_lastc4p_p = get_flat_angle(last_c1p, last_c4p, atom_p) |
868 | - lastc5p_lastc4p_p = get_flat_angle(last_c5p, last_c4p, atom_p) | 871 | + lastc5p_lastc4p_p = get_flat_angle(last_c5p, last_c4p, atom_p) |
869 | - p_o5p_c5p = get_flat_angle(atom_p, atom_o5p, atom_c5p) | 872 | + p_o5p_c5p = get_flat_angle(atom_p, atom_o5p, atom_c5p) |
870 | - o5p_c5p_c4p = get_flat_angle(atom_o5p, atom_c5p, atom_c4p) | 873 | + o5p_c5p_c4p = get_flat_angle(atom_o5p, atom_c5p, atom_c4p) |
871 | - c5p_c4p_c1p = get_flat_angle(atom_c5p, atom_c4p, atom_c1p) | 874 | + c5p_c4p_c1p = get_flat_angle(atom_c5p, atom_c4p, atom_c1p) |
872 | - c4p_c1p_b1 = get_flat_angle(atom_c4p, atom_c1p, atom_b1) | 875 | + c4p_c1p_b1 = get_flat_angle(atom_c4p, atom_c1p, atom_b1) |
873 | - c1p_b1_b2 = get_flat_angle(atom_c1p, atom_b1, atom_b2) | 876 | + c1p_b1_b2 = get_flat_angle(atom_c1p, atom_b1, atom_b2) |
874 | 877 | ||
875 | # torsions. Idem. | 878 | # torsions. Idem. |
876 | - p_o5_c5_c4 = get_torsion_angle(atom_p, atom_o5p, atom_c5p, atom_c4p) | 879 | + p_o5_c5_c4 = get_torsion_angle(atom_p, atom_o5p, atom_c5p, atom_c4p) |
877 | o5_c5_c4_c1 = get_torsion_angle(atom_o5p, atom_c5p, atom_c4p, atom_c1p) | 880 | o5_c5_c4_c1 = get_torsion_angle(atom_o5p, atom_c5p, atom_c4p, atom_c1p) |
878 | c5_c4_c1_b1 = get_torsion_angle(atom_c5p, atom_c4p, atom_c1p, atom_b1) | 881 | c5_c4_c1_b1 = get_torsion_angle(atom_c5p, atom_c4p, atom_c1p, atom_b1) |
879 | c4_c1_b1_b2 = get_torsion_angle(atom_c4p, atom_c1p, atom_b1, atom_b2) | 882 | c4_c1_b1_b2 = get_torsion_angle(atom_c4p, atom_c1p, atom_b1, atom_b2) |
... | @@ -889,11 +892,11 @@ def measures_hrna(name, s, thr_idx): | ... | @@ -889,11 +892,11 @@ def measures_hrna(name, s, thr_idx): |
889 | l_dist.append([res.get_resname(), last_c4p_p, p_o5p, o5p_c5p, c5p_c4p, c4p_c1p, c1p_b1, b1_b2]) | 892 | l_dist.append([res.get_resname(), last_c4p_p, p_o5p, o5p_c5p, c5p_c4p, c4p_c1p, c1p_b1, b1_b2]) |
890 | l_angl.append([res.get_resname(), lastc4p_p_o5p, lastc1p_lastc4p_p, lastc5p_lastc4p_p, p_o5p_c5p, o5p_c5p_c4p, c5p_c4p_c1p, c4p_c1p_b1, c1p_b1_b2]) | 893 | l_angl.append([res.get_resname(), lastc4p_p_o5p, lastc1p_lastc4p_p, lastc5p_lastc4p_p, p_o5p_c5p, o5p_c5p_c4p, c5p_c4p_c1p, c4p_c1p_b1, c1p_b1_b2]) |
891 | l_tors.append([res.get_resname(), p_o5_c5_c4, o5_c5_c4_c1, c5_c4_c1_b1, c4_c1_b1_b2, o5_c5_c4_psuiv, c5_c4_psuiv_o5suiv, c4_psuiv_o5suiv_c5suiv, c1_c4_psuiv_o5suiv]) | 894 | l_tors.append([res.get_resname(), p_o5_c5_c4, o5_c5_c4_c1, c5_c4_c1_b1, c4_c1_b1_b2, o5_c5_c4_psuiv, c5_c4_psuiv_o5suiv, c4_psuiv_o5suiv_c5suiv, c1_c4_psuiv_o5suiv]) |
892 | - df = pd.DataFrame(l_dist, columns=["Residu", "C4'-P", "P-O5'", "O5'-C5'", "C5'-C4'", "C4'-C1'", "C1'-B1", "B1-B2"]) | 895 | + df = pd.DataFrame(l_dist, columns=["Residue", "C4'-P", "P-O5'", "O5'-C5'", "C5'-C4'", "C4'-C1'", "C1'-B1", "B1-B2"]) |
893 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/distances/distances_HiRERNA '+name+'.csv') | 896 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/distances/distances_HiRERNA '+name+'.csv') |
894 | - df = pd.DataFrame(l_angl, columns=["Residu", "C4'-P-O5'", "C1'-C4'-P", "C5'-C4'-P", "P-O5'-C5'", "O5'-C5'-C4'", "C5'-C4'-C1'", "C4'-C1'-B1", "C1'-B1-B2"]) | 897 | + df = pd.DataFrame(l_angl, columns=["Residue", "C4'-P-O5'", "C1'-C4'-P", "C5'-C4'-P", "P-O5'-C5'", "O5'-C5'-C4'", "C5'-C4'-C1'", "C4'-C1'-B1", "C1'-B1-B2"]) |
895 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/angles/angles_HiRERNA ' + name + ".csv") | 898 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/angles/angles_HiRERNA ' + name + ".csv") |
896 | - df=pd.DataFrame(l_tors, columns=["Residu", "P-O5'-C5'-C4'", "O5'-C5'-C4'-C1'", "C5'-C4'-C1'-B1", "C4'-C1'-B1-B2", "O5'-C5'-C4'-P°", "C5'-C4'-P°-O5'°", "C4'-P°-O5'°-C5'°", "C1'-C4'-P°-O5'°"]) | 899 | + df=pd.DataFrame(l_tors, columns=["Residue", "P-O5'-C5'-C4'", "O5'-C5'-C4'-C1'", "C5'-C4'-C1'-B1", "C4'-C1'-B1-B2", "O5'-C5'-C4'-P°", "C5'-C4'-P°-O5'°", "C4'-P°-O5'°-C5'°", "C1'-C4'-P°-O5'°"]) |
897 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/torsions/torsions_HiRERNA '+name+'.csv') | 900 | df.to_csv(runDir + '/results/geometry/HiRE-RNA/torsions/torsions_HiRERNA '+name+'.csv') |
898 | 901 | ||
899 | @trace_unhandled_exceptions | 902 | @trace_unhandled_exceptions |
... | @@ -904,19 +907,19 @@ def measures_hrna_basepairs(name, s, thr_idx): | ... | @@ -904,19 +907,19 @@ def measures_hrna_basepairs(name, s, thr_idx): |
904 | 907 | ||
905 | setproctitle(f"RNANet statistics.py Worker {thr_idx+1} measures_hrna_basepairs({name})") | 908 | setproctitle(f"RNANet statistics.py Worker {thr_idx+1} measures_hrna_basepairs({name})") |
906 | 909 | ||
907 | - l=[] | 910 | + l = [] |
908 | chain = next(s[0].get_chains()) | 911 | chain = next(s[0].get_chains()) |
909 | 912 | ||
910 | # do not recompute something already computed | 913 | # do not recompute something already computed |
911 | if os.path.isfile(runDir + "/results/geometry/HiRE-RNA/basepairs/basepairs_"+name+".csv"): | 914 | if os.path.isfile(runDir + "/results/geometry/HiRE-RNA/basepairs/basepairs_"+name+".csv"): |
912 | return | 915 | return |
913 | 916 | ||
914 | - df=pd.read_csv(os.path.abspath(path_to_3D_data +"datapoints/" + name)) | 917 | + df = pd.read_csv(os.path.abspath(path_to_3D_data +"datapoints/" + name)) |
915 | 918 | ||
916 | - if df['index_chain'][0] == 1: # ignore files with numbering errors : TODO : remove when we get DSSR Pro, there should not be numbering errors anymore | 919 | + # if df['index_chain'][0] == 1: # ignore files with numbering errors : TODO : remove when we get DSSR Pro, there should not be numbering errors anymore |
917 | - l = measures_hrna_basepairs_chain(name, chain, df, thr_idx) | 920 | + l = measures_hrna_basepairs_chain(name, chain, df, thr_idx) |
918 | df_calc = pd.DataFrame(l, columns=["type_LW", "nt1_idx", "nt1_res", "nt2_idx", "nt2_res", "Distance", | 921 | df_calc = pd.DataFrame(l, columns=["type_LW", "nt1_idx", "nt1_res", "nt2_idx", "nt2_res", "Distance", |
919 | - "211_angle", "112_angle", "dB1", "dB2", "alpha1", "alpha2", "3211_torsion", "1123_torsion"]) | 922 | + "211_angle", "112_angle", "dB1", "dB2", "alpha1", "alpha2", "3211_torsion", "1123_torsion"]) |
920 | df_calc.to_csv(runDir + "/results/geometry/HiRE-RNA/basepairs/"+'basepairs_' + name + '.csv', float_format="%.3f") | 923 | df_calc.to_csv(runDir + "/results/geometry/HiRE-RNA/basepairs/"+'basepairs_' + name + '.csv', float_format="%.3f") |
921 | 924 | ||
922 | @trace_unhandled_exceptions | 925 | @trace_unhandled_exceptions |
... | @@ -997,6 +1000,7 @@ def basepair_measures(res, pair): | ... | @@ -997,6 +1000,7 @@ def basepair_measures(res, pair): |
997 | """ | 1000 | """ |
998 | Measurement of the flat angles describing a basepair in the HiRE-RNA model | 1001 | Measurement of the flat angles describing a basepair in the HiRE-RNA model |
999 | """ | 1002 | """ |
1003 | + | ||
1000 | if res.get_resname()=='C' or res.get_resname()=='U' : | 1004 | if res.get_resname()=='C' or res.get_resname()=='U' : |
1001 | atom_c4_res = [ atom.get_coord() for atom in res if "C4'" in atom.get_fullname() ] | 1005 | atom_c4_res = [ atom.get_coord() for atom in res if "C4'" in atom.get_fullname() ] |
1002 | atom_c1p_res = [ atom.get_coord() for atom in res if "C1'" in atom.get_fullname() ] | 1006 | atom_c1p_res = [ atom.get_coord() for atom in res if "C1'" in atom.get_fullname() ] |
... | @@ -1050,11 +1054,7 @@ def basepair_measures(res, pair): | ... | @@ -1050,11 +1054,7 @@ def basepair_measures(res, pair): |
1050 | warnings.simplefilter('ignore', RuntimeWarning) | 1054 | warnings.simplefilter('ignore', RuntimeWarning) |
1051 | b = res_12.angle(rho)*(180/np.pi) # equal to the previous implementation | 1055 | b = res_12.angle(rho)*(180/np.pi) # equal to the previous implementation |
1052 | c = pair_12.angle(-rho)*(180/np.pi) # | 1056 | c = pair_12.angle(-rho)*(180/np.pi) # |
1053 | - # a = calc_angle(a1_res, a2_res, a3_res)*(180/np.pi) # not required | 1057 | + |
1054 | - # b = calc_angle(a2_res, a1_res, a1_pair)*(180/np.pi) | ||
1055 | - # c = calc_angle(a1_res, a1_pair, a2_pair)*(180/np.pi) | ||
1056 | - # d = calc_angle(a3_pair, a2_pair, a1_pair)*(180/np.pi) # not required | ||
1057 | - | ||
1058 | # Compute plane vectors | 1058 | # Compute plane vectors |
1059 | n1 = (res_32**res_12).normalized() # ** between vectors, is the cross product | 1059 | n1 = (res_32**res_12).normalized() # ** between vectors, is the cross product |
1060 | n2 = (pair_32**pair_12).normalized() | 1060 | n2 = (pair_32**pair_12).normalized() |
... | @@ -1129,7 +1129,7 @@ def GMM_histo(data_ori, name_data, scan, toric=False, hist=True, col=None, save= | ... | @@ -1129,7 +1129,7 @@ def GMM_histo(data_ori, name_data, scan, toric=False, hist=True, col=None, save= |
1129 | if gmm.lower_bound_== max(maxlogv) : # takes the maximum | 1129 | if gmm.lower_bound_== max(maxlogv) : # takes the maximum |
1130 | nb_components = n_comp | 1130 | nb_components = n_comp |
1131 | # if there is convergence, keep the first maximum found | 1131 | # if there is convergence, keep the first maximum found |
1132 | - if abs(gmm.lower_bound_-log_max) < 0.02 : #threshold=0.02 | 1132 | + if abs(gmm.lower_bound_-log_max) < 0.02 : # threshold=0.02 |
1133 | nb_components = nb_log_max | 1133 | nb_components = nb_log_max |
1134 | break | 1134 | break |
1135 | log_max = max(maxlogv) | 1135 | log_max = max(maxlogv) |
... | @@ -1267,51 +1267,50 @@ def gmm_aa_dists(scan): | ... | @@ -1267,51 +1267,50 @@ def gmm_aa_dists(scan): |
1267 | 1267 | ||
1268 | df = pd.read_csv(os.path.abspath(runDir + "/results/geometry/all-atoms/distances/dist_atoms.csv")) | 1268 | df = pd.read_csv(os.path.abspath(runDir + "/results/geometry/all-atoms/distances/dist_atoms.csv")) |
1269 | 1269 | ||
1270 | - last_o3p_p = list(df["O3'-P"][~ np.isnan(df["O3'-P"])]) | 1270 | + last_o3p_p = df["O3'-P"][~ np.isnan(df["O3'-P"])].values.tolist() |
1271 | - # op3_p = list(df["OP3-P"][~ np.isnan(df["OP3-P"])]) | 1271 | + p_op1 = df["P-OP1"][~ np.isnan(df["P-OP1"])].values.tolist() |
1272 | - p_op1 = list(df["P-OP1"][~ np.isnan(df["P-OP1"])]) | 1272 | + p_op2 = df["P-OP2"][~ np.isnan(df["P-OP2"])].values.tolist() |
1273 | - p_op2 = list(df["P-OP2"][~ np.isnan(df["P-OP2"])]) | 1273 | + p_o5p = df["P-O5'"][~ np.isnan(df["P-O5'"])].values.tolist() |
1274 | - p_o5p = list(df["P-O5'"][~ np.isnan(df["P-O5'"])]) | 1274 | + o5p_c5p = df["O5'-C5'"][~ np.isnan(df["O5'-C5'"])].values.tolist() |
1275 | - o5p_c5p = list(df["O5'-C5'"][~ np.isnan(df["O5'-C5'"])]) | 1275 | + c5p_c4p = df["C5'-C4'"][~ np.isnan(df["C5'-C4'"])].values.tolist() |
1276 | - c5p_c4p = list(df["C5'-C4'"][~ np.isnan(df["C5'-C4'"])]) | 1276 | + c4p_o4p = df["C4'-O4'"][~ np.isnan(df["C4'-O4'"])].values.tolist() |
1277 | - c4p_o4p = list(df["C4'-O4'"][~ np.isnan(df["C4'-O4'"])]) | 1277 | + o4p_c1p = df["O4'-C1'"][~ np.isnan(df["O4'-C1'"])].values.tolist() |
1278 | - o4p_c1p = list(df["O4'-C1'"][~ np.isnan(df["O4'-C1'"])]) | 1278 | + c1p_c2p = df["C1'-C2'"][~ np.isnan(df["C1'-C2'"])].values.tolist() |
1279 | - c1p_c2p = list(df["C1'-C2'"][~ np.isnan(df["C1'-C2'"])]) | 1279 | + c2p_o2p = df["C2'-O2'"][~ np.isnan(df["C2'-O2'"])].values.tolist() |
1280 | - c2p_o2p = list(df["C2'-O2'"][~ np.isnan(df["C2'-O2'"])]) | 1280 | + c2p_c3p = df["C2'-C3'"][~ np.isnan(df["C2'-C3'"])].values.tolist() |
1281 | - c2p_c3p = list(df["C2'-C3'"][~ np.isnan(df["C2'-C3'"])]) | 1281 | + c3p_o3p = df["C3'-O3'"][~ np.isnan(df["C3'-O3'"])].values.tolist() |
1282 | - c3p_o3p = list(df["C3'-O3'"][~ np.isnan(df["C3'-O3'"])]) | 1282 | + c4p_c3p = df["C4'-C3'"][~ np.isnan(df["C4'-C3'"])].values.tolist() |
1283 | - c4p_c3p = list(df["C4'-C3'"][~ np.isnan(df["C4'-C3'"])]) | ||
1284 | 1283 | ||
1285 | #if res = A ou G | 1284 | #if res = A ou G |
1286 | - c1p_n9 = list(df["C1'-N9"][~ np.isnan(df["C1'-N9"])]) | 1285 | + c1p_n9 = df["C1'-N9"][~ np.isnan(df["C1'-N9"])].values.tolist() |
1287 | - n9_c8 = list(df["N9-C8"][~ np.isnan(df["N9-C8"])]) | 1286 | + n9_c8 = df["N9-C8"][~ np.isnan(df["N9-C8"])].values.tolist() |
1288 | - c8_n7 = list(df["C8-N7"][~ np.isnan(df["C8-N7"])]) | 1287 | + c8_n7 = df["C8-N7"][~ np.isnan(df["C8-N7"])].values.tolist() |
1289 | - n7_c5 = list(df["N7-C5"][~ np.isnan(df["N7-C5"])]) | 1288 | + n7_c5 = df["N7-C5"][~ np.isnan(df["N7-C5"])].values.tolist() |
1290 | - c5_c6 = list(df["C5-C6"][~ np.isnan(df["C5-C6"])]) | 1289 | + c5_c6 = df["C5-C6"][~ np.isnan(df["C5-C6"])].values.tolist() |
1291 | - c6_n1 = list(df["C6-N1"][~ np.isnan(df["C6-N1"])]) | 1290 | + c6_n1 = df["C6-N1"][~ np.isnan(df["C6-N1"])].values.tolist() |
1292 | - n1_c2 = list(df["N1-C2"][~ np.isnan(df["N1-C2"])]) | 1291 | + n1_c2 = df["N1-C2"][~ np.isnan(df["N1-C2"])].values.tolist() |
1293 | - c2_n3 = list(df["C2-N3"][~ np.isnan(df["C2-N3"])]) | 1292 | + c2_n3 = df["C2-N3"][~ np.isnan(df["C2-N3"])].values.tolist() |
1294 | - n3_c4 = list(df["N3-C4"][~ np.isnan(df["N3-C4"])]) | 1293 | + n3_c4 = df["N3-C4"][~ np.isnan(df["N3-C4"])].values.tolist() |
1295 | - c4_n9 = list(df["C4-N9"][~ np.isnan(df["C4-N9"])]) | 1294 | + c4_n9 = df["C4-N9"][~ np.isnan(df["C4-N9"])].values.tolist() |
1296 | - c4_c5 = list(df["C4-C5"][~ np.isnan(df["C4-C5"])]) | 1295 | + c4_c5 = df["C4-C5"][~ np.isnan(df["C4-C5"])].values.tolist() |
1297 | #if res = G | 1296 | #if res = G |
1298 | - c6_o6 = list(df["C6-O6"][~ np.isnan(df["C6-O6"])]) | 1297 | + c6_o6 = df["C6-O6"][~ np.isnan(df["C6-O6"])].values.tolist() |
1299 | - c2_n2 = list(df["C2-N2"][~ np.isnan(df["C2-N2"])]) | 1298 | + c2_n2 = df["C2-N2"][~ np.isnan(df["C2-N2"])].values.tolist() |
1300 | #if res = A | 1299 | #if res = A |
1301 | - c6_n6 = list(df["C6-N6"][~ np.isnan(df["C6-N6"])]) | 1300 | + c6_n6 = df["C6-N6"][~ np.isnan(df["C6-N6"])].values.tolist() |
1302 | #if res = C ou U | 1301 | #if res = C ou U |
1303 | - c1p_n1 = list(df["C1'-N1"][~ np.isnan(df["C1'-N1"])]) | 1302 | + c1p_n1 = df["C1'-N1"][~ np.isnan(df["C1'-N1"])].values.tolist() |
1304 | - n1_c6 = list(df["N1-C6"][~ np.isnan(df["N1-C6"])]) | 1303 | + n1_c6 = df["N1-C6"][~ np.isnan(df["N1-C6"])].values.tolist() |
1305 | - c6_c5 = list(df["C6-C5"][~ np.isnan(df["C6-C5"])]) | 1304 | + c6_c5 = df["C6-C5"][~ np.isnan(df["C6-C5"])].values.tolist() |
1306 | - c5_c4 = list(df["C5-C4"][~ np.isnan(df["C5-C4"])]) | 1305 | + c5_c4 = df["C5-C4"][~ np.isnan(df["C5-C4"])].values.tolist() |
1307 | - c4_n3 = list(df["C4-N3"][~ np.isnan(df["C4-N3"])]) | 1306 | + c4_n3 = df["C4-N3"][~ np.isnan(df["C4-N3"])].values.tolist() |
1308 | - n3_c2 = list(df["N3-C2"][~ np.isnan(df["N3-C2"])]) | 1307 | + n3_c2 = df["N3-C2"][~ np.isnan(df["N3-C2"])].values.tolist() |
1309 | - c2_n1 = list(df["C2-N1"][~ np.isnan(df["C2-N1"])]) | 1308 | + c2_n1 = df["C2-N1"][~ np.isnan(df["C2-N1"])].values.tolist() |
1310 | - c2_o2 = list(df["C2-O2"][~ np.isnan(df["C2-O2"])]) | 1309 | + c2_o2 = df["C2-O2"][~ np.isnan(df["C2-O2"])].values.tolist() |
1311 | #if res =C | 1310 | #if res =C |
1312 | - c4_n4 = list(df["C4-N4"][~ np.isnan(df["C4-N4"])]) | 1311 | + c4_n4 = df["C4-N4"][~ np.isnan(df["C4-N4"])].values.tolist() |
1313 | #if res=U | 1312 | #if res=U |
1314 | - c4_o4 = list(df["C4-O4"][~ np.isnan(df["C4-O4"])]) | 1313 | + c4_o4 = df["C4-O4"][~ np.isnan(df["C4-O4"])].values.tolist() |
1315 | 1314 | ||
1316 | os.makedirs(runDir+"/results/figures/GMM/all-atoms/distances/commun/", exist_ok=True) | 1315 | os.makedirs(runDir+"/results/figures/GMM/all-atoms/distances/commun/", exist_ok=True) |
1317 | os.chdir(runDir+"/results/figures/GMM/all-atoms/distances/commun/") | 1316 | os.chdir(runDir+"/results/figures/GMM/all-atoms/distances/commun/") |
... | @@ -1495,10 +1494,10 @@ def gmm_pyle(scan): | ... | @@ -1495,10 +1494,10 @@ def gmm_pyle(scan): |
1495 | # Distances | 1494 | # Distances |
1496 | df = pd.read_csv(os.path.abspath(runDir + "/results/geometry/Pyle/distances/distances_pyle.csv")) | 1495 | df = pd.read_csv(os.path.abspath(runDir + "/results/geometry/Pyle/distances/distances_pyle.csv")) |
1497 | 1496 | ||
1498 | - p_c1p = list(df["C1'-P"][~ np.isnan(df["C1'-P"])]) | 1497 | + p_c1p = df["C1'-P"][~ np.isnan(df["C1'-P"])].values.tolist() |
1499 | - c1p_p = list(df["P-C1'"][~ np.isnan(df["P-C1'"])]) | 1498 | + c1p_p = df["P-C1'"][~ np.isnan(df["P-C1'"])].values.tolist() |
1500 | - p_c4p = list(df["C4'-P"][~ np.isnan(df["C4'-P"])]) | 1499 | + p_c4p = df["C4'-P"][~ np.isnan(df["C4'-P"])].values.tolist() |
1501 | - c4p_p = list(df["P-C4'"][~ np.isnan(df["P-C4'"])]) | 1500 | + c4p_p = df["P-C4'"][~ np.isnan(df["P-C4'"])].values.tolist() |
1502 | 1501 | ||
1503 | os.makedirs(runDir + "/results/figures/GMM/Pyle/distances/", exist_ok=True) | 1502 | os.makedirs(runDir + "/results/figures/GMM/Pyle/distances/", exist_ok=True) |
1504 | os.chdir(runDir + "/results/figures/GMM/Pyle/distances/") | 1503 | os.chdir(runDir + "/results/figures/GMM/Pyle/distances/") | ... | ... |
1 | +7nqh_1_BA_1-1457 | ||
1 | 6ydp_1_AA_1176-2737 | 2 | 6ydp_1_AA_1176-2737 |
2 | 6ydw_1_AA_1176-2737 | 3 | 6ydw_1_AA_1176-2737 |
3 | -2z9q_1_A_1-72 | ||
4 | -3ep2_1_Y_1-72 | ||
5 | -3eq3_1_Y_1-72 | ||
6 | -4v48_1_A6_1-73 | ||
7 | -1ml5_1_b_5-121 | ||
8 | -1ml5_1_a_1-2914 | ||
9 | -1qzb_1_B_1-73 | ||
10 | -1qza_1_B_1-73 | ||
11 | -1ls2_1_B_1-73 | ||
12 | -1ml5_1_A_2-1520 | ||
13 | -1gsg_1_T_1-72 | ||
14 | 7d1a_1_A_805-902 | 4 | 7d1a_1_A_805-902 |
15 | 7d0g_1_A_805-913 | 5 | 7d0g_1_A_805-913 |
16 | 7d0f_1_A_817-913 | 6 | 7d0f_1_A_817-913 |
17 | -3jcr_1_H_1-115 | ||
18 | 1vy7_1_AY_1-73 | 7 | 1vy7_1_AY_1-73 |
19 | 1vy7_1_CY_1-73 | 8 | 1vy7_1_CY_1-73 |
20 | 4w2h_1_CY_1-73 | 9 | 4w2h_1_CY_1-73 |
21 | -5zzm_1_M_3-118 | 10 | +7o7z_1_AH_144-220 |
22 | -2rdo_1_A_3-118 | ||
23 | -4v48_1_A9_3-118 | ||
24 | -4v47_1_A9_3-118 | ||
25 | -4v42_1_BA_1-2914 | ||
26 | -4v42_1_BB_5-121 | ||
27 | -2ob7_1_A_10-319 | ||
28 | -1x1l_1_A_1-130 | ||
29 | -1zc8_1_Z_1-91 | ||
30 | -2ob7_1_D_1-130 | ||
31 | -3dg2_1_A_1-1542 | ||
32 | -3dg0_1_A_1-1542 | ||
33 | -4v48_1_BA_1-1543 | ||
34 | -4v47_1_BA_1-1542 | ||
35 | -3dg4_1_A_1-1542 | ||
36 | -3dg5_1_A_1-1542 | ||
37 | -5zzm_1_N_1-2903 | ||
38 | -2rdo_1_B_1-2904 | ||
39 | -3dg2_1_B_1-2904 | ||
40 | -3dg0_1_B_1-2904 | ||
41 | -4v48_1_A0_1-2904 | ||
42 | -4v47_1_A0_1-2904 | ||
43 | -3dg4_1_B_1-2904 | ||
44 | -3dg5_1_B_1-2904 | ||
45 | -1eg0_1_O_1-73 | ||
46 | -1r2x_1_C_1-58 | ||
47 | -1r2w_1_C_1-58 | ||
48 | -1eg0_1_L_1-56 | ||
49 | -1jgq_1_A_2-1520 | ||
50 | -4v42_1_AA_2-1520 | ||
51 | -1jgo_1_A_2-1520 | ||
52 | -1jgp_1_A_2-1520 | ||
53 | -1zc8_1_A_1-59 | ||
54 | -1mvr_1_D_1-59 | ||
55 | 4c9d_1_D_29-1 | 11 | 4c9d_1_D_29-1 |
56 | 4c9d_1_C_29-1 | 12 | 4c9d_1_C_29-1 |
57 | -4adx_1_9_1-121 | 13 | +7aih_1_1_2984-3610 |
58 | -1zn1_1_B_1-59 | 14 | +7aih_1_1_2400-2963 |
59 | -1emi_1_B_1-108 | 15 | +7ane_1_2_2489-3115 |
60 | -3iy9_1_A_498-1027 | 16 | +7ane_1_2_1904-2468 |
61 | -3ep2_1_B_1-50 | ||
62 | -3eq3_1_B_1-50 | ||
63 | -3eq4_1_B_1-50 | ||
64 | -2iy3_1_B_9-105 | ||
65 | -3jcr_1_N_1-106 | ||
66 | -2vaz_1_A_64-177 | ||
67 | -2ftc_1_R_81-1466 | ||
68 | -3jcr_1_M_1-141 | ||
69 | -4v5z_1_B0_1-2902 | ||
70 | 5g2x_1_A_595-692 | 17 | 5g2x_1_A_595-692 |
71 | -3iy8_1_A_1-540 | 18 | +7aor_1_2_2589-3210 |
72 | -4v5z_1_BY_2-113 | 19 | +7aor_1_2_2020-2579 |
73 | -4v5z_1_BZ_1-70 | ||
74 | -4v5z_1_B1_2-123 | ||
75 | -3pgw_1_R_1-164 | ||
76 | -3pgw_1_N_1-164 | ||
77 | -3cw1_1_x_1-138 | ||
78 | -3cw1_1_w_1-138 | ||
79 | -3cw1_1_V_1-138 | ||
80 | -3cw1_1_v_1-138 | ||
81 | -1mvr_1_B_1-96 | ||
82 | -4adx_1_0_1-2923 | ||
83 | -3eq4_1_Y_1-69 | ||
84 | 7a5p_1_2_259-449 | 20 | 7a5p_1_2_259-449 |
21 | +7aor_1_A_2589-3210 | ||
22 | +7aor_1_A_2020-2579 | ||
23 | +7am2_1_1_2491-3117 | ||
24 | +7am2_1_1_1904-2470 | ||
25 | +7ane_1_1_2489-3115 | ||
26 | +7ane_1_1_1904-2468 | ||
85 | 6uz7_1_8_2140-2825 | 27 | 6uz7_1_8_2140-2825 |
86 | -4v5z_1_AA_1-1563 | ||
87 | -6cfj_1_1X | ||
88 | -6cfj_1_2X | ||
89 | -5hcq_1_1X | ||
90 | -6cae_1_1X | ||
91 | -5hcq_1_2X | ||
92 | -5hcr_1_1X | ||
93 | -4z8c_1_1X | ||
94 | -5j4b_1_1X | ||
95 | -6xhy_1_1X | ||
96 | -6xhy_1_2X | ||
97 | -5j4b_1_2X | ||
98 | -4z8c_1_2X | ||
99 | -6cae_1_2X | ||
100 | -5j4c_1_1X | ||
101 | -5w4k_1_1X | ||
102 | -6of1_1_1X | ||
103 | -6xhw_1_1X | ||
104 | -5hcr_1_2X | ||
105 | -5hd1_1_1X | ||
106 | -5hcp_1_1X | ||
107 | -6of1_1_2X | ||
108 | -5hau_1_1W | ||
109 | -5j4c_1_2X | ||
110 | -5wis_1_1X | ||
111 | -6xhv_1_1X | ||
112 | -6xqd_1_1X | ||
113 | -6nd5_1_1X | ||
114 | -5w4k_1_2X | ||
115 | -6xhw_1_2X | ||
116 | -5hau_1_2W | ||
117 | -6xqd_1_2X | ||
118 | -6xhv_1_2X | ||
119 | -4y4p_1_1X | ||
120 | -6o97_1_1X | ||
121 | -5hcp_1_2X | ||
122 | -5doy_1_1X | ||
123 | -4zer_1_1X | ||
124 | -5wit_1_1X | ||
125 | -5hd1_1_2X | ||
126 | -6nd5_1_2X | ||
127 | -4z3s_1_1X | ||
128 | -7jql_1_1X | ||
129 | -7jqm_1_1X | ||
130 | -7jql_1_2X | ||
131 | -5wis_1_2X | ||
132 | -6nd6_1_1X | ||
133 | -6o97_1_2X | ||
134 | -4y4p_1_2X | ||
135 | -7jqm_1_2X | ||
136 | -4z3s_1_2X | ||
137 | -4zer_1_2X | ||
138 | -6uo1_1_2X | ||
139 | -6uo1_1_1X | ||
140 | -5doy_1_2X | ||
141 | -5wit_1_2X | ||
142 | -5f8k_1_1X | ||
143 | -6nd6_1_2X | ||
144 | -6xqe_1_1X | ||
145 | -6xqe_1_2X | ||
146 | -6n9e_1_1X | ||
147 | -6n9e_1_2X | ||
148 | -6n9f_1_1X | ||
149 | -5f8k_1_2X | ||
150 | -6n9f_1_2X | ||
151 | -6xz7_1_F | ||
152 | -6xzb_1_F2 | ||
153 | -6xza_1_F2 | ||
154 | -6y69_1_W | ||
155 | -5afi_1_V | ||
156 | -5afi_1_W | ||
157 | -6h4n_1_W | ||
158 | -5wdt_1_V | ||
159 | -5wfs_1_V | ||
160 | -5wdt_1_W | ||
161 | -5wfs_1_W | ||
162 | -5we4_1_V | ||
163 | -5we4_1_W | ||
164 | -5uq8_1_Y | ||
165 | -6c4i_1_Y | ||
166 | -6c4i_1_X | ||
167 | -6yef_1_X | ||
168 | -5zeb_1_V | ||
169 | -5zep_1_W | ||
170 | -5lzd_1_V | ||
171 | -5we6_1_V | ||
172 | -5wfk_1_V | ||
173 | -5wfk_1_W | ||
174 | -5we6_1_W | ||
175 | -5u4i_1_Y | ||
176 | -5uq7_1_Y | ||
177 | -5u4i_1_X | ||
178 | -5lza_1_V | ||
179 | -5wf0_1_V | ||
180 | -5wf0_1_W | ||
181 | -5zeu_1_V | ||
182 | -5l3p_1_X | ||
183 | -3jcj_1_V | ||
184 | -6gxm_1_X | ||
185 | -6gwt_1_X | ||
186 | -6gxn_1_X | ||
187 | -6gxo_1_X | ||
188 | -3j9y_1_V | ||
189 | -6o9k_1_Y | ||
190 | -6o7k_1_V | ||
191 | -5lzf_1_V | ||
192 | -3jcn_1_V | ||
193 | -5lzc_1_V | ||
194 | -5u4j_1_X | ||
195 | -5u4j_1_Z | ||
196 | -5lzb_1_V | ||
197 | -6h58_1_W | ||
198 | -6h58_1_WW | ||
199 | -1eg0_1_O | ||
200 | -5j8b_1_X | ||
201 | -4v7j_1_AV | ||
202 | -4v7j_1_BV | ||
203 | -4v7k_1_BV | ||
204 | -4v7k_1_AV | ||
205 | -4v7k_1_BW | ||
206 | -4v7k_1_AW | ||
207 | -4v7j_1_AW | ||
208 | -4v7j_1_BW | ||
209 | -4v4j_1_Z | ||
210 | -6i0v_1_B | ||
211 | -5k77_1_X | ||
212 | -5k77_1_V | ||
213 | -5k77_1_Y | ||
214 | -5k77_1_W | ||
215 | -5k77_1_Z | ||
216 | -4pei_1_X | ||
217 | -4pei_1_V | ||
218 | -4pei_1_W | ||
219 | -4pei_1_Z | ||
220 | -4pei_1_Y | ||
221 | -4a3c_1_P | ||
222 | -4a3e_1_P | ||
223 | -6lkq_1_U | ||
224 | -7k00_1_B | ||
225 | -6ys3_1_A | ||
226 | -6qdw_1_A | ||
227 | -5zzm_1_M | ||
228 | -2rdo_1_A | ||
229 | -4v48_1_A9 | ||
230 | -4v47_1_A9 | ||
231 | -6hcj_1_Q3 | ||
232 | -6hcq_1_Q3 | ||
233 | -6o8w_1_U | ||
234 | -5mmm_1_Z | ||
235 | -4w2e_1_W | ||
236 | -5j4b_1_1Y | ||
237 | -6cfj_1_1W | ||
238 | -5w4k_1_1Y | ||
239 | -6xhy_1_1W | ||
240 | -5wit_1_1W | ||
241 | -6cfj_1_1Y | ||
242 | -6cfj_1_2W | ||
243 | -5j4c_1_1W | ||
244 | -5wis_1_1Y | ||
245 | -5j4c_1_1Y | ||
246 | -6xhw_1_1W | ||
247 | -6cfj_1_2Y | ||
248 | -5wis_1_1W | ||
249 | -5j4b_1_1W | ||
250 | -6xhv_1_1W | ||
251 | -6xhy_1_2W | ||
252 | -5j4c_1_2W | ||
253 | -5j4b_1_2W | ||
254 | -5j4b_1_2Y | ||
255 | -5j4c_1_2Y | ||
256 | -5w4k_1_1W | ||
257 | -6nd5_1_1Y | ||
258 | -6xhw_1_2W | ||
259 | -5wis_1_2Y | ||
260 | -5wit_1_2W | ||
261 | -6xhv_1_2W | ||
262 | -5doy_1_1Y | ||
263 | -5w4k_1_2Y | ||
264 | -4y4p_1_1Y | ||
265 | -4z3s_1_1Y | ||
266 | -5doy_1_1W | ||
267 | -5doy_1_2Y | ||
268 | -6nd5_1_1W | ||
269 | -4z3s_1_2Y | ||
270 | -4z3s_1_1W | ||
271 | -5w4k_1_2W | ||
272 | -6nd5_1_2Y | ||
273 | -4y4p_1_2Y | ||
274 | -6uo1_1_2Y | ||
275 | -6uo1_1_2W | ||
276 | -4y4p_1_1W | ||
277 | -4z3s_1_2W | ||
278 | -6uo1_1_1Y | ||
279 | -6xhy_1_1Y | ||
280 | -6uo1_1_1W | ||
281 | -5wis_1_2W | ||
282 | -5wit_1_1Y | ||
283 | -6nd5_1_2W | ||
284 | -4y4p_1_2W | ||
285 | -5doy_1_2W | ||
286 | -5wit_1_2Y | ||
287 | -6xhv_1_1Y | ||
288 | -6xhy_1_2Y | ||
289 | -6xhw_1_1Y | ||
290 | -6xhw_1_2Y | ||
291 | -6ucq_1_1Y | ||
292 | -6xhv_1_2Y | ||
293 | -4v4i_1_Z | ||
294 | -6ucq_1_1X | ||
295 | -6ucq_1_2Y | ||
296 | -4w2e_1_X | ||
297 | -6ucq_1_2X | ||
298 | -7n1p_1_DT | ||
299 | -7n2u_1_DT | ||
300 | -6yss_1_W | ||
301 | -7n30_1_DT | ||
302 | -7n31_1_DT | ||
303 | -7n2c_1_DT | ||
304 | -5afi_1_Y | ||
305 | -5uq8_1_Z | ||
306 | -5wdt_1_Y | ||
307 | -5wfs_1_Y | ||
308 | -6ysr_1_W | ||
309 | -5we4_1_Y | ||
310 | -6yst_1_W | ||
311 | -5uq7_1_Z | ||
312 | -5we6_1_Y | ||
313 | -5wfk_1_Y | ||
314 | -5wf0_1_Y | ||
315 | -6o9j_1_V | ||
316 | -6ysu_1_W | ||
317 | -3j46_1_A | ||
318 | -5j8b_1_Y | ||
319 | -5j8b_1_W | ||
320 | -3bbv_1_Z | ||
321 | -5aj0_1_BV | ||
322 | -5aj0_1_BW | ||
323 | -4wt8_1_AB | ||
324 | -4wt8_1_BB | ||
325 | -4v4j_1_Y | ||
326 | -4v4i_1_Y | ||
327 | -5uq8_1_X | ||
328 | -5uq7_1_X | ||
329 | -1jgq_1_A | ||
330 | -4v42_1_AA | ||
331 | -1jgo_1_A | ||
332 | -1jgp_1_A | ||
333 | -4v4j_1_W | ||
334 | -4v4i_1_W | ||
335 | -4v42_1_BA | ||
336 | -4wt8_1_CS | ||
337 | -4wt8_1_DS | ||
338 | -4v4j_1_X | ||
339 | -4v4i_1_X | ||
340 | -4v42_1_BB | ||
341 | -4jrc_1_B | ||
342 | -4jrc_1_A | ||
343 | -6lkq_1_S | ||
344 | -5h5u_1_H | ||
345 | -7d6z_1_F | ||
346 | -5lze_1_Y | ||
347 | -5lze_1_V | ||
348 | -5lze_1_X | ||
349 | -3jcj_1_G | ||
350 | -6o7k_1_G | ||
351 | -3dg2_1_A | ||
352 | -3dg0_1_A | ||
353 | -4v48_1_BA | ||
354 | -4v47_1_BA | ||
355 | -3dg4_1_A | ||
356 | -3dg5_1_A | ||
357 | -6d30_1_C | ||
358 | -6j7z_1_C | ||
359 | -3er9_1_D | ||
360 | -5kal_1_Y | ||
361 | -4nia_1_3 | ||
362 | -5kal_1_Z | ||
363 | -4nia_1_7 | ||
364 | -4nia_1_4 | ||
365 | -5new_1_C | ||
366 | -4nia_1_U | ||
367 | -4nia_1_6 | ||
368 | -4oq9_1_7 | ||
369 | -4nia_1_1 | ||
370 | -4oq9_1_4 | ||
371 | -4nia_1_8 | ||
372 | -4oq9_1_8 | ||
373 | -4nia_1_5 | ||
374 | -2vrt_1_E | ||
375 | -4nia_1_W | ||
376 | -4oq9_1_6 | ||
377 | -4oq8_1_D | ||
378 | -4nia_1_Z | ||
379 | -4oq9_1_W | ||
380 | -4oq9_1_5 | ||
381 | -4nia_1_2 | ||
382 | -2vrt_1_F | ||
383 | -4oq9_1_U | ||
384 | -4oq9_1_Z | ||
385 | -4oq9_1_2 | ||
386 | -4oq9_1_3 | ||
387 | -1ddl_1_E | ||
388 | -4oq9_1_1 | ||
389 | -6rt5_1_A | ||
390 | -6rt5_1_E | ||
391 | -4qu6_1_B | ||
392 | -6lkq_1_T | ||
393 | -6ys3_1_B | ||
394 | -6qdw_1_B | ||
395 | -3jbv_1_B | ||
396 | -3jbu_1_B | ||
397 | -5zzm_1_N | ||
398 | -2rdo_1_B | ||
399 | -3dg2_1_B | ||
400 | -3dg0_1_B | ||
401 | -4v48_1_A0 | ||
402 | -4v47_1_A0 | ||
403 | -3dg4_1_B | ||
404 | -3dg5_1_B | ||
405 | -6do8_1_B | ||
406 | -6dpi_1_B | ||
407 | -6dp9_1_B | ||
408 | -6dpb_1_B | ||
409 | -6dmn_1_B | ||
410 | -6dpp_1_B | ||
411 | -6dpk_1_B | ||
412 | -6dpd_1_B | ||
413 | -6dot_1_B | ||
414 | -6dok_1_B | ||
415 | -6dp8_1_B | ||
416 | -6dpl_1_B | ||
417 | -6dpg_1_B | ||
418 | -6dou_1_B | ||
419 | -6dpc_1_B | ||
420 | -6do9_1_B | ||
421 | -6dmv_1_B | ||
422 | -6dp4_1_B | ||
423 | -6dpn_1_B | ||
424 | -6doj_1_B | ||
425 | -6dph_1_B | ||
426 | -6dos_1_B | ||
427 | -6doo_1_B | ||
428 | -6dp6_1_B | ||
429 | -6dox_1_B | ||
430 | -6dp5_1_B | ||
431 | -6dol_1_B | ||
432 | -6dp1_1_B | ||
433 | -6doz_1_B | ||
434 | -6dp7_1_B | ||
435 | -6doq_1_B | ||
436 | -6dpa_1_B | ||
437 | -6dom_1_B | ||
438 | -6dog_1_B | ||
439 | -6dop_1_B | ||
440 | -6doh_1_B | ||
441 | -6doa_1_B | ||
442 | -6don_1_B | ||
443 | -6dov_1_B | ||
444 | -6dpo_1_B | ||
445 | -6dod_1_B | ||
446 | -6dob_1_B | ||
447 | -6dow_1_B | ||
448 | -6dpm_1_B | ||
449 | -6dpf_1_B | ||
450 | -6dp3_1_B | ||
451 | -6dp2_1_B | ||
452 | -6dpe_1_B | ||
453 | -6dpj_1_B | ||
454 | -6dor_1_B | ||
455 | -6dof_1_B | ||
456 | -6dp0_1_B | ||
457 | -6doi_1_B | ||
458 | -6doc_1_B | ||
459 | -6doe_1_B | ||
460 | -6n6g_1_D | ||
461 | -4b3r_1_W | ||
462 | -4b3t_1_W | ||
463 | -4b3s_1_W | ||
464 | -7b5k_1_X | ||
465 | -5o2r_1_X | ||
466 | -5kcs_1_1X | ||
467 | -7n1p_1_PT | ||
468 | -7n2u_1_PT | ||
469 | -7n30_1_PT | ||
470 | -7n31_1_PT | ||
471 | -7n2c_1_PT | ||
472 | -6yl5_1_I | ||
473 | -6yl5_1_E | ||
474 | -6yl5_1_A | ||
475 | -6yl5_1_K | ||
476 | -6yl5_1_G | ||
477 | -6zvk_1_E2 | ||
478 | -6zvk_1_H2 | ||
479 | -7a01_1_E2 | ||
480 | -7a01_1_H2 | ||
481 | -6fti_1_U | ||
482 | -6fti_1_W | ||
483 | -6ftj_1_U | ||
484 | -6ftj_1_W | ||
485 | -6ftg_1_U | ||
486 | -6ftg_1_W | ||
487 | -6x1b_1_D | ||
488 | -6x1b_1_F | ||
489 | -5f6c_1_C | ||
490 | -6i0t_1_B | ||
491 | -1b2m_1_C | ||
492 | -1b2m_1_D | ||
493 | -1b2m_1_E | ||
494 | -2uxc_1_Y | ||
495 | -4a3g_1_P | ||
496 | -4a3j_1_P | ||
497 | -7k00_1_5 | ||
498 | -5mmi_1_Z | ||
499 | -3j9m_1_U | ||
500 | -7a5k_1_U3 | ||
501 | -6nu2_1_U | ||
502 | -7a5g_1_U3 | ||
503 | -6nu3_1_U | ||
504 | -5c0y_1_C | ||
505 | -6n6f_1_D | ||
506 | -4ohy_1_B | ||
507 | -4oi1_1_B | ||
508 | -4oi0_1_B | ||
509 | -5ipl_1_3 | ||
510 | -6utw_1_333 | ||
511 | -5ipm_1_3 | ||
512 | -5ipn_1_3 | ||
513 | -4ylo_1_3 | ||
514 | -4yln_1_6 | ||
515 | -4ylo_1_6 | ||
516 | -4yln_1_3 | ||
517 | -4yln_1_9 | ||
518 | -5lzf_1_Y | ||
519 | -1n32_1_Z | ||
520 | -5zsl_1_D | ||
521 | -5zsd_1_C | ||
522 | -5zsd_1_D | ||
523 | -5zsl_1_E | ||
524 | -4nku_1_D | ||
525 | -4nku_1_H | ||
526 | -1cwp_1_E | ||
527 | -6thn_1_A | ||
528 | -6qik_1_Y | ||
529 | -6rzz_1_Y | ||
530 | -6ri5_1_Y | ||
531 | -6qt0_1_Y | ||
532 | -6qtz_1_Y | ||
533 | -6t83_1_1B | ||
534 | -6t83_1_3B | ||
535 | -6t83_1_AA | ||
536 | -6t83_1_CA | ||
537 | -6s05_1_Y | ||
538 | -5jcs_1_X | ||
539 | -5fl8_1_X | ||
540 | -6ole_1_V | ||
541 | -6om0_1_V | ||
542 | -6oli_1_V | ||
543 | -6om7_1_V | ||
544 | -6w6l_1_V | ||
545 | -6olf_1_V | ||
546 | -3erc_1_G | ||
547 | -4qjd_1_D | ||
548 | -6of1_1_1W | ||
549 | -6cae_1_1Y | ||
550 | -6o97_1_1W | ||
551 | -6of1_1_1Y | ||
552 | -6of1_1_2W | ||
553 | -6o97_1_1Y | ||
554 | -6nd6_1_1Y | ||
555 | -6cae_1_1W | ||
556 | -6of1_1_2Y | ||
557 | -6cae_1_2Y | ||
558 | -6nd6_1_1W | ||
559 | -6cae_1_2W | ||
560 | -6o97_1_2Y | ||
561 | -6nd6_1_2Y | ||
562 | -6o97_1_2W | ||
563 | -6nd6_1_2W | ||
564 | -4wtm_1_T | ||
565 | -4wtm_1_P | ||
566 | -6gz4_1_BW | ||
567 | -6xz7_1_G | ||
568 | -6xzb_1_G2 | ||
569 | -6gz5_1_BW | ||
570 | -6gz3_1_BW | ||
571 | -1qzb_1_B | ||
572 | -1qza_1_B | ||
573 | -1ls2_1_B | ||
574 | -3ep2_1_Y | ||
575 | -3eq3_1_Y | ||
576 | -4v48_1_A6 | ||
577 | -2z9q_1_A | ||
578 | -4hot_1_X | ||
579 | -5ns4_1_C | ||
580 | -6d2z_1_C | ||
581 | -7eh0_1_I | ||
582 | -4tu0_1_F | ||
583 | -4tu0_1_G | ||
584 | -6r9o_1_B | ||
585 | -6is0_1_C | ||
586 | -5lzc_1_X | ||
587 | -5lzb_1_X | ||
588 | -5lzd_1_Y | ||
589 | -5lzc_1_Y | ||
590 | -5lzb_1_Y | ||
591 | -6zvi_1_E | ||
592 | -6sv4_1_MC | ||
593 | -6sv4_1_MB | ||
594 | -7nrd_1_SM | ||
595 | -6i7o_1_MB | ||
596 | -1gsg_1_T | ||
597 | -6zvi_1_D | ||
598 | -6sv4_1_NB | ||
599 | -6sv4_1_NC | ||
600 | -6i7o_1_NB | ||
601 | -1ml5_1_A | ||
602 | -7nsq_1_V | ||
603 | -6swa_1_Q | ||
604 | -6swa_1_R | ||
605 | -6ole_1_T | ||
606 | -6om0_1_T | ||
607 | -6oli_1_T | ||
608 | -6om7_1_T | ||
609 | -6olf_1_T | ||
610 | -6w6l_1_T | ||
611 | -6tnu_1_M | ||
612 | -5mc6_1_M | ||
613 | -7nrc_1_SM | ||
614 | -6tb3_1_N | ||
615 | -7b7d_1_SM | ||
616 | -7b7d_1_SN | ||
617 | -6tnu_1_N | ||
618 | -7nrc_1_SN | ||
619 | -7nrd_1_SN | ||
620 | -6zot_1_C | ||
621 | -2uxb_1_X | ||
622 | -2x1f_1_B | ||
623 | -2x1a_1_B | ||
624 | -3ep2_1_D | ||
625 | -3eq3_1_D | ||
626 | -1eg0_1_M | ||
627 | -3eq4_1_D | ||
628 | -5o1y_1_B | ||
629 | -4kzy_1_I | ||
630 | -4kzz_1_I | ||
631 | -4kzx_1_I | ||
632 | -3jcr_1_H | ||
633 | -6dzi_1_H | ||
634 | -5zeu_1_A | ||
635 | -6evj_1_N | ||
636 | -6evj_1_M | ||
637 | -6wub_1_A | ||
638 | -6wua_1_A | ||
639 | -6mpi_1_W | ||
640 | -5mfx_1_B | ||
641 | -5w0m_1_J | ||
642 | -5bud_1_E | ||
643 | -5w0m_1_I | ||
644 | -5w0m_1_H | ||
645 | -4j7m_1_B | ||
646 | -5bud_1_D | ||
647 | -6a4e_1_B | ||
648 | -6a4e_1_D | ||
649 | -6hxx_1_AA | ||
650 | -6hxx_1_AB | ||
651 | -6hxx_1_AC | ||
652 | -6hxx_1_AD | ||
653 | -6hxx_1_AE | ||
654 | -6hxx_1_AF | ||
655 | -6hxx_1_AG | ||
656 | -6hxx_1_AH | ||
657 | -6hxx_1_AI | ||
658 | -6hxx_1_AJ | ||
659 | -6hxx_1_AK | ||
660 | -6hxx_1_AL | ||
661 | -6hxx_1_AM | ||
662 | -6hxx_1_AN | ||
663 | -6hxx_1_AO | ||
664 | -6hxx_1_AP | ||
665 | -6hxx_1_AQ | ||
666 | -6hxx_1_AR | ||
667 | -6hxx_1_AS | ||
668 | -6hxx_1_AT | ||
669 | -6hxx_1_AU | ||
670 | -6hxx_1_AV | ||
671 | -6hxx_1_AW | ||
672 | -6hxx_1_AX | ||
673 | -6hxx_1_AY | ||
674 | -6hxx_1_AZ | ||
675 | -6hxx_1_BA | ||
676 | -6hxx_1_BB | ||
677 | -6hxx_1_BC | ||
678 | -6hxx_1_BD | ||
679 | -6hxx_1_BE | ||
680 | -6hxx_1_BF | ||
681 | -6hxx_1_BG | ||
682 | -6hxx_1_BH | ||
683 | -6hxx_1_BI | ||
684 | -5odv_1_A | ||
685 | -5odv_1_B | ||
686 | -5odv_1_C | ||
687 | -5odv_1_D | ||
688 | -5odv_1_E | ||
689 | -5odv_1_F | ||
690 | -5odv_1_G | ||
691 | -5odv_1_H | ||
692 | -5odv_1_I | ||
693 | -5odv_1_J | ||
694 | -5odv_1_K | ||
695 | -5odv_1_L | ||
696 | -5odv_1_M | ||
697 | -5odv_1_N | ||
698 | -5odv_1_O | ||
699 | -5odv_1_P | ||
700 | -5odv_1_Q | ||
701 | -5odv_1_R | ||
702 | -5odv_1_S | ||
703 | -5odv_1_T | ||
704 | -5odv_1_U | ||
705 | -5odv_1_V | ||
706 | -5odv_1_W | ||
707 | -5odv_1_X | ||
708 | -6t34_1_A | ||
709 | -6t34_1_B | ||
710 | -6t34_1_C | ||
711 | -6t34_1_D | ||
712 | -6t34_1_E | ||
713 | -6t34_1_F | ||
714 | -6t34_1_G | ||
715 | -6t34_1_H | ||
716 | -6t34_1_I | ||
717 | -6t34_1_J | ||
718 | -6t34_1_K | ||
719 | -6t34_1_L | ||
720 | -6t34_1_M | ||
721 | -6t34_1_N | ||
722 | -6t34_1_O | ||
723 | -6t34_1_P | ||
724 | -6t34_1_Q | ||
725 | -6t34_1_R | ||
726 | -6t34_1_S | ||
727 | -6ip8_1_ZY | ||
728 | -6ip5_1_ZY | ||
729 | -6ip5_1_ZU | ||
730 | -6ip6_1_ZY | ||
731 | -6ip8_1_ZZ | ||
732 | -6ip6_1_ZZ | ||
733 | -6uu3_1_333 | ||
734 | -6uu1_1_333 | ||
735 | -3er8_1_H | ||
736 | -3er8_1_G | ||
737 | -3er8_1_F | ||
738 | -5o3j_1_B | ||
739 | -4dr7_1_B | ||
740 | -1i5l_1_Y | ||
741 | -1i5l_1_U | ||
742 | -4dr6_1_B | ||
743 | -6i2n_1_U | ||
744 | -4v68_1_A0 | ||
745 | -6vyu_1_Y | ||
746 | -6vyw_1_Y | ||
747 | -6vz7_1_Y | ||
748 | -6vz5_1_Y | ||
749 | -6vz3_1_Y | ||
750 | -6vyy_1_Y | ||
751 | -6vyx_1_Y | ||
752 | -6vyz_1_Y | ||
753 | -6vz2_1_Y | ||
754 | -1mvr_1_1 | ||
755 | -6vyt_1_Y | ||
756 | -1cgm_1_I | ||
757 | -3jb7_1_T | ||
758 | -3jb7_1_M | ||
759 | -3j0o_1_D | ||
760 | -3j0l_1_D | ||
761 | -3j0q_1_D | ||
762 | -3j0p_1_D | ||
763 | -2tmv_1_R | ||
764 | -5a79_1_R | ||
765 | -5a7a_1_R | ||
766 | -2om3_1_R | ||
767 | -2xea_1_R | ||
768 | -4v7e_1_AA | ||
769 | -4v7e_1_AC | ||
770 | -4wtl_1_T | ||
771 | -4wtl_1_P | ||
772 | -1xnq_1_W | ||
773 | -7n2v_1_DT | ||
774 | -4peh_1_Z | ||
775 | -1vq6_1_4 | ||
776 | -4am3_1_D | ||
777 | -4am3_1_H | ||
778 | -4am3_1_I | ||
779 | -4lj0_1_C | ||
780 | -4lj0_1_D | ||
781 | -4lj0_1_E | ||
782 | -5lzy_1_HH | ||
783 | -4wtj_1_T | ||
784 | -4wtj_1_P | ||
785 | -4xbf_1_D | ||
786 | -5w1h_1_B | ||
787 | -6n6d_1_D | ||
788 | -6n6k_1_C | ||
789 | -6n6k_1_D | ||
790 | -3rtj_1_D | ||
791 | -6ty9_1_M | ||
792 | -6tz1_1_N | ||
793 | -6q1h_1_D | ||
794 | -6q1h_1_H | ||
795 | -6p7p_1_F | ||
796 | -6p7p_1_E | ||
797 | -6p7p_1_D | ||
798 | -6vm6_1_J | ||
799 | -6vm6_1_G | ||
800 | -6wan_1_K | ||
801 | -6wan_1_H | ||
802 | -6wan_1_G | ||
803 | -6wan_1_L | ||
804 | -6wan_1_I | ||
805 | -6ywo_1_F | ||
806 | -6wan_1_J | ||
807 | -4oau_1_A | ||
808 | -6ywo_1_E | ||
809 | -6ywo_1_K | ||
810 | -6vm6_1_I | ||
811 | -6vm6_1_H | ||
812 | -6ywo_1_I | ||
813 | -2a1r_1_C | ||
814 | -6m6v_1_F | ||
815 | -6m6v_1_E | ||
816 | -2a1r_1_D | ||
817 | -3gpq_1_E | ||
818 | -3gpq_1_F | ||
819 | -6o79_1_C | ||
820 | -6vm6_1_K | ||
821 | -6m6v_1_G | ||
822 | -6hyu_1_D | ||
823 | -1laj_1_R | ||
824 | -6ybv_1_K | ||
825 | -6sce_1_B | ||
826 | -6xl1_1_C | ||
827 | -6scf_1_I | ||
828 | -6scf_1_K | ||
829 | -6yud_1_K | ||
830 | -6yud_1_O | ||
831 | -6scf_1_M | ||
832 | -6yud_1_P | ||
833 | -6scf_1_L | ||
834 | -6yud_1_M | ||
835 | -6yud_1_Q | ||
836 | -6w11_1_C | ||
837 | -6o6x_1_D | ||
838 | -4ba2_1_R | ||
839 | -7bdv_1_F | ||
840 | -7bdv_1_H | ||
841 | -6o6x_1_C | ||
842 | -7did_1_C | ||
843 | -6o7b_1_C | ||
844 | -6o6v_1_C | ||
845 | -6wxx_1_Y | ||
846 | -6wxx_1_X | ||
847 | -6r7b_1_D | ||
848 | -6r9r_1_D | ||
849 | -6ov0_1_E | ||
850 | -6ov0_1_H | ||
851 | -6ov0_1_G | ||
852 | -6o6v_1_D | ||
853 | -6ov0_1_F | ||
854 | -6o7b_1_D | ||
855 | -5e02_1_C | ||
856 | -6r9r_1_E | ||
857 | -6r7b_1_E | ||
858 | -6o7i_1_I | ||
859 | -6o7h_1_K | ||
860 | -7l6t_1_C | ||
861 | -7jyy_1_F | ||
862 | -7jyy_1_E | ||
863 | -7jz0_1_F | ||
864 | -7jz0_1_E | ||
865 | -6rt6_1_A | ||
866 | -6rt6_1_E | ||
867 | -1y1y_1_P | ||
868 | -5zuu_1_I | ||
869 | -5zuu_1_G | ||
870 | -7am2_1_R1 | ||
871 | -4peh_1_W | ||
872 | -4peh_1_V | ||
873 | -4peh_1_X | ||
874 | -4peh_1_Y | ||
875 | -7d8c_1_C | ||
876 | -6mkn_1_W | ||
877 | -7kl3_1_B | ||
878 | -4cxg_1_C | ||
879 | -4cxh_1_C | ||
880 | -1x1l_1_A | ||
881 | -1zc8_1_Z | ||
882 | -2ob7_1_D | ||
883 | -2ob7_1_A | ||
884 | -4eya_1_E | ||
885 | -4eya_1_F | ||
886 | -4eya_1_Q | ||
887 | -4eya_1_R | ||
888 | -1mvr_1_C | ||
889 | -4ht9_1_E | ||
890 | -6z1p_1_AB | ||
891 | -6z1p_1_AA | ||
892 | -4ii9_1_C | ||
893 | -5mq0_1_3 | ||
894 | -5uk4_1_X | ||
895 | -5uk4_1_V | ||
896 | -5uk4_1_W | ||
897 | -5uk4_1_U | ||
898 | -5f6c_1_E | ||
899 | -7nwh_1_HH | ||
900 | -4rcj_1_B | ||
901 | -1xnr_1_W | ||
902 | -6e0o_1_C | ||
903 | -6o75_1_D | ||
904 | -6o75_1_C | ||
905 | -6e0o_1_B | ||
906 | -3j06_1_R | ||
907 | -1r2x_1_C | ||
908 | -1r2w_1_C | ||
909 | -1eg0_1_L | ||
910 | -4eya_1_G | ||
911 | -4eya_1_H | ||
912 | -4eya_1_S | ||
913 | -4eya_1_T | ||
914 | -4dr4_1_V | ||
915 | -1ibl_1_Z | ||
916 | -1ibm_1_Z | ||
917 | -4dr5_1_V | ||
918 | -4d61_1_J | ||
919 | -7nwg_1_Q3 | ||
920 | -5tbw_1_SR | ||
921 | -6hhq_1_SR | ||
922 | -6zvi_1_H | ||
923 | -6sv4_1_2B | ||
924 | -6sv4_1_2C | ||
925 | -6t83_1_2B | ||
926 | -6t83_1_A | ||
927 | -6i7o_1_2B | ||
928 | -6q8y_1_N | ||
929 | -6sv4_1_N | ||
930 | -6i7o_1_N | ||
931 | -6swa_1_S | ||
932 | -5k8h_1_A | ||
933 | -5z4a_1_B | ||
934 | -3jbu_1_V | ||
935 | -4ts2_1_Y | ||
936 | -4ts0_1_Y | ||
937 | -1h2c_1_R | ||
938 | -1h2d_1_S | ||
939 | -1h2d_1_R | ||
940 | -6szs_1_X | ||
941 | -5mgp_1_X | ||
942 | -6enu_1_X | ||
943 | -6enf_1_X | ||
944 | -6enj_1_X | ||
945 | -1pvo_1_L | ||
946 | -1pvo_1_G | ||
947 | -1pvo_1_H | ||
948 | -1pvo_1_J | ||
949 | -1pvo_1_K | ||
950 | -2ht1_1_K | ||
951 | -2ht1_1_J | ||
952 | -5sze_1_C | ||
953 | -6wre_1_D | ||
954 | -6i0u_1_B | ||
955 | -5zsa_1_C | ||
956 | -5zsa_1_D | ||
957 | -1n34_1_Z | ||
958 | -3pf5_1_S | ||
959 | -6ppn_1_A | ||
960 | -6ppn_1_I | ||
961 | -5flx_1_Z | ||
962 | -6eri_1_AX | ||
963 | -7k5l_1_R | ||
964 | -7d80_1_Y | ||
965 | -1zc8_1_A | ||
966 | -1zc8_1_C | ||
967 | -1zc8_1_B | ||
968 | -1zc8_1_G | ||
969 | -1zc8_1_I | ||
970 | -1zc8_1_H | ||
971 | -6bfb_1_Y | ||
972 | -1zc8_1_J | ||
973 | -7du2_1_R | ||
974 | -4v8z_1_CX | ||
975 | -6kqe_1_I | ||
976 | -5uh8_1_I | ||
977 | -5vi5_1_Q | ||
978 | -4xln_1_T | ||
979 | -4xlr_1_T | ||
980 | -4xln_1_Q | ||
981 | -5i2d_1_K | ||
982 | -5i2d_1_V | ||
983 | -4xlr_1_Q | ||
984 | -6sty_1_C | ||
985 | -6sty_1_F | ||
986 | -2xs5_1_D | ||
987 | -3ok4_1_N | ||
988 | -3ok4_1_L | ||
989 | -3ok4_1_Z | ||
990 | -3ok4_1_4 | ||
991 | -3ok4_1_V | ||
992 | -3ok4_1_X | ||
993 | -3ok4_1_P | ||
994 | -3ok4_1_H | ||
995 | -3ok4_1_J | ||
996 | -3ok4_1_R | ||
997 | -3ok4_1_T | ||
998 | -3ok4_1_2 | ||
999 | -6n6h_1_D | ||
1000 | -5wnt_1_B | ||
1001 | -3b0u_1_B | ||
1002 | -3b0u_1_A | ||
1003 | -4x9e_1_G | ||
1004 | -4x9e_1_H | ||
1005 | -6z1p_1_BB | ||
1006 | -6z1p_1_BA | ||
1007 | -3p22_1_C | ||
1008 | -3p22_1_G | ||
1009 | -2uxd_1_X | ||
1010 | -6ywe_1_BB | ||
1011 | -3ol9_1_D | ||
1012 | -3ol9_1_H | ||
1013 | -3ol9_1_L | ||
1014 | -3ol9_1_P | ||
1015 | -3olb_1_L | ||
1016 | -3olb_1_P | ||
1017 | -3olb_1_D | ||
1018 | -3olb_1_H | ||
1019 | -3ol6_1_D | ||
1020 | -3ol6_1_H | ||
1021 | -3ol6_1_L | ||
1022 | -3ol6_1_P | ||
1023 | -3ol8_1_D | ||
1024 | -3ol8_1_H | ||
1025 | -3ol7_1_L | ||
1026 | -3ol7_1_P | ||
1027 | -3ol7_1_D | ||
1028 | -3ol7_1_H | ||
1029 | -3ol8_1_L | ||
1030 | -3ol8_1_P | ||
1031 | -6yrq_1_E | ||
1032 | -6yrq_1_H | ||
1033 | -6yrq_1_G | ||
1034 | -6yrq_1_F | ||
1035 | -6yrb_1_C | ||
1036 | -6yrb_1_D | ||
1037 | -1mvr_1_D | ||
1038 | -6gz5_1_BV | ||
1039 | -6gz4_1_BV | ||
1040 | -6gz3_1_BV | ||
1041 | -6fti_1_Q | ||
1042 | -4v7e_1_AB | ||
1043 | -4v7e_1_AE | ||
1044 | -4v7e_1_AD | ||
1045 | -4x62_1_B | ||
1046 | -4x64_1_B | ||
1047 | -4x65_1_B | ||
1048 | -1xmq_1_W | ||
1049 | -4x66_1_B | ||
1050 | -3t1h_1_W | ||
1051 | -3t1y_1_W | ||
1052 | -1xmo_1_W | ||
1053 | -4adx_1_9 | ||
1054 | -6kr6_1_B | ||
1055 | -1zn1_1_B | ||
1056 | -6z8k_1_X | ||
1057 | -4csf_1_U | ||
1058 | -4csf_1_Q | ||
1059 | -4csf_1_G | ||
1060 | -4csf_1_M | ||
1061 | -4csf_1_K | ||
1062 | -4csf_1_A | ||
1063 | -4csf_1_I | ||
1064 | -4csf_1_S | ||
1065 | -4csf_1_C | ||
1066 | -4csf_1_W | ||
1067 | -4csf_1_O | ||
1068 | -4csf_1_E | ||
1069 | -6ywx_1_BB | ||
1070 | -6th6_1_AA | ||
1071 | -6skg_1_AA | ||
1072 | -6skf_1_AA | ||
1073 | -6q8y_1_M | ||
1074 | -6i7o_1_M | ||
1075 | -6zmw_1_W | ||
1076 | -6ybv_1_W | ||
1077 | -2fz2_1_D | ||
1078 | -2xpj_1_D | ||
1079 | -2vrt_1_H | ||
1080 | -2vrt_1_G | ||
1081 | -1emi_1_B | ||
1082 | -6r9m_1_B | ||
1083 | -4nia_1_C | ||
1084 | -4nia_1_A | ||
1085 | -4nia_1_H | ||
1086 | -4nia_1_N | ||
1087 | -4nia_1_G | ||
1088 | -4nia_1_D | ||
1089 | -4nia_1_B | ||
1090 | -4nia_1_I | ||
1091 | -4nia_1_E | ||
1092 | -4nia_1_M | ||
1093 | -4oq9_1_I | ||
1094 | -4oq9_1_G | ||
1095 | -4oq9_1_C | ||
1096 | -4oq9_1_H | ||
1097 | -4oq9_1_N | ||
1098 | -4oq9_1_A | ||
1099 | -4oq9_1_D | ||
1100 | -4oq9_1_E | ||
1101 | -4oq9_1_M | ||
1102 | -4oq9_1_B | ||
1103 | -5uhc_1_I | ||
1104 | -1uvn_1_F | ||
1105 | -1uvn_1_B | ||
1106 | -1uvn_1_D | ||
1107 | -3iy9_1_A | ||
1108 | -4wtk_1_T | ||
1109 | -4wtk_1_P | ||
1110 | -6wlj_3_A | ||
1111 | -1vqn_1_4 | ||
1112 | -4oav_1_C | ||
1113 | -4oav_1_A | ||
1114 | -3ep2_1_E | ||
1115 | -3eq3_1_E | ||
1116 | -3eq4_1_E | ||
1117 | -3ep2_1_A | ||
1118 | -3eq3_1_A | ||
1119 | -3eq4_1_A | ||
1120 | -3ep2_1_C | ||
1121 | -3eq3_1_C | ||
1122 | -3eq4_1_C | ||
1123 | -3ep2_1_B | ||
1124 | -3eq3_1_B | ||
1125 | -3eq4_1_B | ||
1126 | -4i67_1_B | ||
1127 | -4jf2_1_A | ||
1128 | -6k32_1_T | ||
1129 | -6k32_1_P | ||
1130 | -5mmj_1_A | ||
1131 | -5x8r_1_A | ||
1132 | -3fu2_1_B | ||
1133 | -3fu2_1_A | ||
1134 | -4v5z_1_BD | ||
1135 | -6yw5_1_AA | ||
1136 | -6ywe_1_AA | ||
1137 | -6ywy_1_AA | ||
1138 | -6ywx_1_AA | ||
1139 | -3nvk_1_G | ||
1140 | -3nvk_1_S | ||
1141 | -2iy3_1_B | ||
1142 | -1cwp_1_F | ||
1143 | -5z4j_1_B | ||
1144 | -5gmf_1_E | ||
1145 | -5gmf_1_H | ||
1146 | -6e4p_1_J | ||
1147 | -5gmf_1_F | ||
1148 | -5gmf_1_G | ||
1149 | -5gmg_1_D | ||
1150 | -5gmg_1_C | ||
1151 | -6e4p_1_K | ||
1152 | -3ie1_1_E | ||
1153 | -3ie1_1_H | ||
1154 | -3ie1_1_F | ||
1155 | -4dr7_1_V | ||
1156 | -3ie1_1_G | ||
1157 | -3s4g_1_C | ||
1158 | -3s4g_1_B | ||
1159 | -2qqp_1_R | ||
1160 | -1nb7_1_E | ||
1161 | -1nb7_1_F | ||
1162 | -4hos_1_X | ||
1163 | -3p6y_1_T | ||
1164 | -3p6y_1_V | ||
1165 | -3p6y_1_U | ||
1166 | -3p6y_1_Q | ||
1167 | -3p6y_1_W | ||
1168 | -5dto_1_B | ||
1169 | -6yml_1_A | ||
1170 | -6ymm_1_A | ||
1171 | -6ymi_1_M | ||
1172 | -6ymi_1_F | ||
1173 | -6ymi_1_A | ||
1174 | -6ylb_1_F | ||
1175 | -6ymi_1_C | ||
1176 | -6ymj_1_C | ||
1177 | -6ylb_1_C | ||
1178 | -6ymj_1_I | ||
1179 | -6ymj_1_O | ||
1180 | -4cxh_1_X | ||
1181 | -1uvj_1_F | ||
1182 | -1uvj_1_D | ||
1183 | -1uvj_1_E | ||
1184 | -6kqd_1_I | ||
1185 | -6kqd_1_S | ||
1186 | -5uh5_1_I | ||
1187 | -1ytu_1_F | ||
1188 | -1ytu_1_D | ||
1189 | -4kzz_1_J | ||
1190 | -7a09_1_F | ||
1191 | -5t2c_1_AN | ||
1192 | -4v5z_1_BF | ||
1193 | -3j6b_1_E | ||
1194 | -4v4f_1_B6 | ||
1195 | -4v4f_1_A5 | ||
1196 | -4v4f_1_A3 | ||
1197 | -4v4f_1_B0 | ||
1198 | -4v4f_1_B9 | ||
1199 | -4v4f_1_A2 | ||
1200 | -4v4f_1_A8 | ||
1201 | -4v4f_1_A1 | ||
1202 | -4v4f_1_A9 | ||
1203 | -4v4f_1_BZ | ||
1204 | -4v4f_1_B8 | ||
1205 | -4v4f_1_B7 | ||
1206 | -4v4f_1_B5 | ||
1207 | -4v4f_1_A0 | ||
1208 | -4v4f_1_A7 | ||
1209 | -4v4f_1_A4 | ||
1210 | -4v4f_1_AZ | ||
1211 | -4v4f_1_B3 | ||
1212 | -4v4f_1_B1 | ||
1213 | -4v4f_1_B4 | ||
1214 | -4v4f_1_A6 | ||
1215 | -4v4f_1_B2 | ||
1216 | -7m4y_1_V | ||
1217 | -7m4x_1_V | ||
1218 | -6v3a_1_V | ||
1219 | -6v39_1_V | ||
1220 | -6ck5_1_A | ||
1221 | -6ck5_1_B | ||
1222 | -5it9_1_I | ||
1223 | -7jqc_1_I | ||
1224 | -5zsb_1_C | ||
1225 | -5zsb_1_D | ||
1226 | -5zsn_1_D | ||
1227 | -5zsn_1_E | ||
1228 | -1cwp_1_D | ||
1229 | -3jcr_1_N | ||
1230 | -6gfw_1_R | ||
1231 | -3j6x_1_IR | ||
1232 | -3j6y_1_IR | ||
1233 | -2vaz_1_A | ||
1234 | -6zm6_1_X | ||
1235 | -6zm5_1_X | ||
1236 | -6zm6_1_W | ||
1237 | -6zm5_1_W | ||
1238 | -4v5z_1_BP | ||
1239 | -6n6e_1_D | ||
1240 | -4g7o_1_I | ||
1241 | -4g7o_1_S | ||
1242 | -5x22_1_S | ||
1243 | -5x22_1_I | ||
1244 | -5x21_1_I | ||
1245 | -5uh6_1_I | ||
1246 | -6l74_1_I | ||
1247 | -5uh9_1_I | ||
1248 | -4v5z_1_BS | ||
1249 | -2ftc_1_R | ||
1250 | -7a5j_1_X | ||
1251 | -6sag_1_R | ||
1252 | -4udv_1_R | ||
1253 | -5zsc_1_D | ||
1254 | -5zsc_1_C | ||
1255 | -6woy_1_I | ||
1256 | -6wox_1_I | ||
1257 | -4gkk_1_W | ||
1258 | -4v9e_1_AG | ||
1259 | -4v9e_1_BM | ||
1260 | -4v9e_1_AM | ||
1261 | -4v9e_1_AA | ||
1262 | -4v9e_1_BA | ||
1263 | -4v9e_1_BG | ||
1264 | -5lzs_1_II | ||
1265 | -6fqr_1_C | ||
1266 | -6ha1_1_X | ||
1267 | -5kcr_1_1X | ||
1268 | -6uu4_1_333 | ||
1269 | -6uu0_1_333 | ||
1270 | -6uuc_1_333 | ||
1271 | -6uu2_1_333 | ||
1272 | -6xl9_1_R | ||
1273 | -6b6h_1_3 | ||
1274 | -6xh8_1_3 | ||
1275 | -6pb4_1_3 | ||
1276 | -3m7n_1_Z | ||
1277 | -3m85_1_X | ||
1278 | -3m85_1_Z | ||
1279 | -3m85_1_Y | ||
1280 | -5u34_1_B | ||
1281 | -5wnp_1_B | ||
1282 | -5wnv_1_B | ||
1283 | -5yts_1_B | ||
1284 | -1utd_1_6 | ||
1285 | -1utd_1_Z | ||
1286 | -1utd_1_4 | ||
1287 | -1utd_1_7 | ||
1288 | -1utd_1_9 | ||
1289 | -1utd_1_5 | ||
1290 | -1utd_1_3 | ||
1291 | -1utd_1_2 | ||
1292 | -1utd_1_8 | ||
1293 | -1utd_1_1 | ||
1294 | -6n6i_1_C | ||
1295 | -6n6i_1_D | ||
1296 | -6n6a_1_D | ||
1297 | -6ij2_1_F | ||
1298 | -6ij2_1_G | ||
1299 | -6ij2_1_H | ||
1300 | -6ij2_1_E | ||
1301 | -3u2e_1_D | ||
1302 | -3u2e_1_C | ||
1303 | -7eh1_1_I | ||
1304 | -5uef_1_C | ||
1305 | -5uef_1_D | ||
1306 | -7eh2_1_R | ||
1307 | -7eh2_1_I | ||
1308 | -4x4u_1_H | ||
1309 | -4afy_1_D | ||
1310 | -6oy5_1_I | ||
1311 | -6owl_1_B | ||
1312 | -6owl_1_C | ||
1313 | -4afy_1_C | ||
1314 | -4lq3_1_R | ||
1315 | -6s0m_1_C | ||
1316 | -6ymw_1_C | ||
1317 | -7a5g_1_J | ||
1318 | -1m5k_1_B | ||
1319 | -1m5o_1_E | ||
1320 | -1m5v_1_B | ||
1321 | -6gx6_1_B | ||
1322 | -4k4s_1_D | ||
1323 | -4k4s_1_H | ||
1324 | -4k4t_1_H | ||
1325 | -4k4t_1_D | ||
1326 | -1zn1_1_C | ||
1327 | -1xpu_1_G | ||
1328 | -1xpu_1_L | ||
1329 | -1xpr_1_L | ||
1330 | -1xpu_1_H | ||
1331 | -1xpo_1_K | ||
1332 | -1xpo_1_J | ||
1333 | -1xpu_1_J | ||
1334 | -1xpo_1_H | ||
1335 | -1xpr_1_J | ||
1336 | -1xpu_1_K | ||
1337 | -1xpr_1_K | ||
1338 | -1xpo_1_M | ||
1339 | -1xpo_1_L | ||
1340 | -1xpu_1_M | ||
1341 | -1xpr_1_M | ||
1342 | -1xpo_1_G | ||
1343 | -1xpr_1_H | ||
1344 | -1xpr_1_G | ||
1345 | -5x70_1_E | ||
1346 | -5x70_1_G | ||
1347 | -6gc5_1_F | ||
1348 | -6gc5_1_H | ||
1349 | -6gc5_1_G | ||
1350 | -4rne_1_C | ||
1351 | -1n1h_1_B | ||
1352 | -7n2v_1_PT | ||
1353 | -4ohz_1_B | ||
1354 | -6t83_1_6B | ||
1355 | -4gv6_1_C | ||
1356 | -4gv6_1_B | ||
1357 | -4gv3_1_C | ||
1358 | -4gv3_1_B | ||
1359 | -4gv9_1_E | ||
1360 | -6i7o_1_L | ||
1361 | -2a8v_1_D | ||
1362 | -6qx3_1_G | ||
1363 | -2xnr_1_C | ||
1364 | -4gkj_1_W | ||
1365 | -4v5z_1_BC | ||
1366 | -5y88_1_X | ||
1367 | -4v5z_1_BB | ||
1368 | -5y85_1_D | ||
1369 | -5y85_1_B | ||
1370 | -5y87_1_D | ||
1371 | -3j0o_1_H | ||
1372 | -3j0l_1_H | ||
1373 | -3j0p_1_H | ||
1374 | -3j0q_1_H | ||
1375 | -4v5z_1_BH | ||
1376 | -3j0o_1_F | ||
1377 | -3j0l_1_F | ||
1378 | -3j0p_1_F | ||
1379 | -3j0q_1_F | ||
1380 | -3j0o_1_B | ||
1381 | -3j0l_1_B | ||
1382 | -3j0o_1_C | ||
1383 | -3j0l_1_C | ||
1384 | -3j0q_1_C | ||
1385 | -3j0p_1_C | ||
1386 | -3j0o_1_A | ||
1387 | -3j0l_1_A | ||
1388 | -3j0q_1_A | ||
1389 | -3j0p_1_A | ||
1390 | -4v5z_1_BJ | ||
1391 | -6ys3_1_V | ||
1392 | -6qdw_1_V | ||
1393 | -5hk0_1_F | ||
1394 | -4qm6_1_D | ||
1395 | -4qm6_1_C | ||
1396 | -4jzu_1_C | ||
1397 | -4jzv_1_C | ||
1398 | -5ytv_1_B | ||
1399 | -4k4z_1_P | ||
1400 | -4k4z_1_D | ||
1401 | -4k4x_1_L | ||
1402 | -4k4z_1_L | ||
1403 | -4k4x_1_D | ||
1404 | -4k4z_1_H | ||
1405 | -4k4x_1_H | ||
1406 | -4k4x_1_P | ||
1407 | -4a3b_1_P | ||
1408 | -4a3m_1_P | ||
1409 | -6u6y_1_E | ||
1410 | -6u6y_1_G | ||
1411 | -6u6y_1_F | ||
1412 | -6u6y_1_H | ||
1413 | -6qik_1_X | ||
1414 | -6rzz_1_X | ||
1415 | -6ri5_1_X | ||
1416 | -6qt0_1_X | ||
1417 | -6qtz_1_X | ||
1418 | -6s05_1_X | ||
1419 | -6t83_1_BB | ||
1420 | -6t83_1_4B | ||
1421 | -5fl8_1_Z | ||
1422 | -5jcs_1_Z | ||
1423 | -5mrc_1_BB | ||
1424 | -5mre_1_BB | ||
1425 | -5mrf_1_BB | ||
1426 | -4v5z_1_BN | ||
1427 | -3j46_1_P | ||
1428 | -3jcr_1_M | ||
1429 | -4e6b_1_A | ||
1430 | -4e6b_1_B | ||
1431 | -6a6l_1_D | ||
1432 | -4v8t_1_1 | ||
1433 | -1uvi_1_D | ||
1434 | -1uvi_1_F | ||
1435 | -1uvi_1_E | ||
1436 | -3gs5_1_A | ||
1437 | -4m7d_1_P | ||
1438 | -4k4u_1_D | ||
1439 | -4k4u_1_H | ||
1440 | -6rt7_1_E | ||
1441 | -6rt7_1_A | ||
1442 | -2voo_1_C | ||
1443 | -2voo_1_D | ||
1444 | -5k78_1_X | ||
1445 | -5k78_1_Y | ||
1446 | -4ylo_1_9 | ||
1447 | -5vyc_1_I2 | ||
1448 | -5vyc_1_I3 | ||
1449 | -5vyc_1_I5 | ||
1450 | -5vyc_1_I1 | ||
1451 | -5vyc_1_I6 | ||
1452 | -5vyc_1_I4 | ||
1453 | -6ip8_1_2M | ||
1454 | -6ip5_1_2M | ||
1455 | -6ip6_1_2M | ||
1456 | -6qcs_1_M | ||
1457 | -7b5k_1_Z | ||
1458 | -486d_1_G | ||
1459 | -486d_1_F | ||
1460 | -4v5z_1_B0 | ||
1461 | -4nia_1_O | ||
1462 | -4nia_1_J | ||
1463 | -4nia_1_K | ||
1464 | -4nia_1_L | ||
1465 | -4nia_1_F | ||
1466 | -4oq9_1_K | ||
1467 | -4oq9_1_O | ||
1468 | -4oq9_1_J | ||
1469 | -4oq9_1_F | ||
1470 | -4oq9_1_L | ||
1471 | -6r9q_1_B | ||
1472 | -7m4u_1_A | ||
1473 | -6v3a_1_SN1 | ||
1474 | -6v3b_1_SN1 | ||
1475 | -6v39_1_SN1 | ||
1476 | -6v3e_1_SN1 | ||
1477 | -1mj1_1_Q | ||
1478 | -1mj1_1_R | ||
1479 | -4dr6_1_V | ||
1480 | -6kql_1_I | ||
1481 | -4eya_1_M | ||
1482 | -4eya_1_N | ||
1483 | -4eya_1_A | ||
1484 | -4eya_1_B | ||
1485 | -2wj8_1_D | ||
1486 | -2wj8_1_I | ||
1487 | -2wj8_1_L | ||
1488 | -2wj8_1_F | ||
1489 | -2wj8_1_C | ||
1490 | -2wj8_1_Q | ||
1491 | -2wj8_1_J | ||
1492 | -2wj8_1_P | ||
1493 | -2wj8_1_K | ||
1494 | -2wj8_1_E | ||
1495 | -2wj8_1_T | ||
1496 | -2wj8_1_B | ||
1497 | -2wj8_1_O | ||
1498 | -2wj8_1_N | ||
1499 | -2wj8_1_A | ||
1500 | -2wj8_1_H | ||
1501 | -2wj8_1_R | ||
1502 | -2wj8_1_M | ||
1503 | -2wj8_1_S | ||
1504 | -2wj8_1_G | ||
1505 | -4e6b_1_E | ||
1506 | -4e6b_1_F | ||
1507 | -6p71_1_I | ||
1508 | -3pdm_1_R | ||
1509 | -5det_1_P | ||
1510 | -5els_1_I | ||
1511 | -4n2s_1_B | ||
1512 | -5fl8_1_Y | ||
1513 | -5jcs_1_Y | ||
1514 | -4yoe_1_E | ||
1515 | -6ow3_1_I | ||
1516 | -6ovy_1_I | ||
1517 | -6oy6_1_I | ||
1518 | -4qvd_1_H | ||
1519 | -5gxi_1_B | ||
1520 | -3iy8_1_A | ||
1521 | -7n06_1_G | ||
1522 | -7n06_1_H | ||
1523 | -7n06_1_I | ||
1524 | -7n06_1_J | ||
1525 | -7n06_1_K | ||
1526 | -7n06_1_L | ||
1527 | -7n33_1_G | ||
1528 | -7n33_1_H | ||
1529 | -7n33_1_I | ||
1530 | -7n33_1_J | ||
1531 | -7n33_1_K | ||
1532 | -7n33_1_L | ||
1533 | -5mc6_1_N | ||
1534 | -2qwy_1_C | ||
1535 | -2qwy_1_A | ||
1536 | -2qwy_1_B | ||
1537 | -4eya_1_O | ||
1538 | -4eya_1_P | ||
1539 | -4eya_1_C | ||
1540 | -4eya_1_D | ||
1541 | -6htq_1_V | ||
1542 | -6htq_1_W | ||
1543 | -6htq_1_U | ||
1544 | -6uu6_1_333 | ||
1545 | -5a0v_1_F | ||
1546 | -3avt_1_T | ||
1547 | -6d1v_1_C | ||
1548 | -4s2x_1_B | ||
1549 | -4s2y_1_B | ||
1550 | -5wnu_1_B | ||
1551 | -1zc8_1_F | ||
1552 | -1vtm_1_R | ||
1553 | -4v5z_1_BA | ||
1554 | -4v5z_1_BE | ||
1555 | -4v5z_1_BG | ||
1556 | -4v5z_1_BI | ||
1557 | -4v5z_1_BK | ||
1558 | -4v5z_1_BM | ||
1559 | -4v5z_1_BL | ||
1560 | -4v5z_1_BV | ||
1561 | -4v5z_1_BO | ||
1562 | -4v5z_1_BQ | ||
1563 | -4v5z_1_BR | ||
1564 | -4v5z_1_BT | ||
1565 | -4v5z_1_BU | ||
1566 | -4v5z_1_BW | ||
1567 | -4v5z_1_BY | ||
1568 | -4v5z_1_BX | ||
1569 | -4v5z_1_BZ | ||
1570 | -5elt_1_F | ||
1571 | -5elt_1_E | ||
1572 | -6xlj_1_R | ||
1573 | -6u9x_1_H | ||
1574 | -6u9x_1_K | ||
1575 | -5elk_1_R | ||
1576 | -6okk_1_G | ||
1577 | -4cxg_1_A | ||
1578 | -4cxh_1_A | ||
1579 | -6bk8_1_I | ||
1580 | -4cxg_1_B | ||
1581 | -4cxh_1_B | ||
1582 | -4v5z_1_B1 | ||
1583 | -5z4d_1_B | ||
1584 | -6o78_1_E | ||
1585 | -6xa1_1_BV | ||
1586 | -6ha8_1_X | ||
1587 | -3bnp_1_B | ||
1588 | -1m8w_1_E | ||
1589 | -1m8w_1_F | ||
1590 | -5udi_1_B | ||
1591 | -5udl_1_B | ||
1592 | -5udk_1_B | ||
1593 | -5udj_1_B | ||
1594 | -5w5i_1_B | ||
1595 | -5w5i_1_D | ||
1596 | -5w5h_1_B | ||
1597 | -5w5h_1_D | ||
1598 | -4eya_1_K | ||
1599 | -4eya_1_L | ||
1600 | -4eya_1_I | ||
1601 | -4eya_1_J | ||
1602 | -4g9z_1_E | ||
1603 | -4g9z_1_F | ||
1604 | -3nma_1_B | ||
1605 | -3nma_1_C | ||
1606 | -6een_1_G | ||
1607 | -6een_1_I | ||
1608 | -6een_1_H | ||
1609 | -4wti_1_T | ||
1610 | -4wti_1_P | ||
1611 | -6dlr_1_A | ||
1612 | -6dlt_1_A | ||
1613 | -6dls_1_A | ||
1614 | -6dlq_1_A | ||
1615 | -6dnr_1_A | ||
1616 | -5l3p_1_Y | ||
1617 | -4hor_1_X | ||
1618 | -3rzo_1_R | ||
1619 | -5wlh_1_B | ||
1620 | -2f4v_1_Z | ||
1621 | -5ml7_1_B | ||
1622 | -1qln_1_R | ||
1623 | -3pgw_1_R | ||
1624 | -3pgw_1_N | ||
1625 | -3cw1_1_X | ||
1626 | -3cw1_1_W | ||
1627 | -3cw1_1_V | ||
1628 | -7b0y_1_A | ||
1629 | -6ogy_1_M | ||
1630 | -6ogy_1_N | ||
1631 | -6uej_1_B | ||
1632 | -7kga_1_A | ||
1633 | -6ywy_1_BB | ||
1634 | -5ytx_1_B | ||
1635 | -4g0a_1_H | ||
1636 | -6r9p_1_B | ||
1637 | -3koa_1_C | ||
1638 | -4n48_1_D | ||
1639 | -4n48_1_G | ||
1640 | -6kug_1_B | ||
1641 | -6ktc_1_V | ||
1642 | -6ole_1_U | ||
1643 | -6om0_1_U | ||
1644 | -6olg_1_BV | ||
1645 | -6oli_1_U | ||
1646 | -6om7_1_U | ||
1647 | -6w6l_1_U | ||
1648 | -6olz_1_BV | ||
1649 | -6olf_1_U | ||
1650 | -5lzd_1_X | ||
1651 | -6m7k_1_B | ||
1652 | -3cd6_1_4 | ||
1653 | -3cma_1_5 | ||
1654 | -6n9e_1_2W | ||
1655 | -1vqo_1_4 | ||
1656 | -1qvg_1_3 | ||
1657 | -3cme_1_5 | ||
1658 | -5lzd_1_W | ||
1659 | -5lze_1_W | ||
1660 | -5lzc_1_W | ||
1661 | -5lzb_1_W | ||
1662 | -3wzi_1_C | ||
1663 | -1mvr_1_E | ||
1664 | -1mvr_1_B | ||
1665 | -1mvr_1_A | ||
1666 | -4adx_1_0 | ||
1667 | -4adx_1_8 | ||
1668 | -1n33_1_Z | ||
1669 | -6dti_1_W | ||
1670 | -3d2s_1_F | ||
1671 | -3d2s_1_H | ||
1672 | -5mrc_1_AA | ||
1673 | -5mre_1_AA | ||
1674 | -5mrf_1_AA | ||
1675 | -7jhy_1_Z | ||
1676 | -3eq4_1_Y | ||
1677 | -4wkr_1_C | ||
1678 | -4v99_1_EC | ||
1679 | -4v99_1_AC | ||
1680 | -4v99_1_BH | ||
1681 | -4v99_1_CH | ||
1682 | -4v99_1_AM | ||
1683 | -4v99_1_DC | ||
1684 | -4v99_1_JW | ||
1685 | -4v99_1_EH | ||
1686 | -4v99_1_BW | ||
1687 | -4v99_1_FW | ||
1688 | -4v99_1_AW | ||
1689 | -4v99_1_BC | ||
1690 | -4v99_1_BM | ||
1691 | -4v99_1_IC | ||
1692 | -4v99_1_EM | ||
1693 | -4v99_1_ER | ||
1694 | -4v99_1_IW | ||
1695 | -4v99_1_JH | ||
1696 | -4v99_1_JR | ||
1697 | -4v99_1_AH | ||
1698 | -4v99_1_GR | ||
1699 | -4v99_1_IR | ||
1700 | -4v99_1_BR | ||
1701 | -4v99_1_CW | ||
1702 | -4v99_1_HR | ||
1703 | -4v99_1_FH | ||
1704 | -4v99_1_HC | ||
1705 | -4v99_1_DW | ||
1706 | -4v99_1_GC | ||
1707 | -4v99_1_JC | ||
1708 | -4v99_1_DM | ||
1709 | -4v99_1_EW | ||
1710 | -4v99_1_AR | ||
1711 | -4v99_1_CR | ||
1712 | -4v99_1_JM | ||
1713 | -4v99_1_CC | ||
1714 | -4v99_1_IH | ||
1715 | -4v99_1_FR | ||
1716 | -4v99_1_CM | ||
1717 | -4v99_1_IM | ||
1718 | -4v99_1_FM | ||
1719 | -4v99_1_FC | ||
1720 | -4v99_1_GH | ||
1721 | -4v99_1_HM | ||
1722 | -4v99_1_HH | ||
1723 | -4v99_1_DR | ||
1724 | -4v99_1_HW | ||
1725 | -4v99_1_GW | ||
1726 | -4v99_1_DH | ||
1727 | -4v99_1_GM | ||
1728 | -6rt4_1_D | ||
1729 | -6rt4_1_C | ||
1730 | -6zvh_1_X | ||
1731 | -4dwa_1_D | ||
1732 | -6n6c_1_D | ||
1733 | -6n6j_1_C | ||
1734 | -6n6j_1_D | ||
1735 | -6p7q_1_E | ||
1736 | -6p7q_1_F | ||
1737 | -6p7q_1_D | ||
1738 | -6rcl_1_C | ||
1739 | -5jju_1_C | ||
1740 | -4ejt_1_G | ||
1741 | -1et4_1_A | ||
1742 | -1et4_1_C | ||
1743 | -1et4_1_B | ||
1744 | -1et4_1_D | ||
1745 | -1et4_1_E | ||
1746 | -1ddy_1_C | ||
1747 | -1ddy_1_A | ||
1748 | -1ddy_1_E | ||
1749 | -6lkq_1_W | ||
1750 | -6r47_1_A | ||
1751 | -3qsu_1_P | ||
1752 | -3qsu_1_R | ||
1753 | -2xs7_1_B | ||
1754 | -1n38_1_B | ||
1755 | -4qvc_1_G | ||
1756 | -6mpf_1_W | ||
1757 | -6spc_1_A | ||
1758 | -6spe_1_A | ||
1759 | -6zvk_1_D2 | ||
1760 | -7a01_1_D2 | ||
1761 | -6fti_1_V | ||
1762 | -6ftj_1_V | ||
1763 | -6ftg_1_V | ||
1764 | -3npn_1_A | ||
1765 | -4g0a_1_G | ||
1766 | -4g0a_1_F | ||
1767 | -4g0a_1_E | ||
1768 | -2b2d_1_S | ||
1769 | -5hkc_1_C | ||
1770 | -1rmv_1_B | ||
1771 | -4qu7_1_X | ||
1772 | -4qu7_1_V | ||
1773 | -4qu7_1_U | ||
1774 | -4v5z_1_AH | ||
1775 | -4v5z_1_AA | ||
1776 | -4v5z_1_AB | ||
1777 | -4v5z_1_AC | ||
1778 | -4v5z_1_AD | ||
1779 | -4v5z_1_AE | ||
1780 | -4v5z_1_AF | ||
1781 | -4v5z_1_AG | ||
1782 | -6pmi_1_3 | ||
1783 | -6pmj_1_3 | ||
1784 | -5hjz_1_C | ... | ... |
This diff could not be displayed because it is too large.
... | @@ -26,7 +26,7 @@ from os import path | ... | @@ -26,7 +26,7 @@ from os import path |
26 | from tqdm import tqdm | 26 | from tqdm import tqdm |
27 | from collections import Counter | 27 | from collections import Counter |
28 | from setproctitle import setproctitle | 28 | from setproctitle import setproctitle |
29 | -from RNAnet import Job, read_cpu_number, sql_ask_database, sql_execute, warn, notify, init_worker, trace_unhandled_exceptions | 29 | +from RNAnet import Job, read_cpu_number, sql_ask_database, sql_execute, warn, notify, init_with_tqdm, trace_unhandled_exceptions |
30 | from geometric_stats import * | 30 | from geometric_stats import * |
31 | 31 | ||
32 | np.set_printoptions(threshold=sys.maxsize, linewidth=np.inf, precision=8) | 32 | np.set_printoptions(threshold=sys.maxsize, linewidth=np.inf, precision=8) |
... | @@ -948,7 +948,11 @@ def par_distance_matrix(filelist, f, label, cm_coords, consider_all_atoms, s): | ... | @@ -948,7 +948,11 @@ def par_distance_matrix(filelist, f, label, cm_coords, consider_all_atoms, s): |
948 | nb_gap += 1 | 948 | nb_gap += 1 |
949 | coordinates_with_gaps.append(np.nan) | 949 | coordinates_with_gaps.append(np.nan) |
950 | else: | 950 | else: |
951 | - coordinates_with_gaps.append(coordinates[i - nb_gap]) | 951 | + try: |
952 | + coordinates_with_gaps.append(coordinates[i - nb_gap]) | ||
953 | + except IndexError as e: | ||
954 | + warn(f"{filename} : {s.seq} at position {i}, we get {e}.", error=True) | ||
955 | + exit(0) | ||
952 | 956 | ||
953 | # Build the pairwise distances | 957 | # Build the pairwise distances |
954 | d = np.zeros((len(s.seq), len(s.seq)), dtype=np.float32) | 958 | d = np.zeros((len(s.seq), len(s.seq)), dtype=np.float32) |
... | @@ -1055,7 +1059,7 @@ def get_avg_std_distance_matrix(f, consider_all_atoms, multithread=False): | ... | @@ -1055,7 +1059,7 @@ def get_avg_std_distance_matrix(f, consider_all_atoms, multithread=False): |
1055 | else: | 1059 | else: |
1056 | # We split the work for one family on multiple workers. | 1060 | # We split the work for one family on multiple workers. |
1057 | 1061 | ||
1058 | - p = Pool(initializer=init_worker, initargs=(tqdm.get_lock(),), processes=nworkers) | 1062 | + p = Pool(initializer=init_with_tqdm, initargs=(tqdm.get_lock(),), processes=nworkers) |
1059 | try: | 1063 | try: |
1060 | fam_pbar = tqdm(total=len(align), desc=f"{f} {label} pair distances", position=0, unit="chain", leave=True) | 1064 | fam_pbar = tqdm(total=len(align), desc=f"{f} {label} pair distances", position=0, unit="chain", leave=True) |
1061 | # Apply work_pssm_remap to each RNA family | 1065 | # Apply work_pssm_remap to each RNA family |
... | @@ -1147,8 +1151,11 @@ def nt_3d_centers(cif_file, consider_all_atoms): | ... | @@ -1147,8 +1151,11 @@ def nt_3d_centers(cif_file, consider_all_atoms): |
1147 | Some chains have no C1' (e.g. 4v7f-3), therefore, an empty result is returned. | 1151 | Some chains have no C1' (e.g. 4v7f-3), therefore, an empty result is returned. |
1148 | """ | 1152 | """ |
1149 | result =[] | 1153 | result =[] |
1150 | - structure = MMCIFParser().get_structure(cif_file, cif_file) | 1154 | + try: |
1151 | - | 1155 | + structure = MMCIFParser().get_structure(cif_file, cif_file) |
1156 | + except Exception as e: | ||
1157 | + warn(f"{cif_file} : {e}", error=True) | ||
1158 | + return result | ||
1152 | for model in structure: | 1159 | for model in structure: |
1153 | for chain in model: | 1160 | for chain in model: |
1154 | for residue in chain: | 1161 | for residue in chain: |
... | @@ -1203,7 +1210,7 @@ def process_jobs(joblist): | ... | @@ -1203,7 +1210,7 @@ def process_jobs(joblist): |
1203 | Starts a Pool to run the Job() objects in joblist. | 1210 | Starts a Pool to run the Job() objects in joblist. |
1204 | """ | 1211 | """ |
1205 | tmp_nworkers = min(len(joblist), nworkers) | 1212 | tmp_nworkers = min(len(joblist), nworkers) |
1206 | - p = Pool(initializer=init_worker, initargs=(tqdm.get_lock(),), processes=tmp_nworkers) | 1213 | + p = Pool(initializer=init_with_tqdm, initargs=(tqdm.get_lock(),), processes=tmp_nworkers) |
1207 | pbar = tqdm(total=len(joblist), desc="Stat jobs", position=0, unit="job", leave=True) | 1214 | pbar = tqdm(total=len(joblist), desc="Stat jobs", position=0, unit="job", leave=True) |
1208 | 1215 | ||
1209 | try: | 1216 | try: |
... | @@ -1345,31 +1352,31 @@ if __name__ == "__main__": | ... | @@ -1345,31 +1352,31 @@ if __name__ == "__main__": |
1345 | # Define the tasks | 1352 | # Define the tasks |
1346 | joblist = [] | 1353 | joblist = [] |
1347 | 1354 | ||
1348 | - # # Do eta/theta plots | 1355 | + # Do eta/theta plots |
1349 | - # if n_unmapped_chains and DO_WADLEY_ANALYSIS: | 1356 | + if n_unmapped_chains and DO_WADLEY_ANALYSIS: |
1350 | - # joblist.append(Job(function=reproduce_wadley_results, args=(1, False, (1,4), res_thr))) | 1357 | + joblist.append(Job(function=reproduce_wadley_results, args=(1, False, (1,4), res_thr))) |
1351 | - # joblist.append(Job(function=reproduce_wadley_results, args=(4, False, (1,4), res_thr))) | 1358 | + joblist.append(Job(function=reproduce_wadley_results, args=(4, False, (1,4), res_thr))) |
1352 | - | 1359 | + |
1353 | - # # Do distance matrices for each family excl. LSU/SSU (will be processed later) | 1360 | + # Do distance matrices for each family excl. LSU/SSU (will be processed later) |
1354 | - # if DO_AVG_DISTANCE_MATRIX: | 1361 | + if DO_AVG_DISTANCE_MATRIX: |
1355 | - # extracted_chains = [] | 1362 | + extracted_chains = [] |
1356 | - # for file in os.listdir(path_to_3D_data + "rna_mapped_to_Rfam"): | 1363 | + for file in os.listdir(path_to_3D_data + "rna_mapped_to_Rfam"): |
1357 | - # if os.path.isfile(os.path.join(path_to_3D_data + "rna_mapped_to_Rfam", file)): | 1364 | + if os.path.isfile(os.path.join(path_to_3D_data + "rna_mapped_to_Rfam", file)): |
1358 | - # e1 = file.split('_')[0] | 1365 | + e1 = file.split('_')[0] |
1359 | - # e2 = file.split('_')[1] | 1366 | + e2 = file.split('_')[1] |
1360 | - # e3 = file.split('_')[2] | 1367 | + e3 = file.split('_')[2] |
1361 | - # extracted_chains.append(e1 + '[' + e2 + ']' + '-' + e3) | 1368 | + extracted_chains.append(e1 + '[' + e2 + ']' + '-' + e3) |
1362 | - # for f in [ x for x in famlist if (x not in LSU_set and x not in SSU_set) ]: # Process the rRNAs later only 3 by 3 | 1369 | + for f in [ x for x in famlist if (x not in LSU_set and x not in SSU_set) ]: # Process the rRNAs later only 3 by 3 |
1363 | - # joblist.append(Job(function=get_avg_std_distance_matrix, args=(f, True, False))) | 1370 | + joblist.append(Job(function=get_avg_std_distance_matrix, args=(f, True, False))) |
1364 | - # joblist.append(Job(function=get_avg_std_distance_matrix, args=(f, False, False))) | 1371 | + joblist.append(Job(function=get_avg_std_distance_matrix, args=(f, False, False))) |
1365 | - | 1372 | + |
1366 | - # # Do general family statistics | 1373 | + # Do general family statistics |
1367 | - # joblist.append(Job(function=stats_len)) # Computes figures about chain lengths | 1374 | + joblist.append(Job(function=stats_len)) # Computes figures about chain lengths |
1368 | - # joblist.append(Job(function=stats_freq)) # updates the database (nucleotide frequencies in families) | 1375 | + joblist.append(Job(function=stats_freq)) # updates the database (nucleotide frequencies in families) |
1369 | - # for f in famlist: | 1376 | + for f in famlist: |
1370 | - # joblist.append(Job(function=parallel_stats_pairs, args=(f,))) # updates the database (intra-chain basepair types within a family) | 1377 | + joblist.append(Job(function=parallel_stats_pairs, args=(f,))) # updates the database (intra-chain basepair types within a family) |
1371 | - # if f not in ignored: | 1378 | + if f not in ignored: |
1372 | - # joblist.append(Job(function=to_id_matrix, args=(f,))) # updates the database (identity matrices of families) | 1379 | + joblist.append(Job(function=to_id_matrix, args=(f,))) # updates the database (identity matrices of families) |
1373 | 1380 | ||
1374 | 1381 | ||
1375 | # Do geometric measures | 1382 | # Do geometric measures |
... | @@ -1382,7 +1389,7 @@ if __name__ == "__main__": | ... | @@ -1382,7 +1389,7 @@ if __name__ == "__main__": |
1382 | joblist.append(Job(function=measure_from_structure, args=(f,), how_many_in_parallel=nworkers)) # All-atom distances | 1389 | joblist.append(Job(function=measure_from_structure, args=(f,), how_many_in_parallel=nworkers)) # All-atom distances |
1383 | 1390 | ||
1384 | 1391 | ||
1385 | - # process_jobs(joblist) | 1392 | + process_jobs(joblist) |
1386 | 1393 | ||
1387 | # Now process the memory-heavy tasks family by family | 1394 | # Now process the memory-heavy tasks family by family |
1388 | if DO_AVG_DISTANCE_MATRIX: | 1395 | if DO_AVG_DISTANCE_MATRIX: |
... | @@ -1398,11 +1405,11 @@ if __name__ == "__main__": | ... | @@ -1398,11 +1405,11 @@ if __name__ == "__main__": |
1398 | 1405 | ||
1399 | # finish the work after the parallel portions | 1406 | # finish the work after the parallel portions |
1400 | 1407 | ||
1401 | - # per_chain_stats() # per chain base frequencies and basepair types | 1408 | + per_chain_stats() # per chain base frequencies and basepair types |
1402 | - # seq_idty() # identity matrices from pre-computed .npy matrices | 1409 | + seq_idty() # identity matrices from pre-computed .npy matrices |
1403 | - # stats_pairs() | 1410 | + stats_pairs() |
1404 | if n_unmapped_chains: | 1411 | if n_unmapped_chains: |
1405 | - # general_stats() | 1412 | + general_stats() |
1406 | os.makedirs(runDir+"/results/figures/GMM/", exist_ok=True) | 1413 | os.makedirs(runDir+"/results/figures/GMM/", exist_ok=True) |
1407 | os.makedirs(runDir+"/results/geometry/json/", exist_ok=True) | 1414 | os.makedirs(runDir+"/results/geometry/json/", exist_ok=True) |
1408 | concat_dataframes(runDir + '/results/geometry/all-atoms/distances/', 'dist_atoms.csv') | 1415 | concat_dataframes(runDir + '/results/geometry/all-atoms/distances/', 'dist_atoms.csv') | ... | ... |
-
Please register or login to post a comment