상호 작용 모델에서 최상의 기능 찾기


13

기능 값이있는 단백질 목록이 있습니다. 샘플 테이블은 다음과 같습니다.

...............Feature1...Feature2...Feature3...Feature4  
Protein1  
Protein2  
Protein3  
Protein4  

행은 단백질이고 열은 기능입니다.

또한 상호 작용하는 단백질 목록도 있습니다. 예를 들어

Protein3, Protein4  
Protein1, Protein2  
Protein4, Protein1  

문제점 : 예비 분석을 위해 어떤 기능이 단백질 상호 작용에 가장 큰 영향을 미치는지 알고 싶습니다.

내 이해는 일반적으로 결정 트리가 엔트로피를 기반으로 가장 중요한 기능을 얻는 데 사용될 수 있지만 단백질 쌍 (즉, 상호 작용)으로 확장하는 방법을 잘 모르겠다는 것입니다. 그러한 목적을위한 방법이 있습니까?


내가 당신을 올바르게 이해하고 있다면 말해주십시오 : 당신은 어떤 단백질 쌍에 대한 상호 작용 강도를 가지고 있습니다 (예를 들어, 단백질이 상호 작용하지 않으면 0입니다). 상호 작용 강도로? 즉, 단백질 간의 상호 작용 강도를 예측할 수있는 것은 무엇입니까?
dsign

답변:


25

제시된 문제를 해결하기위한 실제 레시피 (하나의 가능한 해결책)

내가 좋아하는 기계 학습 도구 인 vowpal wabbit 를 사용하여 -q 옵션을 통해 2 차 (크로스) 기능을 지원하는 것은 간단 합니다 .

Vowpal Wabbit 배경

사용법에 대해 자세히 알아보기 전에 vowpal Wabbit는 분류 및 회귀를위한 빠르고 확장 가능한 온라인 머신 러닝 소프트웨어입니다. 온라인 학습 도구로서 전체 데이터를 메모리에로드 할 필요가 없기 때문에 데이터 크기 (예)의 제한없이 데스크탑에서 초당 약 5 백만 개의 기능 (학습) 속도를 얻습니다. 다른 학습 알고리즘 지원, 다중 손실 함수, 스파 스 기능, 혼합 기능 유형 등과 같은 많은 매력적인 기능이 있습니다.이 질문의 범위를 벗어납니다.

주석으로 문제를 해결하는 3 단계는 다음과 같습니다.

0 단계 : github에서 vowpal wabbit 다운로드 및 빌드 (지원되는 환경의 하단에있는 참고 참조)

1 단계 : 각 줄이 다음과 같은 훈련 세트를 준비하십시오.

1.0 protein1/protein2|A p1_feature1 p1_feature2 ... |B p2_feature1 ...
...

훈련 세트 형식에 대한 설명 :

가장 왼쪽에있는 숫자 1.0 은 레이블 (상호 작용 값, 임의의 숫자 값일 수 있음)이고 두 번째 문자열 ' protein1 / protein2 '는 줄에 ID를 부여하는 태그입니다. "이 줄은 protein1과 단백질 2 "; 선택 사항이므로 주석으로 생각할 수 있습니다. 이 태그 문자열은 또한 어떤 예측이 어떤 예제에 속하는지를 식별하기 위해 모델 예측에서 에코되지만 여기서는 예측하지 않고 모델을 모델링하고 연구하는 것입니다. 다음은 protein1에 대한 입력 피처 네임 스페이스를 제공합니다 |A(우리는 네임 스페이스 를 정의하여 다른 네임 스페이스 사이를 교차 할 필요가 있음).A실제로 어떤 단어라도 될 수 있지만 첫 글자는 네임 스페이스마다 달라야하므로 command1에서 입력 기능 목록이 뒤 따르는 명령 호출에서 이들을 교차 할 수 있습니다 p1_.... 마지막으로 protein2의 이름 공간이 온다 : protein2 |B의 특징 이름이 뒤 따른다 p2_....

vowpal Wabbit의 아름다움 중 하나는 기능 이름에 임의의 문자열을 사용할 수 있다는 것입니다 (내부적으로 해시하지만 신경 쓰지 않아도 됨). 훈련 세트의 유일한 특수 문자는 다음과 같습니다.

  • 공백 (분명히)
  • |, 입력 기능 및 네임 스페이스 접두사
  • : 피쳐 이름을 해당 값과 분리

:우리가 그들의 값은 기본값 있도록 모든 단백질의 기능 이름 부울 (유)를 나타냅니다 가정하기 때문에, 여기에 사용하지 않는 1그들은 명시 적으로 값을하지 필요합니까.

이제 vowpal_wabbit (실행 파일 이름이 실행될 수 vw있음) -q AB모든 사이 (상호 작용 측면 일명) 간 기능을 하나 개의 기능에서 선택되는 기능의 가능한 쌍의 자동 생성에 protein1 (네임 스페이스로 시작 A)와에서 다른 protein2을 ( 로 시작하는 네임 스페이스 B). vowpal_wabbit는 데이터 쌍을 읽고 단백질의 쌍 사이에 약간의 상호 작용을 일으키는 모든 기능 조합에 대해 가중치가있는 모델을 학습하고 만듭니다. 여기서는 vw직접 실행하는 대신 vw-varinfo마지막 단계로 vowpal wabbit과 함께 제공되는 래퍼 유틸리티를 통해 실행합니다 . 모델을 만들기 위해 vw-varinfo실행 vw하고 사람이 읽을 수있는 형태로 모델을 덤프합니다.

3 단계 : 다음 과 같이 vw-varinfo를 호출 하십시오.

vw-varinfo -q AB -c --passes 20 your_data_set_file

vw-varinfo는 모든 옵션 ( -q ... -c --passes ...)을있는 그대로 전달합니다 vw. 만 -q AB두 기능의 이름 공간을 횡단하기위한 필수적이다. 위의 옵션을 여러 개 추가하여 여러 단계를 실행하면 더 나은 결과를 얻을 수 있다고 생각합니다.

이 명령은 vowpal wabbit ( vw)를 호출 하여 데이터 세트를 학습하고 원하는 출력을 인쇄합니다. 강도 및 상대 가중치 순서에 따른 모든 기능 상호 작용.

입력 및 출력 예

입력 값에 prot.dat3 개의 단백질 사이에 3 방향 상호 작용이 포함되어 있다고 가정합니다 .

1.0 protein1/protein2|A a b |B k m
0.6 protein2/protein3|A k m |B b c d
2.2 protein1/protein3|A a b |B b c d

이것은 의도적으로 매우 최소한의 예입니다. vw더 큰 데이터 세트 (예 : 수백만 행, 수백 가지 기능)에 문제가 없어야하며, 예제에서 상호 작용 강도 레이블을 변경했습니다. 상호 작용이 부울 "예"또는 "아니오"인 경우 각 행의 첫 번째 필드로 (상호 작용 0없음) 또는 1(상호 작용 존재)를 사용하십시오.

달리는:

vw-varinfo -q AB -c --passes 20 prot.dat

가능한 모든 상호 작용 (이름 공간 AB출력 무시 )과 가중치를 산출합니다.

FeatureName        HashVal   MinVal   MaxVal    Weight   RelScore
A^k                 220268     0.00     1.00   +0.3804    100.00%
A^k^B^k             254241     0.00     0.00   +0.3804    100.00%
A^k^B^m              93047     0.00     0.00   +0.3804    100.00%
B^k                 178789     0.00     1.00   +0.1011     26.58%
B^m                  17595     0.00     1.00   +0.1011     26.58%
[... trimmed for brevity ...]
A^m^B^m             141879     0.00     0.00   +0.0000      0.00%
Constant            116060     0.00     0.00   +0.1515      0.00%
A^b                 139167     0.00     1.00   -0.0641    -16.86%
A^b^B^k             204424     0.00     0.00   -0.1233    -32.43%
A^b^B^m              43230     0.00     0.00   -0.1233    -32.43%

이 데이터에서 일반적으로 상호 작용에 가장 큰 영향을 미치는 요인은 1) k기능 의 단순한 존재 , 2) k자체와 상호 작용 하는 기능 (단백질에 있다고 가정) 및 3)과 k상호 작용하는 기능 m입니다. 가장 약한 (단백질 상호 작용에 대한 부정적인 기여)은 b특징과 쌍을 이루는 m특징입니다.

다음은 vw-varinfo에 대한 하우투 페이지입니다

vowpal wabbit은 소스 (위 링크 참조)에서 빌드하며 Linux (및 기타 유닉스), Mac OS-X 및 Windows에서 실행됩니다.

HTH


이것이 약한 상호 작용을 제거하면 모델 정확도가 향상된다는 것을 직접 암시합니까?
matt

반드시 그런 것은 아닙니다. 더 많은 기능을 배울 때 정확도가 높아질 수 있습니다. 그러나 기능이 실제로 노이즈이거나 일반화하기에는 너무 드물면 기능이 작동 할 수 있습니다. 대부분의 실제 모델에는 약간의 오차 성분이 있습니다. 더 많은 데이터는 모델의 정확성에 대한 신뢰를 높일 수 있습니다.
arielf

1

단백질 상호 작용 네트워크는 무 방향 그래프로 표현 될 수 있으며, 단백질이 노드를 형성하고 상호 작용이 에지를 형성합니다. 단백질 상호 작용이 이진 현상 인 경우 가장자리도 이진 (0 또는 1)입니다. 그렇지 않으면 실수를 사용할 수 있습니다. 이 그래프를 정사각 행렬, 특히 대칭으로 숫자로 나타낼 수 있습니다. 가장 중요한 특징을 찾으려면 교호 작용 행렬의 고유 벡터를 따라 가장 큰 투영을 갖는 특징을 유지할 수 있습니다.


단백질은 하나 이상의 단백질과 상호 작용할 수 있으므로 그래프는 이진이 아닐 수 있습니다. 여러 모서리에 대한 확장이 있습니까?
Anish

그것은 내가 이진이라는 의미가 아닙니다. 문제는 상호 작용 의 강도 를 포착 할지 또는 존재 여부를 모델링하기에 충분한 지 여부입니다. 물론, 그래프 모델은 모든 단백질 쌍 간의 상호 작용을 설명 할 수 있습니다.
Emre

흠 .. 단백질 상호 작용을위한 정사각형 행렬을 만들도록 요청할 때 행렬의 값은 단백질 간의 상호 작용 수를 나타냅니다. 그러나 여기서 기능을 사용하는 위치는 알 수 없습니다. 그것에 대해 자세히 설명해 주시겠습니까?
Anish

고유 벡터는 특징 공간에서 단백질의 선형 조합입니다.
Emre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.