今日の負け将棋(20141021)

2級のヒト。対イビアナ

時間切れ勝ちしたけど、あのまま受けきれていなかったと思う。

右辺から攻めるのか左辺から攻めるのかちぐはぐになってしまった。

反省しながら二巻を読み返していた。

ProductName 四間飛車を指しこなす本〈2〉 (最強将棋塾)
藤井 猛
河出書房新社 / 1404円 ( 2000-05 )


20手目4六歩、22手目5六銀にすべきだったなぁと。

週末の僕のハンズオンはCytoscape, iGraph, RDKitあたり

RDKItはインストールが面倒くさいのと、実務だとPipelinePIlotとかOpenEye使うだろうからさらっと流すかも。その分iGraphのいじり方を多めに説明するかもしれない。

まだスライドに手をつけてないからわからないけどw

iGraphを使えばノードとエッジに属性を簡単に付加できてgml形式で出力できる。このファイルはすぐにCytoscapeで開くことが出来て便利です。sifとかタブ区切りテキストは色々と面倒ですね。

DT

from rdkit import Chem
from rdkit.Chem import AllChem, DataStructs, MolToSmiles
import numpy as np
from igraph import Graph
import numpy as np
import logging
logging.basicConfig(level=logging.DEBUG)

threshold = 0.5

suppl = Chem.SDMolSupplier('syk.sdf')

fps = [AllChem.GetMorganFingerprintAsBitVect(mol, 2) for mol in suppl]
smiles = [MolToSmiles(mol) for mol in suppl]

mat = []
for i in range(len(fps)):
    mat.append([DataStructs.FingerprintSimilarity(fps[i],fps[j]) for j in range(len(fps))])

sm = np.array(mat)

def search_root(sm, remain):
    cand = None
    max_c = 0
    for l in remain:
        num_c = len(np.where(sm[l] > threshold)[0].tolist())
        if num_c > max_c:
            max_c = num_c
            cand = l
    return cand

def check_edge(sm, current, root):
    cand = None
    max_c = 0
    candidates = set(np.where(sm[root] > threshold)[0].tolist())
    for c in candidates:
        if c in current:
            if sm[root, c] > max_c:
                max_c = sm[root, c]
                cand = c
    return cand

edges = []
sim_edges = []
np.fill_diagonal(sm, 0)
remain = set(range(len(sm[0])))
current = set()
new = set()
ith = 1

while remain:
    logging.debug("### {} th ###".format(ith))
    ith += 1
    root = search_root(sm, remain)
    if root is None:
        break
    logging.debug("root: {}".format(root))

    cand = check_edge(sm, current, root)
    if cand:
        logging.debug("connect {} and {}".format(cand, root))
        edges.append((cand, root))
        current.remove(cand)
        sm[:, cand] = 0

    remain.remove(root)
    sm[:, root] = 0

    for i in np.where(sm[root] > threshold)[0].tolist():
        if i in remain:
            edges.append((root, i))
            sim_edges.append(sm[root, i])
            new.add(i)

    logging.debug("new nodes: {}".format(new))
    current |= new
    remain -= current
    new = set()

g = Graph(edges)
g.vs["smiles"] = smiles
g.es["similarity"] = sim_edges
g.save("test.gml")

今週末のMishima.sykは化合物ネットワークが多めになりそう

今回はなかなか企業にいると触れることのないと噂のNGSデータの分析のハンズオン(@bonohu)が目玉ですが、他には化合物のネットワーク関連の話が多そうなので興味があれば参加してください。懇親会も、ディープ目のところを攻めていくので出ると楽しいハズw

尚、私の発表は、Cytoscape.jsで化合物ネットワーク解析の触りをやろうというハンズオンにする予定です。ハンズオンが終わったらこんなのを描けるようになるのが目標です。

とかいいつつ、エッジの張り方を色々と試行錯誤しはじめていた。下はある構造最適化の論文の化合物群に対して最近傍同士をつないでいったネットワーク。

なんか細切れになっていて気持よくない。やっぱルートから一本につながってないとあかんよなとw

NNT

どういうネットワークを作るかというのが非常に重要だと思っているので、距離に使う記述子の話とか、どういう風にノード同士をつなげるかとかそういう話もしてみたいかな。

週末クッキング

時間があまりなかったので、手早く作れるものが多かった。

こんにゃくとひじきの炒め煮。

玉ねぎは余っていたので入れてみた。レシピ的にはごぼうを入れるべきなのだけど売ってなかった

そういえばピクルス最近作ってないなぁ。

1413715928

ジャコ入りカレー風味チャーハン

肉がなかったので魚ソーで。カレー粉はギャバンのパウダーを少々。

これ以上のご飯の量だと中華鍋が触れないので腕を鍛える必要性を感じたw

1413715929

牛肉と舞茸の炊き込みご飯

さわやかの待ち時間に読んでいたオレンジページに載っていたので、記憶を頼りに早速作ってみた。

ちょっと醤油が足りなかった感はあったが、子供が気に入って沢山食べたので満足。

1413715931

ProductName 作りおきそうざい

主婦の友社 / ?円 ( 2014-09-26 )


今日の負け将棋(20141018)

相ゴキになった時に相手が端角にしてきて抑えこまれて負けることが増えたんだけど、対策はどうすればいいのだろうか?

端を着いた瞬間に3一に角を引いておけばいいのかなぁ、わからん。

今のところ相手が中飛車だと自分も無条件に中飛車にしてしまう…

ProductName ひと目の中飛車
長岡 裕也
マイナビ / ?円 ( 2014-02-26 )


目指せ初段を見ていた

振り飛車穴熊

立石流

大江戸日本酒まつりに行った

食べ物リストはここ

にほん酒やの十字旭とポークビンダルーしか撮ってないw

1413202114

かんだ光壽の鮎開き柚庵焼きが美味でした。

頂いたものリスト

  • かんだ光壽 鮎開き柚庵焼き×辻善兵衛
  • 作 燻製三種盛り(鮭、チーズ、いぶりがっこ)×天穏
  • 29rotie 生ハム×竹鶴
  • 日本橋蛇の市本店 蛸の桜煮と大根、青菜の煮物×いづみ 橋
  • 焼鳥はちまん 淡海地鶏の串焼きと白レバー×秋鹿
  • 日本酒バル酒趣 ゴルゴンゾーラとミートソースの 重ね焼き×龍勢

ひと目の端攻め

先週の東京出張の電車の中で読んでた。

ProductName 将棋・ひと目の端攻め (マイコミ将棋文庫SP)

毎日コミュニケーションズ / 1080円 ( 2008-01-30 )


これはわかりやすいのでオススメ。

夜は短し歩けよ乙女

青春的な☆

ProductName 夜は短し歩けよ乙女 (角川文庫)
森見 登美彦
角川グループパブリッシング / 605円 ( 2008-12-25 )


今日の負け将棋(20141006)

相変わらず3切れのみ指してるが4連敗は凹む

27級だけど10切れ初段だった。

KK4でお互い龍と馬を作って角打ちされた時にどうするのがよいんだろうか?角打ちしないで飛車交換したほうがいいの?

2級のヒト よくわからんうちにいいようにやられた。角は3三にあげないほうがいいんだろうか?

2級のヒト、10切れ初段 4四銀、3三桂?こういう場合は向かい飛車に振り直すべきなの?

1級のヒト

矢倉の場合、金駒渡しちゃうと受け切られちゃうけど。こういう場合は攻めをどうすればいいのかわからない。特に3切れだと、切れ負け狙われて面白くない。

64手目は銀を逃がすべきだった気もするが。

それから74手目は6六角で王手飛車すべきだった。