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


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

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

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.