2014-03-05 2 views
1
내가 특정 기준 다음 내 문자열 패치 점수 필요

사용하여 펄 코딩하는 방법 : 매장 또는 E 노출에 대한 위해 B - 임계 값 :서브 루틴

1 열을 25 %
열 2 : 아미노산
열 3 : 시퀀스 이름
칼럼 4 : 아미노산 번호
열 5 : 상대 표면 접근성 - RSA
열 6 : 절대 표면 접근성
칼럼 7 : RSA 예측 용 Z 끼움 점수
C olumn 8 : 대한 확률 알파 - 헬릭스
열 9 : 베타 - 가닥
열 (10)에 대한 확률 :

E K 132L_A_PDBID_CHAIN_SEQUENCE  1 0.716 147.261 1.150 0.016 0.005 0.979 
E V 132L_A_PDBID_CHAIN_SEQUENCE  2 0.514 79.033 1.252 0.191 0.086 0.723 
B F 132L_A_PDBID_CHAIN_SEQUENCE  3 0.134 26.793 -0.325 0.191 0.086 0.723 
E G 132L_A_PDBID_CHAIN_SEQUENCE  4 0.570 44.835 1.012 0.354 0.048 0.598 

가 기억 코일

에 대한 확률, 마지막 세 개의 열이 나선/시트/코일 중 하나의 확률이다. ......

그래서 먼저 특정 잔류 물이 헬릭스/시트/코일에 속하는지 여부를 몇 가지 기준 기능을 사용하여 분류해야합니다. 지난 3 열에서 확률 ... 그런

한 우리는

내 점수 기준

이있다 ...... 우리는 시퀀스 (10)의 패치에 침입 점수를 필요 구조적 환경을 얻을 :

EXPOSED  = 1; # +1 for letters that exposed 
BURIED  = 0; # 0 for letters that are buried 
COIL  = 3; # +3 for any coil 
HELIX  = 2; # +2 for any helix 
SHEET  = 1; # +1 for any sheet 
아래의 링크를 10 ~ 11

http://pastebin.com/GeW5AKF3

의 패치에 내가 facin하고 문제를 문자열을 깨는입니다

g는 응답을 기다리는 ....... ...... 도움을

덕분에 나는 위의 링크에서와 같이 수평 패치로 문자열에 갈라했지만 파일이 수직으로 정렬되어 있다는 것입니다

+0

지금까지 시도 무엇 무엇을 그것은 했는가 또는하지 않았는가? Stackoverflow는 코드 작성 서비스가 아닙니다. 작성한 코드를 보여주고 해당 코드의 문제점을 설명하십시오. – AdrianHHH

+0

링크는 위에 언급되어 있습니다 – user3379869

+0

Stackoverflow 질문은 자체 포함되어야합니다. 정보가 사라질 수있는 다른 사이트에 대한 링크는 앞으로는 쓸모가 없습니다. Pastebin FAQ는 "Pastebin"이라고 말합니다.com은 특정 기간 동안 텍스트를 저장할 수있는 웹 사이트이므로 항목의 수명이 제한된다는 것을 알려줍니다. 첫 번째 의견을 다시 읽으십시오. – AdrianHHH

답변

0

이것은 당신을 가야한다 :

open my $fh, "<", "input.txt"; 

my @data; 
while(my $line = <$fh>) # If we got line from file 
{ 
    chomp $line; # remove carraigereturn/linefeed 
    my @parts = split /\s+/, $line; # split based on values seperated by one or more spaces 
    push @data, [@parts] # Add array of split parts to data array 
} 

Thats는 모든 것을 @data에 넣는다. 다음과 같이 액세스 할 수 있습니다.

# now access whatever you want... 
# example: line 3 column 6 (perl arrays start from 0 not 1): 
print $data[2][5] . "\n"; #prints 26.793 

# line 4 column 2: 
print $data[3][1] . "\n"; #prints G 

다음과 같이 정렬 할 수 있습니다. (예 종류 다음 COL5에 의해 COL1 (RSA) :이 같은

@data = sort { if ($a->[0] eq $b->[0]) { $a->[4] <=> $b->[4] } else { $a->[0] cmp $b->[0] } } @data; 

그리고 출력 데이터의 :

foreach my $line (@data) 
{ 
    foreach my $field (@$line) 
    { 
     print $field."\t"; 
    } 
    print "\n"; 
} 

출력은 다음과 같습니다

B F 132L_A_PDBID_CHAIN_SEQUENCE 3 0.134 26.793 -0.325 0.191 0.086 0.723 
E V 132L_A_PDBID_CHAIN_SEQUENCE 2 0.514 79.033 1.252 0.191 0.086 0.723 
E G 132L_A_PDBID_CHAIN_SEQUENCE 4 0.570 44.835 1.012 0.354 0.048 0.598 
E K 132L_A_PDBID_CHAIN_SEQUENCE 1 0.716 147.261 1.150 0.016 0.005 0.979