알파폴드 : 다중서열정렬 그 이상 by 바죠

알파폴드 : 다중서열정렬 그 이상

https://physics.aps.org/articles/v15/183

알파폴드는 에너지 광역최솟점 근처에 해당하는 단백질 구조로부터부터 시작한다. 
해당 단백질 구조를 이완시켜서 단백질 구조를 예측한다.

Mastering the game of Stratego with model-free multiagent reinforcement learning by 바죠


생성된지 하루 이상 경과한 파일들을 선택적으로 지우기 by 바죠

생성된지 하루 이상 경과한 파일들을 선택적으로 지우기 


현재 디렉토리에서 출발해서 특정패턴을 가지는 디렉토리로 순차적으로 진입한다.
파일 이름이 특정한 형식으로 시작할 경우를 따진다.
파일 생성 시간이 1일 이상 경과했는지를 따진다. 
모든 조건을 만족할 경우 해당 해당 파일을 지운다.


---------------------------------------------------------------------------------------------------------------------
import os
import time
apath=os.getcwd()
alist=os.listdir(apath)
blist=[]
for i in alist:
    if i.startswith('0') and len(i) == 4:
        blist.append(apath+'/'+i)

current_time = time.time()
for ipath in blist:
    for f in os.listdir(ipath):
        creation_time = os.path.getmtime(ipath+'/'+f)
        if (current_time - creation_time) // (24 * 3600) >= 1:
            if f.startswith('STDOUT') :
                os.unlink(ipath+'/'+f)
                print('{} removed'.format(f))
            if f.startswith('STDERR') :
                os.unlink(ipath+'/'+f)
                print('{} removed'.format(f))

---------------------------------------------------------------------------------------------------------------------
import os
import time

apath=os.getcwd()
alist=os.listdir(apath)
blist=[]
for i in alist:
    if i.startswith('0') and len(i) == 4:
        blist.append(apath+'/'+i)
current_time = time.time()
for ipath in blist:
    for f in os.listdir(ipath):
        creation_time = os.path.getmtime(ipath+'/'+f)
        ldelete=False
        if (current_time - creation_time) // (24 * 3600) >= 1:
            if f.startswith('STDOUT') :
                ldelete=True
            if f.startswith('STDERR') :
                ldelete=True
            if f.startswith('L2_n.') :
                ldelete=True
            if f.startswith('Lz_n.') :
                ldelete=True
            if f.startswith('S2_n.') :
                ldelete=True
            if f.startswith('Sz_n.') :
                ldelete=True
            if f.startswith('J2_n.') :
                ldelete=True
            if f.startswith('Sz_n.') :
                ldelete=True
            if f.startswith('nd_n.') :
                ldelete=True
            if f.startswith('L23_ominc.') :
                ldelete=True
            if f.startswith('L23_eloss.') :
                ldelete=True
            if f.startswith('L23_pi.') :
                ldelete=True
            if f.startswith('L2_i.') :
                ldelete=True
            if f.startswith('Lz_i.') :
                ldelete=True
            if f.startswith('S2_i.') :
                ldelete=True
            if f.startswith('Sz_i.') :
                ldelete=True
            if f.startswith('J2_i.') :
                ldelete=True
            if f.startswith('Jz_i.') :
                ldelete=True
            if f.startswith('nd_i.') :
                ldelete=True
            if f.startswith('L23_sig.') :
                ldelete=True
            if f.startswith('Jz_n.') :
                ldelete=True
            if ldelete:
                os.unlink(ipath+'/'+f)
                print('{} removed'.format(f))

---------------------------------------------------------------------------------------------------------------------

 cat CSA_SOLDIER.pbs
#!/bin/bash
#SBATCH --partition=g1
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
##
#SBATCH -J "edrixs"
#SBATCH -o STDOUT.%j.out
#SBATCH -e STDERR.%j.err
#SBATCH -t 10-24:00:00  # The job can take at most 10 days 24 wall-clock hours.

## don't touch
. /etc/profile.d/TMI.sh
##

#module purge
#module load iomkl

conda init --all --dry-run --verbose
source /home/ihlee/anaconda3/etc/profile.d/conda.sh
conda activate edrixs
export PYTHONPATH=$PYTHONPATH:/home/ihlee/edrixs/edrixs.module

python /home/ihlee/edrixs/LaCoO3/0/1atom_serial_new.py
#python3 mpirun -n 4 1atom_parallel.py

sleep 0.5
touch STOP
echo "DONE" >> STATUS
rm -f CSA_SOLDIER.pbs.e*
rm -f CSA_SOLDIER.pbs.o*
rm -f slurm.*.err
rm -f slurm.*.out




거리 [Kendal tau distance] by 바죠

거리 [Kendal tau distance]

인공지능의 3요소: representation, evaluation, optimization
인공지능에서 중요한 측정자, 목적함수: 거리 또는 상이성
예를 들면, 두 개의 확률 분포 함수가 있다. 그리고 이들 사이의 차이를 최소화 할 필요가 있다고 가정하자.
차이를 최소화 할 수 있도록 해 주는 변수들이 있을 것이다. 
\[ O=O({\theta}) =D_{KL}(P(x,\theta),Q(x))  \]
여기서, 매개변수를 잘 찾아낼 수 있으면 데이터로부터 얻어낸 사실 Q를 잘 설명할 수 있다. 즉, P가 Q와 거의 같도록 만들 수 있으면 좋다. 이 과정이 '학습'이다.

\[ P(x, \theta) \]
\[ Q(x) \]

당연하게도 매개변수는 한 개가 아닐 수 있다. 여러 개 일 수 있다. 
기계학습에서 중요한 점은 데이터 포인트들 사이의 거리를 측정하여 다시 데이터를 재배치하는 것이다.
데이터를 재배치할 수 있게 하는 것이 매개변수이다.
결국, 정확한 거리 측정이 중요하다.

\[ O=O(\{ \theta \}) =D_{KL}(P( x, \{ \theta \}),Q(x))  \]


두 가지 순열들 사이의 상이성, 즉, 거리가 필요할 수 있다. 
Kendal tau distance

두 개의 이미지들이 있을 때, 이들 사이의 거리를 정의할 수 있다.

---------------------------------------------------------------------------------------------------------------------
import itertools
import random

def kendall_tau_distance(order_a, order_b):
    pairs = itertools.combinations(range(1, len(order_a)+1), 2)
    distance = 0
    for x, y in pairs:
        a = order_a.index(x) - order_a.index(y)
        b = order_b.index(x) - order_b.index(y)
        if a * b < 0:
            distance += 1
    return distance


nn=3
alist=[i+1 for i in range(nn)]
for _ in range(100):
    blist=alist.copy()
    random.shuffle(blist)
    print( kendall_tau_distance(alist,blist), alist, blist )

---------------------------------------------------------------------------------------------------------------------

import numpy as np
import itertools
import random
import matplotlib.pyplot as plt

def kendall_tau_distance(order_a, order_b):
    pairs = itertools.combinations(range(1, len(order_a)+1), 2)
    distance = 0
    for x, y in pairs:
        a = order_a.index(x) - order_a.index(y)
        b = order_b.index(x) - order_b.index(y)
        if a * b < 0:
            distance += 1
    return distance

def sumcwise(alist,blist):
    tmp=0.
    for i in range(len(alist)):
         tmp=tmp+np.abs(alist[i]-blist[i])
    return tmp

nn=10
alist=[i+1 for i in range(nn)]
d1list=[]
d2list=[]
for _ in range(1000):
    blist=alist.copy()
    random.shuffle(blist)
    print( kendall_tau_distance(alist,blist), alist, blist, sumcwise(alist,blist) )
    d1list.append( kendall_tau_distance(alist,blist) )
    d2list.append( sumcwise(alist,blist) )


if True:
    plt.scatter(d1list, d2list)
    plt.show()

---------------------------------------------------------------------------------------------------------------------
import itertools
import random
import matplotlib.pyplot as plt
from scipy.spatial.distance import hamming
from numpy.linalg import norm

def kendall_tau_distance(order_a, order_b):
    pairs = itertools.combinations(range(1, len(order_a)+1), 2)
    distance = 0
    for x, y in pairs:
        a = order_a.index(x) - order_a.index(y)
        b = order_b.index(x) - order_b.index(y)
        if a * b < 0:
            distance += 1
    return distance

def sumcwise(alist,blist):
    return norm(np.array(alist)-np.array(blist))

def sumcwise1(alist,blist):
    tmp=0.
    for i in range(len(alist)):
         tmp=tmp+np.abs(alist[i]-blist[i])
    return tmp

def jaccard(list1, list2):
    intersection = len(list(set(list1).intersection(list2)))
    union = (len(list1) + len(list2)) - intersection
    return float(intersection) / union

nn=10
alist=[i+1 for i in range(nn)]
d1list=[]
d2list=[]
d3list=[]
d4list=[]
for _ in range(1000):
    blist=alist.copy()
    random.shuffle(blist)
    print( kendall_tau_distance(alist,blist), alist, blist, sumcwise(alist,blist) )
    d1list.append( kendall_tau_distance(alist,blist) )
    d2list.append( sumcwise(alist,blist) )
    d3list.append( 1.-jaccard(alist, blist) )
    d4list.append( hamming(alist, blist) * len(alist) )


if True:
    plt.scatter(d1list, d2list)
    plt.scatter(d1list, d4list)
    plt.show()


---------------------------------------------------------------------------------------------------------------------

# calculate the kendall's correlation between two variables
from numpy.random import rand
from numpy.random import seed
from scipy.stats import kendalltau
# seed random number generator
seed(1)
# prepare data
data1 = rand(1000) * 20
data2 = data1 + (rand(1000) * 10)
# calculate kendall's correlation
coef, p = kendalltau(data1, data2)
print('Kendall correlation coefficient: %.3f' % coef)
# interpret the significance
alpha = 0.05
if p > alpha:
        print('Samples are uncorrelated (fail to reject H0) p=%.3f' % p)
else:
        print('Samples are correlated (reject H0) p=%.3f' % p)



# calculate the spearman's correlation between two variables
from numpy.random import rand
from numpy.random import seed
from scipy.stats import spearmanr
# seed random number generator
seed(1)
# prepare data
data1 = rand(1000) * 20
data2 = data1 + (rand(1000) * 10)
# calculate spearman's correlation
coef, p = spearmanr(data1, data2)
print('Spearmans correlation coefficient: %.3f' % coef)
# interpret the significance
alpha = 0.05
if p > alpha:
        print('Samples are uncorrelated (fail to reject H0) p=%.3f' % p)
else:
        print('Samples are correlated (reject H0) p=%.3f' % p)


---------------------------------------------------------------------------------------------------------------------



1 2 3 4 5 6 7 8 9 10 다음

최근 포토로그