Как рассчитать расстояние между двумя двугранными (периодическими) распределениями углов в питоне? - PullRequest
1 голос
/ 08 июля 2019

Я ищу правильный и самый простой способ обработки периодичности при расчете расстояния движителя Земли (EMD: https://en.wikipedia.org/wiki/Earth_mover%27s_distance) (также известный как метрика Вассерштейна) между двумя распределениями двугранных углов.

Диапазон получаемых двугранных элементов [-180, 180] в соответствии с определением двугранных углов IUPAC.

Я не уверен, как изменить мои данные так, чтобы EMD / Wasserstein имел смысл. Я чувствую, что могу рассчитать EMD на нескольких различных модифицированных входных данных и выбрать минимум, чтобы избежать периодической проблемы с границами. Не могли бы вы предложить какие-либо идеи?

Вот несколько примеров входов, которые у меня есть. Для каждого из них я хочу использовать одну процедуру, которая дает мне реальное, минимальное расстояние EMD между попарные распределения.

Заранее благодарю за любой вклад, который вы можете внести:)

Вот код, который я сейчас использую

from pyemd import emd
from scipy.stats import wasserstein_distance
from scipy.spatial.distance import cdist

bw = 2 # bandwidth used to prepare the data (Y1 .. Yn)

# Wasserstein distance that is independent of bandwidth choice but does not actually work with frequencies ?
wass_dist = bw * wasserstein_distance(Y1, Y2)

# EMD distance that is independent of bandwidth choice but does not take periodic boundaries into account
bins_dihedrals_reshape = np.array(X).reshape(-1,1)
bins_dihedrals_dist_matrix = cdist(bins_dihedrals_reshape, bins_dihedrals_reshape)
emd_dist = bw * emd(Y1, Y2, bins_dihedrals_dist_matrix)

Пример 1: Сравнить СИНИЙ и ОРАНЖЕВЫЙ (Y1 и Y2)

Exemple 1

X= [-179.0,-177.0,-175.0,-173.0,-171.0,-169.0,-167.0,-165.0,-163.0,-161.0,-159.0,-157.0,-155.0,-153.0,-151.0,-149.0,-147.0,-145.0,-143.0,-141.0,-139.0,-137.0,-135.0,-133.0,-131.0,-129.0,-127.0,-125.0,-123.0,-121.0,-119.0,-117.0,-115.0,-113.0,-111.0,-109.0,-107.0,-105.0,-103.0,-101.0,-99.0,-97.0,-95.0,-93.0,-91.0,-89.0,-87.0,-85.0,-83.0,-81.0,-79.0,-77.0,-75.0,-73.0,-71.0,-69.0,-67.0,-65.0,-63.0,-61.0,-59.0,-57.0,-55.0,-53.0,-51.0,-49.0,-47.0,-45.0,-43.0,-41.0,-39.0,-37.0,-35.0,-33.0,-31.0,-29.0,-27.0,-25.0,-23.0,-21.0,-19.0,-17.0,-15.0,-13.0,-11.0,-9.0,-7.0,-5.0,-3.0,-1.0,1.0,3.0,5.0,7.0,9.0,11.0,13.0,15.0,17.0,19.0,21.0,23.0,25.0,27.0,29.0,31.0,33.0,35.0,37.0,39.0,41.0,43.0,45.0,47.0,49.0,51.0,53.0,55.0,57.0,59.0,61.0,63.0,65.0,67.0,69.0,71.0,73.0,75.0,77.0,79.0,81.0,83.0,85.0,87.0,89.0,91.0,93.0,95.0,97.0,99.0,101.0,103.0,105.0,107.0,109.0,111.0,113.0,115.0,117.0,119.0,121.0,123.0,125.0,127.0,129.0,131.0,133.0,135.0,137.0,139.0,141.0,143.0,145.0,147.0,149.0,151.0,153.0,155.0,157.0,159.0,161.0,163.0,165.0,167.0,169.0,171.0,173.0,175.0,177.0,179.0]
Y1= [0.00639872025594881,0.006998600279944011,0.010597880423915218,0.011097780443911218,0.015096980603879224,0.017096580683863227,0.021195760847830435,0.021695660867826434,0.02449510097980404,0.021495700859828035,0.01999600079984003,0.022895420915816835,0.01879624075184963,0.016996600679864027,0.015396920615876825,0.016896620675864827,0.013897220555888823,0.009998000399920015,0.008298340331933614,0.00599880023995201,0.004499100179964007,0.0028994201159768048,0.0016996600679864027,0.0008998200359928015,0.0005998800239952009,0.0003999200159968006,0.0,0.0,0.0001999600079984003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0001999600079984003,0.00029994001199760045,0.0006998600279944011,0.001299740051989602,0.0023995200959808036,0.001999600079984003,0.0034993001399720057,0.0030993801239752048,0.006998600279944011,0.00629874025194961,0.007798440311937612,0.008798240351929614,0.009898020395920816,0.011297740451909618,0.01269746050789842,0.011897620475904818,0.015596880623875225,0.01269746050789842,0.009398120375924815,0.010497900419916016,0.009498100379924015,0.008098380323935212,0.007298540291941612,0.008098380323935212,0.006898620275944811,0.00609878024395121]
Y2= [0.006998600279944011,0.007198560287942412,0.007598480303939212,0.009398120375924815,0.009798040391921616,0.010997800439912017,0.011197760447910418,0.01289742051589682,0.013697260547890422,0.015396920615876825,0.01259748050389922,0.010797840431913617,0.010497900419916016,0.009898020395920816,0.008198360327934412,0.007098580283943211,0.007198560287942412,0.0057988402319536095,0.004599080183963208,0.002999400119976005,0.001899620075984803,0.0016996600679864027,0.0008998200359928015,0.0006998600279944011,0.0005998800239952009,0.0003999200159968006,0.00029994001199760045,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0,9.998000399920016e-05,9.998000399920016e-05,0.00029994001199760045,0.0001999600079984003,0.0004999000199960008,0.0009998000399920016,0.0015996800639872025,0.0021995600879824036,0.0030993801239752048,0.005298940211957609,0.008698260347930415,0.008998200359928014,0.011397720455908818,0.013197360527894421,0.014997000599880024,0.022295540891821636,0.021795640871825634,0.023495300939812037,0.01969606078784243,0.022695460907818436,0.022395520895820836,0.021595680863827234,0.016596680663867228,0.016796640671865627,0.016196760647870425,0.011897620475904818,0.010697860427914417,0.010597880423915218]

Пример 2. Сравните КРАСНЫЙ и СИНИЙ (Y3 и Y5)

Exemple 2 enter image description here

Y3= [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.00029994001199760045,0.00029994001199760045,0.0001999600079984003,0.00029994001199760045,0.0,0.0004999000199960008,0.0008998200359928015,0.00029994001199760045,0.0003999200159968006,0.0004999000199960008,0.0001999600079984003,0.0005998800239952009,0.0010997800439912018,0.0016996600679864027,0.0016996600679864027,0.001899620075984803,0.0021995600879824036,0.0014997000599880025,0.0030993801239752048,0.0023995200959808036,0.001799640071985603,0.0016996600679864027,0.002499500099980004,0.0027994401119776045,0.0023995200959808036,0.0026994601079784043,0.003599280143971206,0.0030993801239752048,0.003999200159968006,0.003699260147970406,0.003699260147970406,0.003199360127974405,0.004099180163967206,0.004199160167966407,0.003699260147970406,0.005098980203959208,0.003999200159968006,0.0034993001399720057,0.004099180163967206,0.003599280143971206,0.004399120175964807,0.004599080183963208,0.004599080183963208,0.003699260147970406,0.005498900219956008,0.003699260147970406,0.004799040191961607,0.005498900219956008,0.004199160167966407,0.005498900219956008,0.005298940211957609,0.0057988402319536095,0.004299140171965607,0.005698860227954409,0.004799040191961607,0.003999200159968006,0.004099180163967206,0.003899220155968806,0.004499100179964007,0.0032993401319736052,0.005198960207958408,0.00599880023995201,0.005098980203959208,0.004799040191961607,0.005498900219956008,0.005698860227954409,0.006998600279944011,0.00639872025594881,0.007898420315936813,0.005298940211957609,0.006698660267946411,0.004199160167966407,0.00639872025594881,0.007298540291941612,0.006998600279944011,0.00629874025194961,0.007098580283943211,0.008598280343931213,0.006698660267946411,0.008698260347930415,0.00639872025594881,0.007098580283943211,0.009198160367926415,0.008198360327934412,0.007498500299940012,0.008498300339932013,0.007098580283943211,0.006698660267946411,0.007498500299940012,0.008398320335932814,0.006498700259948011,0.007798440311937612,0.008298340331933614,0.005898820235952809,0.007198560287942412,0.006998600279944011,0.005298940211957609,0.005698860227954409,0.005298940211957609,0.004399120175964807,0.0061987602479504095,0.003999200159968006,0.004599080183963208,0.005298940211957609,0.0034993001399720057,0.003999200159968006,0.0034993001399720057,0.003699260147970406,0.002999400119976005,0.001899620075984803,0.001899620075984803,0.001799640071985603,0.0021995600879824036,0.0013997200559888023,0.0011997600479904018,0.0008998200359928015,0.0007998400319936012,0.0004999000199960008,0.0005998800239952009,0.0005998800239952009,0.00029994001199760045,9.998000399920016e-05,9.998000399920016e-05,0.0,9.998000399920016e-05,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
Y4= [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0,0.0,9.998000399920016e-05,9.998000399920016e-05,0.0003999200159968006,0.0,0.0004999000199960008,0.0003999200159968006,0.00029994001199760045,0.0001999600079984003,0.0004999000199960008,0.0003999200159968006,0.00029994001199760045,0.0004999000199960008,0.0007998400319936012,0.0010997800439912018,0.001899620075984803,0.0013997200559888023,0.001299740051989602,0.0013997200559888023,0.001899620075984803,0.001999600079984003,0.0020995800839832034,0.002299540091981604,0.0016996600679864027,0.0021995600879824036,0.001999600079984003,0.0020995800839832034,0.0013997200559888023,0.002499500099980004,0.0021995600879824036,0.0020995800839832034,0.002299540091981604,0.002299540091981604,0.0023995200959808036,0.002499500099980004,0.001999600079984003,0.0034993001399720057,0.003599280143971206,0.002999400119976005,0.0023995200959808036,0.0027994401119776045,0.0026994601079784043,0.003599280143971206,0.0021995600879824036,0.0028994201159768048,0.0030993801239752048,0.003599280143971206,0.0028994201159768048,0.0021995600879824036,0.003899220155968806,0.0034993001399720057,0.0033993201359728054,0.004399120175964807,0.004499100179964007,0.004099180163967206,0.0034993001399720057,0.004099180163967206,0.004899020195960808,0.003899220155968806,0.005398920215956809,0.005398920215956809,0.004299140171965607,0.005498900219956008,0.004399120175964807,0.0057988402319536095,0.003999200159968006,0.005398920215956809,0.00629874025194961,0.004499100179964007,0.005398920215956809,0.004899020195960808,0.005198960207958408,0.006898620275944811,0.007598480303939212,0.006798640271945611,0.00629874025194961,0.007898420315936813,0.0076984603079384125,0.0076984603079384125,0.007098580283943211,0.008598280343931213,0.00629874025194961,0.007298540291941612,0.00609878024395121,0.00609878024395121,0.0065986802639472104,0.007998400319936013,0.0065986802639472104,0.007298540291941612,0.005498900219956008,0.007298540291941612,0.0061987602479504095,0.007398520295940812,0.006698660267946411,0.0065986802639472104,0.005198960207958408,0.00609878024395121,0.007598480303939212,0.006698660267946411,0.0065986802639472104,0.00639872025594881,0.0057988402319536095,0.007498500299940012,0.00599880023995201,0.005298940211957609,0.005898820235952809,0.0061987602479504095,0.00599880023995201,0.005498900219956008,0.004899020195960808,0.005198960207958408,0.004599080183963208,0.005198960207958408,0.003999200159968006,0.004499100179964007,0.003799240151969606,0.003199360127974405,0.003599280143971206,0.0026994601079784043,0.0023995200959808036,0.0020995800839832034,0.002299540091981604,0.002299540091981604,0.0011997600479904018,0.001999600079984003,0.0010997800439912018,0.0009998000399920016,0.0008998200359928015,0.0008998200359928015,0.0004999000199960008,0.0004999000199960008,0.0001999600079984003,0.00029994001199760045,0.0001999600079984003,9.998000399920016e-05,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
Y5= [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,9.998000399920016e-05,0.00029994001199760045,0.0001999600079984003,0.00029994001199760045,0.0004999000199960008,0.0003999200159968006,0.0007998400319936012,0.001799640071985603,0.0013997200559888023,0.0013997200559888023,0.0021995600879824036,0.002299540091981604,0.0011997600479904018,0.001799640071985603,0.0027994401119776045,0.0027994401119776045,0.0026994601079784043,0.0021995600879824036,0.0032993401319736052,0.0033993201359728054,0.004099180163967206,0.004299140171965607,0.003699260147970406,0.004899020195960808,0.004299140171965607,0.004399120175964807,0.004099180163967206,0.005898820235952809,0.005898820235952809,0.005198960207958408,0.005398920215956809,0.00599880023995201,0.006498700259948011,0.005298940211957609,0.00609878024395121,0.006698660267946411,0.00639872025594881,0.006998600279944011,0.00609878024395121,0.0061987602479504095,0.007498500299940012,0.00639872025594881,0.00629874025194961,0.005198960207958408,0.00639872025594881,0.007798440311937612,0.00599880023995201,0.006798640271945611,0.0065986802639472104,0.005698860227954409,0.005698860227954409,0.005398920215956809,0.006998600279944011,0.007798440311937612,0.00629874025194961,0.005598880223955209,0.006698660267946411,0.00639872025594881,0.0065986802639472104,0.005298940211957609,0.006498700259948011,0.007598480303939212,0.004799040191961607,0.004899020195960808,0.0046990601879624075,0.004799040191961607,0.006698660267946411,0.004799040191961607,0.004899020195960808,0.004599080183963208,0.004499100179964007,0.004799040191961607,0.004599080183963208,0.003899220155968806,0.0032993401319736052,0.003699260147970406,0.003799240151969606,0.002499500099980004,0.003799240151969606,0.004399120175964807,0.0046990601879624075,0.004299140171965607,0.003899220155968806,0.002999400119976005,0.003199360127974405,0.003199360127974405,0.003999200159968006,0.004299140171965607,0.003799240151969606,0.003199360127974405,0.0026994601079784043,0.0027994401119776045,0.003899220155968806,0.003899220155968806,0.002599480103979204,0.0028994201159768048,0.0032993401319736052,0.003799240151969606,0.0032993401319736052,0.0030993801239752048,0.0030993801239752048,0.0026994601079784043,0.002599480103979204,0.003699260147970406,0.002599480103979204,0.0026994601079784043,0.002599480103979204,0.003599280143971206,0.0028994201159768048,0.0023995200959808036,0.003899220155968806,0.0033993201359728054,0.0023995200959808036,0.002999400119976005,0.0020995800839832034,0.001899620075984803,0.0020995800839832034,0.0021995600879824036,0.001799640071985603,0.001999600079984003,0.0027994401119776045,0.0020995800839832034,0.0010997800439912018,0.001999600079984003,0.001799640071985603,0.0010997800439912018,0.0009998000399920016,0.0007998400319936012,0.0004999000199960008,0.0007998400319936012,0.00029994001199760045,0.0001999600079984003,0.0,0.0001999600079984003,9.998000399920016e-05,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
Y6= [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,9.998000399920016e-05,9.998000399920016e-05,0.0,9.998000399920016e-05,0.00029994001199760045,0.0007998400319936012,0.0003999200159968006,0.00029994001199760045,0.00029994001199760045,0.0005998800239952009,0.0006998600279944011,0.0008998200359928015,0.0013997200559888023,0.0015996800639872025,0.0016996600679864027,0.001799640071985603,0.0028994201159768048,0.002999400119976005,0.004099180163967206,0.003799240151969606,0.003799240151969606,0.003599280143971206,0.003899220155968806,0.004499100179964007,0.0061987602479504095,0.005698860227954409,0.00599880023995201,0.00629874025194961,0.005898820235952809,0.00639872025594881,0.0061987602479504095,0.008698260347930415,0.006898620275944811,0.008198360327934412,0.010897820435912817,0.007898420315936813,0.008298340331933614,0.007898420315936813,0.009698060387922416,0.007198560287942412,0.0076984603079384125,0.010797840431913617,0.008498300339932013,0.007998400319936013,0.009798040391921616,0.009098180363927214,0.00609878024395121,0.008798240351929614,0.009798040391921616,0.007798440311937612,0.007898420315936813,0.008398320335932814,0.007898420315936813,0.006698660267946411,0.007098580283943211,0.006498700259948011,0.006798640271945611,0.00629874025194961,0.00599880023995201,0.0061987602479504095,0.005198960207958408,0.005198960207958408,0.004999000199960008,0.004899020195960808,0.004599080183963208,0.003199360127974405,0.004599080183963208,0.004499100179964007,0.003899220155968806,0.004999000199960008,0.0023995200959808036,0.002499500099980004,0.002599480103979204,0.0028994201159768048,0.0027994401119776045,0.003799240151969606,0.002999400119976005,0.0033993201359728054,0.0027994401119776045,0.0027994401119776045,0.003599280143971206,0.0032993401319736052,0.0033993201359728054,0.004499100179964007,0.003699260147970406,0.004099180163967206,0.003999200159968006,0.0034993001399720057,0.0033993201359728054,0.004199160167966407,0.003999200159968006,0.0034993001399720057,0.0030993801239752048,0.003599280143971206,0.0023995200959808036,0.0026994601079784043,0.004199160167966407,0.004099180163967206,0.003599280143971206,0.0033993201359728054,0.002299540091981604,0.0032993401319736052,0.002599480103979204,0.003599280143971206,0.0027994401119776045,0.0016996600679864027,0.002299540091981604,0.0021995600879824036,0.0026994601079784043,0.0011997600479904018,0.001799640071985603,0.0016996600679864027,0.001299740051989602,0.0005998800239952009,0.001299740051989602,0.0007998400319936012,0.0006998600279944011,0.0010997800439912018,0.0005998800239952009,0.0001999600079984003,0.0007998400319936012,0.0004999000199960008,0.0007998400319936012,0.0001999600079984003,0.0,9.998000399920016e-05,0.0,0.0,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Рассмотрите возможность использования scipy.stats.wasserstein_distance https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wasserstein_distance.html

Из описания функции, приведенной на странице выше:

scipy.stats.wasserstein_distance(u_values, v_values, u_weights=None, v_weights=None):

Вычислить первое расстояние Вассерштейна между двумя одномерными распределениями.

Это расстояние также известно как расстояние для землеройной машины , так как оно можно рассматривать как минимальный объем «работы», необходимый для преобразования u в v , где «работа» измеряется как сумма распределения вес, который должен быть перемещен, умноженный на расстояние, которое он должен быть переехал.

0 голосов
/ 16 июля 2019

Теперь это работает. Я использую pyemd и создал периодическую матрицу расстояний.

from pyemd import emd
from scipy.stats import wasserstein_distance
from scipy.spatial.distance import cdist

X= [-179.0,-177.0,-175.0,-173.0,-171.0,-169.0,-167.0,-165.0,-163.0,-161.0,-159.0,-157.0,-155.0,-153.0,-151.0,-149.0,-147.0,-145.0,-143.0,-141.0,-139.0,-137.0,-135.0,-133.0,-131.0,-129.0,-127.0,-125.0,-123.0,-121.0,-119.0,-117.0,-115.0,-113.0,-111.0,-109.0,-107.0,-105.0,-103.0,-101.0,-99.0,-97.0,-95.0,-93.0,-91.0,-89.0,-87.0,-85.0,-83.0,-81.0,-79.0,-77.0,-75.0,-73.0,-71.0,-69.0,-67.0,-65.0,-63.0,-61.0,-59.0,-57.0,-55.0,-53.0,-51.0,-49.0,-47.0,-45.0,-43.0,-41.0,-39.0,-37.0,-35.0,-33.0,-31.0,-29.0,-27.0,-25.0,-23.0,-21.0,-19.0,-17.0,-15.0,-13.0,-11.0,-9.0,-7.0,-5.0,-3.0,-1.0,1.0,3.0,5.0,7.0,9.0,11.0,13.0,15.0,17.0,19.0,21.0,23.0,25.0,27.0,29.0,31.0,33.0,35.0,37.0,39.0,41.0,43.0,45.0,47.0,49.0,51.0,53.0,55.0,57.0,59.0,61.0,63.0,65.0,67.0,69.0,71.0,73.0,75.0,77.0,79.0,81.0,83.0,85.0,87.0,89.0,91.0,93.0,95.0,97.0,99.0,101.0,103.0,105.0,107.0,109.0,111.0,113.0,115.0,117.0,119.0,121.0,123.0,125.0,127.0,129.0,131.0,133.0,135.0,137.0,139.0,141.0,143.0,145.0,147.0,149.0,151.0,153.0,155.0,157.0,159.0,161.0,163.0,165.0,167.0,169.0,171.0,173.0,175.0,177.0,179.0]
Y1= [0.00639872025594881,0.006998600279944011,0.010597880423915218,0.011097780443911218,0.015096980603879224,0.017096580683863227,0.021195760847830435,0.021695660867826434,0.02449510097980404,0.021495700859828035,0.01999600079984003,0.022895420915816835,0.01879624075184963,0.016996600679864027,0.015396920615876825,0.016896620675864827,0.013897220555888823,0.009998000399920015,0.008298340331933614,0.00599880023995201,0.004499100179964007,0.0028994201159768048,0.0016996600679864027,0.0008998200359928015,0.0005998800239952009,0.0003999200159968006,0.0,0.0,0.0001999600079984003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0001999600079984003,0.00029994001199760045,0.0006998600279944011,0.001299740051989602,0.0023995200959808036,0.001999600079984003,0.0034993001399720057,0.0030993801239752048,0.006998600279944011,0.00629874025194961,0.007798440311937612,0.008798240351929614,0.009898020395920816,0.011297740451909618,0.01269746050789842,0.011897620475904818,0.015596880623875225,0.01269746050789842,0.009398120375924815,0.010497900419916016,0.009498100379924015,0.008098380323935212,0.007298540291941612,0.008098380323935212,0.006898620275944811,0.00609878024395121]
Y2= [0.006998600279944011,0.007198560287942412,0.007598480303939212,0.009398120375924815,0.009798040391921616,0.010997800439912017,0.011197760447910418,0.01289742051589682,0.013697260547890422,0.015396920615876825,0.01259748050389922,0.010797840431913617,0.010497900419916016,0.009898020395920816,0.008198360327934412,0.007098580283943211,0.007198560287942412,0.0057988402319536095,0.004599080183963208,0.002999400119976005,0.001899620075984803,0.0016996600679864027,0.0008998200359928015,0.0006998600279944011,0.0005998800239952009,0.0003999200159968006,0.00029994001199760045,9.998000399920016e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.998000399920016e-05,0.0,9.998000399920016e-05,9.998000399920016e-05,0.00029994001199760045,0.0001999600079984003,0.0004999000199960008,0.0009998000399920016,0.0015996800639872025,0.0021995600879824036,0.0030993801239752048,0.005298940211957609,0.008698260347930415,0.008998200359928014,0.011397720455908818,0.013197360527894421,0.014997000599880024,0.022295540891821636,0.021795640871825634,0.023495300939812037,0.01969606078784243,0.022695460907818436,0.022395520895820836,0.021595680863827234,0.016596680663867228,0.016796640671865627,0.016196760647870425,0.011897620475904818,0.010697860427914417,0.010597880423915218]

bw = 2 # bandwidth used to prepare the data (Y1 .. Yn)
bins_dihedrals = np.arange(-180, 180+bw_dihedrals, bw_dihedrals)
bins_dihedrals_reshape = np.array(bins_dihedrals).reshape(-1,1)
bins_dihedrals_dist_matrix = cdist(bins_dihedrals_reshape, bins_dihedrals_reshape) # 'classical' distance matrix
bins_dihedrals_dist_matrix_periodoc = np.where(bins_dihedrals_dist_matrix > max(bins_dihedrals_dist_matrix[0])/2, max(bins_dihedrals_dist_matrix[0])-bins_dihedrals_dist_matrix, bins_dihedrals_dist_matrix) # modify distance matrix for periodicity

emd_dist = bw * emd(Y1, Y2, bins_dihedrals_dist_matrix_periodic)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...