Blog

  • CellProfiler v4

    https://cellprofiler.org/releases

    분석을 시작할려고 지난번에 CellProfiler로 실행한 결과를 검토해 보았다. 7개로 분할한 결과를 합치려고 보니 1~3번 세트와 4~7번 세트의 컬럼값이 달랐다. 아마 중간에 뭔가 바꾼 것이 있을 것이다. 그냥 일치하는 컬럼값만 선택하여 분석을 시작해도 되겠지만, 굳이 그런 위험은 감수하고 싶지 않았다. 보름 정도 다시 실행할 생각을 하니 가슴이 좀 답답해져 왔다.

    그런데 홈페이지를 가보니 version 4가 정말 몇 일 전에 공개되어 있었다. Python v2에서 v3로 바꾼 것을 포함하여 여러 곳에서 변화가 있다고 한다. 파라미터를 조정해 주어야 하는게 있을까 싶어서 100개 정도만 실행하여 보았는데 지난번보다 훨씬 빠른 속도로 분석이 가능하였다. 분석 초기에 나오는 오류 메시지도 보이지 않았다. 그래서 7개로 분할한 것을 다시 하나로 합쳐서 분석을 돌렸다. 아마 내일 퇴근할 무렵이 되면 끝날 것 같다.

  • .rand 와 .randn

    교재를 따라서 계속 실습하고 있는데 결과가 심하게 차이가 나서 무엇이 원인인지 찾아보았다. 실행을 덜 시켜서 그런가 싶어 끝까지 실행해 봤는데도 모르겠고, 오타가 있는지, 들여쓰기는 잘 되었는지 확인해 보아도 찾지를 못했다. Github에서 제공 코드를 받아서 실행해 봤더니 이건 또 실행이 잘 되었다. 그래서 코드를 출력한 다음에 하나하나 확인해 보았다. 그 결과 .randn으로 해야 할 것을 .rand 로 되어 있을 것을 알게 되었다.

    .randn은 평균이 0이고 분산이 1인 난수 생성할 때에 사용한다.

    .rand은 0에서 1사이에 균일한 난수를 생성할 때에 사용한다.

  • 바빌론 부자들의 돈 버는 지혜

    진짜 바빌론의 쐐기 문자를 해석해서 그 중에 이런 내용을 골라서 책으로 만든 건지는 의심이 간다. 왠지 픽션인 것 같다. 하지만 돈 버는 지혜의 기본에 대하여 정말 반복적으로 설명하고 있다. 그 내용은 대부분 좋은 내용이라고 생각하기 때문에 그 내용을 정리해 보았다.

    버는 것보다 덜 써라. 당신의 번 돈의 일부를 반드시 저축하라. 결코 인색해지지 마라.
    자네가 구하는 조언에 합당한 경험을 가진 사람에게 조언을 구하라.
    돈으로 돈을 벌어라.

    일단 시작하라.
    지출을 관리하라. 수입의 90% 내에서 예산을 짜라. 10%는 항상 저금하라는 말이 나온다.
    돈을 굴려라
    돈을 지켜라. 원금을 안전하게 지켜줄 곳에, 언제라도 원금을 회수할 수 있는 곳에, 또한 적정한 이자를 확실하게 보장받을 수 있는 곳을 찾아 투자하라.
    당신의 집을 가져라. 안정적인 거주지라는 것을 강조하고 있다.
    미래의 수입원을 찾아라. 노후를 미리 준비하라.
    돈버는 능력을 키워라. 언제나 공부하고 배우는 자세를 잃지 마라. 남들에게 존중받는 사람이 되고 싶다면 다음의 원칙을 지켜라. 빚이 있다면 능력 범위 내에서 신속하게 갚아야 한다. 현찰이 없다면 불요불급한 물건을 탐내지 마라. 무엇보다 가족에게 충실한 가장이 되어라. 유언장을 작성해 두어라. 가난한 사람들에게 사랑을 베풀어라.

  • GDC, MD5 확인하기

    Shell script를 이용하여 MD5 checksum 확인하려고 한다. GDC(genomic data center)에서 받은 파일은 십중팔구 TSV 포맷이다.

    CSV와는 달리 TSV는 IFS에 읽을 때 $’\t’를 이용한다.

    md5sum으로 확인하면 hash 값과 파일 이름이 나오는데 우리는 hash 값만 필요하므로 awk를 이용한다.

    #! /bin/bash
    INPUT=/home/byun1114/nas/GDC_SVS/gdc_manifest_20200909_050711.txt
    while IFS=$'\t' read id filename md5 size state
    do
            if [ "${id}" != "id" ]; then
            md5_check=`md5sum ${filename} | awk '{ print $1 }'`
                    if [ ${md5_check} = ${md5} ]; then
                    echo "${filename} is passed"
                    else
                    echo "${filename} is not passed"
                    fi
            fi
    done < $INPUT
    

    이 방법도 있을 것이고, 모든 파일에 대하여 md5 hash 값을 구한 뒤에 각각을 비교하는 방법도 있을 것 같다.