각기 다른 유기체에서 시퀀스 길이 가져 오기-genbank 파일

프라 사브

다른 유기체 유형을 포함하는 genbank 파일에서 최대, 최소 및 평균 길이를 얻고 싶습니다. 모든 유기체에 대해 이것을 얻고 싶습니다.

예:

Organism: Homo sapiens
average length = 160 
shortest length = 20 | id of shortest seq
longest length = 500 | id of longest seq

Organism: Caenorhabditis elegans
average length = 140 
shortest length = 40 | id of shortest seq
longest length = 300 | id of longest seq

길이는 알아 냈지만 유기체별로 구분할 수 없습니다

use strict;
use warnings;

print "enter file path: ";
my $filename = <>;
chomp ($filename);
open(IN, $filename) or die "\n error opening file \n;/\n";

$/ = "//";

my %organisms ;
while (my $block = <IN>)  {
    next if $block =~ /^\s*\n\s*$/;
    my ($definition , $sequence) = split "ORIGIN", $block; 

    my $accession; 
    $definition =~ m/(ACCESSION.+[0-9])/x
        ? $accession = $1
        : die "No ACCESSION";

    my $organism;
    $definition =~ m/(ORGANISM\s+.+\n)/x
        ? $organism = $1
        : die "No ORGANISM";


    $sequence =~ s/[\d\n\s\t\/]//g;
    $organisms{ $sequence } = [ $organism, $accession ];
    }

my $sum = 0;
foreach my $sequence( keys %organisms) {

    my $current_len = length($sequence);
         $sum += $current_len;
};
my $number_seqs = scalar keys %organisms;
my $average = ($sum / $number_seqs);
print "average length = $average \n";

my @sorted_keys = sort { length $a  <=>  length $b } keys %organisms ;
my $shortest = $sorted_keys[0];
my $longest  = $sorted_keys[-1];
my $short = length $shortest;
my $long = length $longest;
my $short_id = $organisms{$shortest}->[1];
my $long_id = $organisms{$longest}->[1];
my $short_type = $organisms{$shortest}->[0];
my $long_type = $organisms{$longest}->[0];

print "shortest length = $short | $short_id | $short_type\n";
print "longest length = $long | $long_id | $long_type\n";


exit;

각 유기체의 길이를 인쇄하려면 어느 부분을 변경해야합니까?

입력 예 :

LOCUS       NM_001112            40 bp    mRNA    linear   PRI 20-AP
DEFINITION  Homo sapiens transcript variant 5, mRNA.
ACCESSION   NM_001112
KEYWORDS    RefSeq.
SOURCE      Homo sapiens (human)
  ORGANISM  Homo sapiens
ORIGIN      
        1 actgggcggc ccttagaccc
       //
LOCUS       NM_854               212 bp    mRNA    linear   PRI 20-AP
DEFINITION  Homo sapiens transcript variant 1, mRNA.
ACCESSION   NM_854
KEYWORDS    RefSeq.
SOURCE      Homo sapiens (human)
  ORGANISM  Homo sapiens
ORIGIN      
        1 gggcaaaag aagcaggtca cacagcctgt ttcctgtttt caaacgggga acttagaaag

//
LOCUS       AW057463                 469 bp    mRNA    linear   EST 29-SE
DEFINITION  ca03d09.x1 C elegans fem3 Q23 S1 Caenorhabditis elegans cDNA 3'
ACCESSION   AW057463
VERSION     AW057463.1  GI:5933102
DBLINK      BioSample: LIBEST_002392
KEYWORDS    EST.
SOURCE      Caenorhabditis elegans
  ORGANISM  Caenorhabditis elegans
ORIGIN      
        1 ttttactcaa aactatctat ccaagttaat cagtagtgtt agttctagtt aagttattaa
       61 ggcgcacggt ctgtctcctt gcttcttctc tttgtatccc ctttctcctt tttcaaaact
      121 tcactttcat caataattgg ttctttagaa tacagttttc caatttccac gtactctctt
      181 ctcttccgat ccttgtcaaa ctttttcttc gggagctcat cttctggaac tactttcaca
//
LOCUS       AW04463                 259 bp    mRNA    linear   EST 14-SE
DEFINITION  ca02d86.x1 C elegans fem6 S12 Q3 Caenorhabditis elegans cDNA 3'
ACCESSION   AW04463
VERSION     AW04463.1  GI:90872
DBLINK      BioSample: LIBEST_004372
KEYWORDS    EST.
SOURCE      Caenorhabditis elegans
  ORGANISM  Caenorhabditis elegans
ORIGIN      
      241 tttttcgatg gaaccaaacg ggaacgagtt ggcttttcca ccaaaagatt agcgtactcc
      301 gaactgtatt tccccttctt tttcttttca agaggaacat tttctcgttg agtatcatcg
      361 tcctccaaac tttgttgagt agtcatggac tgggtccgag agaattcaac ggtaggcatg
      421 gaacctttgc tcttgtcgtc gtttgccttt ggtgcctttc ccttttgaa
//
Håkon Hægland

각 유기체의 길이를 인쇄하려면 어느 부분을 변경해야합니까?

프로그램의 많은 부분을 변경해야한다고 생각합니다 (주로 시퀀스를 해시 키로 사용하는 논리를 변경하여 대신 유기체를 해시 키로 사용합니다). 다음은 제안입니다.

use feature qw(say);
use strict;
use warnings;

my $filename = 'datafile.txt';
chomp ($filename);
open(IN, $filename) or die "\n error opening file \n;/\n";

$/ = "//";

my %organisms ;
while (my $block = <IN>)  {
    next if $block =~ /^\s*\n\s*$/;
    my ($definition , $sequence) = split "ORIGIN", $block; 

    my $accession; 
    $definition =~ m/ACCESSION\s*(\S+)/x
        ? $accession = $1
        : die "No ACCESSION";

    my $organism;
    $definition =~ m/ORGANISM\s*(\S.+)\n/x
        ? $organism = $1
        : die "No ORGANISM";

    $sequence =~ s/[\d\n\s\t\/]//g;
    push @{ $organisms{ $organism }{info} }, [ $sequence, $accession ];
}

for my $organism ( keys %organisms ) {
    say "Organism: $organism";
    my $info = $organisms{ $organism }{info};
    my $sum = 0;
    map { $sum += length $_->[0] } @$info;
    my ( $min_len, $min_id, $max_len, $max_id ) = map { length $_->[0], $_->[1] }
      (sort { length $a->[0] <=>  length $b->[0]} @$info)[0,-1];

    say "average length = " .  $sum / ( scalar @$info );
    say "shortest length = $min_len | $min_id";
    say "longest length = $max_len | $max_id";
    say "";
}

출력은 다음과 같습니다.

Organism: Homo sapiens
average length = 39.5
shortest length = 20 | NM_001112
longest length = 59 | NM_854

Organism: Caenorhabditis elegans
average length = 234.5
shortest length = 229 | AW04463
longest length = 240 | AW057463

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java 가져 오기 및 정적 가져 오기 시퀀스 순서에 따라 컴파일 결과가 다른 이유는 무엇입니까?

분류에서Dev

PaddingFIFOQueue에서 동적 시퀀스 길이 가져 오기

분류에서Dev

파이썬 파일에서 데이터 가져 오기 및 날짜 시퀀스 가져 오기

분류에서Dev

파이썬, 좌표로 DAS에서 시퀀스 가져 오기

분류에서Dev

해시에서 fasta 파일 시퀀스 가져 오기

분류에서Dev

SAS : 텍스트 파일 가져 오기에서 변수를 시계열로 변환-길이가 32.767보다 큼

분류에서Dev

다른 파이썬 파일에서 변수 가져 오기

분류에서Dev

시간 좌표 길이가 다른 여러 파일 열기

분류에서Dev

각 줄에 다른 수의 열이있는 Python 가져 오기 텍스트 파일

분류에서Dev

다른 PHP 페이지에서 파일 이름 가져 오기

분류에서Dev

다른 Excel 파일에서 데이터 가져 오기

분류에서Dev

다른 .cpp 파일에서 데이터 가져 오기

분류에서Dev

다른 파일 Python에서 클래스 변수 가져 오기

분류에서Dev

다른 파일에서 typescript 클래스 가져 오기

분류에서Dev

길이가 다른 시퀀스로 for 루프의 배열 채우기

분류에서Dev

다른 프로젝트 protobuf 파일에서 메시지 유형 가져 오기

분류에서Dev

한 클래스에서 다른 클래스로 배열 길이 가져 오기

분류에서Dev

멀티 바이트 UTF-8 시퀀스의 길이 가져 오기

분류에서Dev

한 파일에서 다른 파일로 데이터 가져 오기 (Bash)-웹 스크랩 핑

분류에서Dev

다른 TS 파일에서 typescript 가져 오기 기능-파일이 모듈 오류가 아닙니다.

분류에서Dev

단일 행의 시퀀스에 대한 다음 2 개 값 가져 오기

분류에서Dev

파일 확장자가 다른 Magmi 가져 오기 이미지

분류에서Dev

다른 파이썬 파일에서 tf.train.Saver 가져 오기

분류에서Dev

한 Javascript 파일에서 다른 파일로 JSON 개체 가져 오기

분류에서Dev

다른 컴퓨터에서 bcache 디스크에서 파일 가져 오기

분류에서Dev

힘내 가져 오기 / 리베이스 / 푸시 시퀀스

분류에서Dev

다른 시작일에서 일주일 가져 오기

분류에서Dev

TestCafe : 다른 파일에서 현재 픽스쳐로 테스트 가져 오기

분류에서Dev

'파일 가져 오기 클래스에서'는 다른 클래스도 가져 오려고합니다.

Related 관련 기사

  1. 1

    Java 가져 오기 및 정적 가져 오기 시퀀스 순서에 따라 컴파일 결과가 다른 이유는 무엇입니까?

  2. 2

    PaddingFIFOQueue에서 동적 시퀀스 길이 가져 오기

  3. 3

    파이썬 파일에서 데이터 가져 오기 및 날짜 시퀀스 가져 오기

  4. 4

    파이썬, 좌표로 DAS에서 시퀀스 가져 오기

  5. 5

    해시에서 fasta 파일 시퀀스 가져 오기

  6. 6

    SAS : 텍스트 파일 가져 오기에서 변수를 시계열로 변환-길이가 32.767보다 큼

  7. 7

    다른 파이썬 파일에서 변수 가져 오기

  8. 8

    시간 좌표 길이가 다른 여러 파일 열기

  9. 9

    각 줄에 다른 수의 열이있는 Python 가져 오기 텍스트 파일

  10. 10

    다른 PHP 페이지에서 파일 이름 가져 오기

  11. 11

    다른 Excel 파일에서 데이터 가져 오기

  12. 12

    다른 .cpp 파일에서 데이터 가져 오기

  13. 13

    다른 파일 Python에서 클래스 변수 가져 오기

  14. 14

    다른 파일에서 typescript 클래스 가져 오기

  15. 15

    길이가 다른 시퀀스로 for 루프의 배열 채우기

  16. 16

    다른 프로젝트 protobuf 파일에서 메시지 유형 가져 오기

  17. 17

    한 클래스에서 다른 클래스로 배열 길이 가져 오기

  18. 18

    멀티 바이트 UTF-8 시퀀스의 길이 가져 오기

  19. 19

    한 파일에서 다른 파일로 데이터 가져 오기 (Bash)-웹 스크랩 핑

  20. 20

    다른 TS 파일에서 typescript 가져 오기 기능-파일이 모듈 오류가 아닙니다.

  21. 21

    단일 행의 시퀀스에 대한 다음 2 개 값 가져 오기

  22. 22

    파일 확장자가 다른 Magmi 가져 오기 이미지

  23. 23

    다른 파이썬 파일에서 tf.train.Saver 가져 오기

  24. 24

    한 Javascript 파일에서 다른 파일로 JSON 개체 가져 오기

  25. 25

    다른 컴퓨터에서 bcache 디스크에서 파일 가져 오기

  26. 26

    힘내 가져 오기 / 리베이스 / 푸시 시퀀스

  27. 27

    다른 시작일에서 일주일 가져 오기

  28. 28

    TestCafe : 다른 파일에서 현재 픽스쳐로 테스트 가져 오기

  29. 29

    '파일 가져 오기 클래스에서'는 다른 클래스도 가져 오려고합니다.

뜨겁다태그

보관