RADAR-开源

  • v6_933894
    了解作者
  • 520.7KB
    文件大小
  • 文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-14 19:37
    上传日期
RADAR代表蛋白质序列中重复序列的快速自动检测和比对。 RADAR可以识别间隙近似的重复序列以及涉及许多不同类型重复序列的复杂重复序列体系结构。 雷达已移至github(https://github.com/AndreasHeger/radar)
radar-1.1.5.tar.gz
  • radar-1.1.5
  • scripts
  • Makefile.in
    8.9KB
  • Makefile.am
    594B
  • radar.py
    7.6KB
  • src
  • Makefile.in
    14.7KB
  • counts2profile.c
    1.5KB
  • align_tools.h
    2.2KB
  • align.h
    2.7KB
  • gps_align.c
    9.7KB
  • dotalign.c
    11.7KB
  • toolbox.c
    3.1KB
  • main.c
    4KB
  • align_tools.c
    17.9KB
  • radar.c
    67.5KB
  • toolbox.h
    1.2KB
  • lps_align.c
    5.8KB
  • dotalign_tube.c
    11.8KB
  • register.c
    38.2KB
  • Makefile.am
    803B
  • repeatstatistics.c
    3.7KB
  • align_io.c
    11.9KB
  • getmaxdiag.c
    10.5KB
  • align_lib.h
    1.8KB
  • radar.h
    2.7KB
  • fasta2dot.c
    17.6KB
  • align_io.h
    1.5KB
  • pyradar
  • Makefile.in
    9KB
  • pyradar.h
    285B
  • pyradar.pyx
    454B
  • Makefile.am
    606B
  • example
  • Makefile.in
    9KB
  • finc.lfasta1
    716.4KB
  • finc.fasta
    2.2KB
  • Makefile.am
    603B
  • finc.seq
    2.2KB
  • finc.lfasta2
    803.9KB
  • finc.ma
    1.8MB
  • Makefile.in
    19.7KB
  • config.sub
    32.6KB
  • aclocal.m4
    31.9KB
  • configure
    149.4KB
  • COPYING
    17.6KB
  • ChangeLog
    92B
  • setup.py
    1.6KB
  • AUTHORS
    126B
  • THANKS
    284B
  • config.guess
    43.8KB
  • configure.in
    2.1KB
  • depcomp
    17.4KB
  • Makefile.am
    656B
  • INSTALL
    7.7KB
  • ez_setup.py
    9.5KB
  • missing
    10.9KB
  • NEWS
    836B
  • install-sh
    13.3KB
  • config.h.in
    628B
  • README
    2.7KB
内容介绍
/* RADAR - a program to rapidly detect and align repeats in protein sequences Copyright (C) 2000 Andreas Heger This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ########################################################################## $Id: radar.c,v 1.2 2005/02/17 23:13:32 aheger Exp $ ChangeLog: 15.3.2001 heger Added to repository Fixed bug in AlignBestWindow => origdots is copied 30.9.2003 heger General overhaul. Removed some parameters. Deduce length of sequence/mali from file. */ #include "radar.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <getopt.h> #include <math.h> /* Version 7: -> collect further instances of repeats by simple alignment without wrapping -> reduce diagonal by mapping dots for bestwindow, but not for alignment -> calculate register, align repeats, and then calculate register again -> reduce profile -> if you do not find a bestwindow, look at maxdiagonals best diagonals */ /* Version13: use FastaFiles2DotsSaveSpace instead of FastaFiles2DotsCorrect, somehow not equivalent results to 12, check later */ /* Version 15a: release for Rodrigo, changed output */ /* gets: ma and fasta-file and sequence */ /* global exported variables - used in main.c */ VERBOSITY verbose = LL0; char globalresult[MAXRESULTSIZE]; /* global parameters */ static int mindiag = 15; /* minimum distance for dots from diagonal */ static int maxlevels = 1; /* max level for sampling diagonals */ static int maxdiagonals = 3; /* max level for sampling diagonals */ static int diagwidth = 1; /* width of window for sampling of diagonals */ static int scalefactor = 20; /* scalefactor for determining the width of tube in tubalignment */ static int minsamplediag = 3; /* minimum half-width of tube for tube alignment */ static int minlrepeat = 10; /* minimum repeat length */ static int minndots = 20; /* minimum number of dots needed for alignment */ static int splitdistance = 50; /* residue-separation, above which two repeats are regarded as distinct */ static int shuffle_iterations = 100; /* number of iterations for shuffling sequences */ static CALCTYPE selectfactor = 0.25; /* cutoff, that decides, which repeats are outliers and which are not; 25% of mean score */ static CALCTYPE mintubescore = 10; /* minimum score for tube alignment */ static CALCTYPE minswscore = 10; /* minimum score for wrapped alignment */ static CALCTYPE cutoffscore = 20; /* cutoff in PruneMA and SelectRepeats for keeping repeats*/ static CALCTYPE mincollectscore = 20; /* minimum score for collecting repeats */ static CALCTYPE mindiagscore = 1; /* minimum score for diagonal to be kept (10 is too high)*/ static CALCTYPE minzscore = 6.0; /* minimum zscore for keeping repeats , default: 6.0*/ static CALCTYPE reducefactor = 0.75; /* maximum length of reduced repeat, i.e. maximum 3/4 of original repeat-length */ /* static CALCTYPE increasefactor = 1.5; minimum number of repeats more for reduction, i.e. keep alignment, if at least 1 1/2 more than original repeats */ /* gap penalties */ /* for reducing diagonal */ static CALCTYPE rd_gapopen_i = -4; static CALCTYPE rd_gapelon_i = -0.4; static CALCTYPE rd_gapopen_j = -4; static CALCTYPE rd_gapelon_j = -0.4; /* for register, look there as well */ static CALCTYPE rg_gapopen = -4; static CALCTYPE rg_gapelon = -0.4; /* for first dotalignment */ static CALCTYPE gapopen_i = -4; /* gap penalties for bestwindow/repeat */ static CALCTYPE gapelon_i = -0.4; static CALCTYPE gapopen_j = -4; /* gap penalties for sequence */ static CALCTYPE gapelon_j = -0.4; /* for collecting repeats */ static CALCTYPE hp_gapopen_i = -4; /* gap penalties for bestwindow/repeat */ static CALCTYPE hp_gapelon_i = -0.4; static CALCTYPE hp_gapopen_j = -4; /* gap penalties for sequence */ static CALCTYPE hp_gapelon_j = -0.4; /* for bestwindow */ static CALCTYPE bw_gapopen_i = -4; /* gap penalties for profile */ static CALCTYPE bw_gapelon_i = -0.4; static CALCTYPE bw_gapopen_j = -4; /* gap penalties for sequence */ static CALCTYPE bw_gapelon_j = -0.4; static int iteration; #define GAPCHAR '.'; /*--------------end of parameter parsing -----------------------------------*/ void radar_setLogLevel(int loglevel) { verbose = loglevel; } /*--------------------------------------------------------------------------*/ void DumpAlignment( ali, title ) ALI * ali; const char * title; { int i; printf("---------- %s - START ---------------\n", title); for (i = 0; i <= ali->lastindex; i++) { printf("|%5i%5i%5.2f", ali->align_i[i], ali->align_j[i], ali->align_s[i]); } printf("\n---------- %s - END ----------------\n", title); } void DumpArrayAlignment( ali, title ) ARRAYALI * ali; const char *title; { int i; printf("---------- %s - START ---------------\n", title); for (i = 1; i <= ali->length; i++) { printf("|%5i%5i%5.2f", i, ali->ali[i], ali->scores[i]); } printf("\n---------- %s - END ----------------\n", title); } /* memory has to be available for the new dots */ void AddDiagonal ( dots, profile, frequencies, lprofile, sequence, lsequence ) DOTS *dots; PROFILECOLUMN *profile; FREQUENCYCOLUMN *frequencies; int lprofile; SEQTYPE *sequence; int lsequence; { int i, x; int y = dots->ndots; for (i = 0; i < lsequence; i++) { x = i+1; dots->row[y] = x; dots->col[y] = x; dots->score[y] = ProfileScore( profile[x], frequencies[x], profile[x], frequencies[x]); y++; } dots->ndotsdiagonal = y; } SEQTYPE *AllocateSequenceMemory( size ) int size; { SEQTYPE * seq = Malloc( sizeof( SEQTYPE) * (size + 1)); return seq; } void FreeSequenceMemory( seq ) SEQTYPE * seq; { free( seq ); } ALI *AllocateAliMemory ( size) int size; { ALI * ali; ali = Malloc( sizeof( ALI )); ali->align_i = Malloc ( size * sizeof(int)); ali->align_j = Malloc ( size * sizeof(int)); ali->align_s = Malloc ( size * sizeof(CALCTYPE)); return ali; } ARRAYALI *AllocateArrayAliMemory ( size) int size; { ARRAYALI * ali; int i; ali = Malloc( sizeof( ARRAYALI )); ali->ali = Malloc ( (size + 1) * sizeof(int)); ali->scores = Malloc ( (size + 1) * sizeof(CALCTYPE)); for (i = 0; i <= size; i++) { ali->ali[i] = 0; ali->scores[i] = 0; } ali->length = size; return ali; } void FreeArrayAliMemory( a ) ARRAYALI *a ; { free( a->ali ); free( a->scores ); free( a ); } COUNTCOLUMN *AllocateCountsMemory ( size ) int size; { COUNTCOLUMN *c = (COUNTCOLUMN*)Malloc( ( size + 1) * sizeof( COUNTCOLUMN )); int i, j; for (i = 1; i <= size; i++ ) for (j = 0; j < PROFILEWIDTH; j++) c[i][j] = 0; return (c); } FREQUENCYCOLUMN *AllocateFrequenciesMemory ( size ) int size; { FREQUENCYCOLUMN *c = (FREQUENCYCOLUMN*)Malloc( ( size + 1) * sizeof( FREQUENCYCOLUMN )); int i, j; for (i = 1; i <= size; i++ ) for (j = 0; j < PROFILEWIDTH; j++) c[i][j] = 0; return (c); } PROFILECOLUMN *AllocateProfileMemory ( size ) int size; { PROFILECOLUMN *c = (PROFILECOLUMN*)Malloc( ( size + 1) * sizeof( PROFILECOLUMN )); int i, j; for (i = 1; i <= size; i++ ) for (j = 0; j < PROFILEWIDTH; j++) c
评论
    相关推荐