File: dnawise.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 (82 lines) | stat: -rw-r--r-- 1,968 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
#include "dnahmmdp.h"
#include "version.h"
#include "seqaligndisplay.h"

char * program_name = "dnawise";


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 query_alignment target_sequence\n",program_name);

  show_help_DPRunImpl(ofp);

  show_standard_options(ofp);

}




int main(int argc,char ** argv)
{
  DPRunImpl * dpri = NULL;

  SeqAlign * query;
  Sequence * target;
  
  ComplexSequence * cseq;
  ComplexSequenceEvalSet * cses;

  DnaHmmProb * dhp;
  DnaHmmScore * dhs;
  RandomModelDNA * rmd;

  PackAln * pal;
  AlnBlock * alb;

  dpri      = new_DPRunImpl_from_argv(&argc,argv);


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

  query = read_selex_SeqAlign_file(argv[1]);
  target = read_fasta_file_Sequence(argv[2]);

  assert(query);
  assert(target);

  cses = default_DNA_ComplexSequenceEvalSet();
  dhp  = new_DnaHmmProb_from_SeqAlign_ungapped(query,1.0);
  rmd  = RandomModelDNA_std();
  cseq = new_ComplexSequence(target,cses);

  make_consensus_DnaHmmProb(dhp);

  fold_RandomModelDNA_DnaHmmProb(dhp,rmd,1.0);

  dhs = DnaHmmScore_from_DnaHmmProb(dhp);
  
  pal = PackAln_bestmemory_DnaHmmMatrix(dhs,cseq,Probability2Score(1.0),NULL,dpri);

  alb = convert_PackAln_to_AlnBlock_DnaHmmMatrix(pal);

  write_pretty_str_align(alb,"align",dhp->consensus,target->name,target->seq,12,50,stdout);


}