File: fivestarscan.c

package info (click to toggle)
wise 2.4.1-21
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 27,140 kB
  • sloc: ansic: 276,365; makefile: 1,003; perl: 886; lex: 93; yacc: 81; sh: 24
file content (122 lines) | stat: -rw-r--r-- 2,837 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#define WISE2_CROSS_HMMER2
#include "wise2xhmmer2.h"


#include "fivestate.h"
#include "version.h"
#include "seqaligndisplay.h"
#include "hitlist.h"



char * program_name = "fivestarscan";

void show_version(FILE * ofp)
{
  fprintf(ofp,"%s\nVersion: %s\nReleased: %s\nCompiled: %s\n",program_name,VERSION_NUMBER,RELEASE_DAY,COMPILE_DATE);
  fprintf(ofp,"\nThis program is freely distributed under a GNU General Public License\n");
  fprintf(ofp,"The source code is copyright (c) EMBL and others\n");
  fprintf(ofp,"There is no warranty, implied or otherwise on the performance of this program\n");
  fprintf(ofp,"For more information read the GNULICENSE file in the distribution\n\n");
  fprintf(ofp,"Credits: Ewan Birney <birney@ebi.ac.uk>\n");
  exit(63);   
  
}

void show_help(FILE * ofp)
{
  fprintf(ofp,"%s fivestar-directory protein-file-fasta\n",program_name);

  fprintf(ofp,"  -ga     gathering cutoff (bits)\n");
  
  show_help_DPRunImpl(ofp);

  show_help_HitListOutputImpl(ofp);

  show_standard_options(ofp);
  
}

int main(int argc,char **argv)
{
  FiveStateFrameSet * frame;
  
  FiveStateModel * fsm;
  FiveStateScore * fss;

  RandomModel * rm;

  double gathering_cutoff = 0.0;
  double bits;
  int i;

  FILE * seqin;
  Sequence * seq;
  
  DPRunImpl * dpri;

  HitList * hl;
  HitPair * hp;
  HitAln  * ha;
  HitListOutputImpl * hloi;

  PackAln * pal;
  AlnBlock * alb;

  ComplexSequence * cseq;
  ComplexSequenceEvalSet * cses;
  

  strip_out_float_argument(&argc,argv,"ga",&gathering_cutoff);

  hloi = new_HitListOutputImpl_from_argv(&argc,argv);

  strip_out_standard_options(&argc,argv,show_help,show_version);
  if( argc != 3 ) {
    show_help(stdout);
    exit(12);
  }

  rm = default_RandomModel();

  frame = read_FiveStateFrameSet_file(argv[1],"block.str");
  if( frame == NULL ) 
    fatal("Unable to make FiveStateModel from context %s, block.str file",argv[1]);
  fsm   = FiveStateModel_from_FiveStateFrameSet(frame);
  /*    dump_FiveStateModel(fsm,stdout); */
  fsm->name = stringalloc(argv[1]);
  
  fold_RandomModel_into_FiveStateModel(fsm,rm);  

  /* converts probabilities to integers for calculation */
  fss = FiveStateScore_from_FiveStateModel(fsm);
  
  seqin = fopen(argv[2],"r");
  if( seqin == NULL ) {
    fatal("Unable to open %s",argv[2]);
  }

  cses = default_aminoacid_ComplexSequenceEvalSet();

  hl = HitList_alloc_std();

  while( (seq = read_fasta_Sequence(seqin)) ) {
    cseq = new_ComplexSequence(seq,cses);

    pal = PackAln_bestmemory_FiveStateProtein(fss,cseq,NULL,dpri);
    alb = convert_PackAln_to_AlnBlock_FiveStateProtein(pal);

    hp = HitPair_alloc_std();
    add_HitList(hl,hp);

    hp->query = seq;
    hp->bit_score = Score2Bits(pal->score);
    hp->raw_score = pal->score;
    
    
  }

  show_HitList_HitListOutputImpl(hloi,hl,stdout);

  return 0;
}