clustalw.c

来自「在任务级并行平台P2HP上」· C语言 代码 · 共 149 行

C
149
字号
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef MAC
#include <console.h>
#endif
#include <jni.h>
#include <windows.h>
#include "clustalw.h"
#include "hpc_application_Palign.h"

/*
*	Prototypes
*/

#ifdef MAC
extern int ccommand(char ***);
#endif

extern void *ckalloc(size_t);
extern void init_amenu(void);
extern void init_interface(void);
extern void init_matrix(void);
extern void fill_chartab(void);
extern void parse_params(Boolean);
extern void main_menu(void);

/*
*	Global variables
*/
double **tmat;

char revision_level[] = "W (1.83)";  /* JULIE  feb 2001*/

Boolean interactive=FALSE;

#ifdef MSDOS
char *help_file_name = "clustalw.hlp";
#else
char *help_file_name = "clustalw_help";
#endif

sint max_names; /* maximum length of names in current alignment file */

float           gap_open,      gap_extend;
float           pw_go_penalty, pw_ge_penalty;

FILE *tree;
FILE *clustal_outfile, *gcg_outfile, *nbrf_outfile, *phylip_outfile,
*gde_outfile, *nexus_outfile;
FILE *fasta_outfile; /* Ramu */

sint  *seqlen_array;
sint max_aln_length;
short usermat[NUMRES][NUMRES], pw_usermat[NUMRES][NUMRES];
short def_aa_xref[NUMRES+1], aa_xref[NUMRES+1], pw_aa_xref[NUMRES+1];
short userdnamat[NUMRES][NUMRES], pw_userdnamat[NUMRES][NUMRES];
short def_dna_xref[NUMRES+1], dna_xref[NUMRES+1], pw_dna_xref[NUMRES+1];
sint nseqs;
sint nsets;
sint *output_index;
sint **sets;
sint *seq_weight;
sint max_aa;
sint gap_pos1;
sint gap_pos2;
sint mat_avscore;
sint profile_no;

Boolean usemenu;
Boolean dnaflag;
Boolean distance_tree;

char  **seq_array;
char **names,**titles;
char **args;
char seqname[FILENAMELEN+1];

char *gap_penalty_mask1 = NULL, *gap_penalty_mask2 = NULL;
char *sec_struct_mask1 = NULL, *sec_struct_mask2 = NULL;
sint struct_penalties;
char *ss_name1 = NULL, *ss_name2 = NULL;

Boolean user_series = FALSE;
UserMatSeries matseries;
short usermatseries[MAXMAT][NUMRES][NUMRES];
short aa_xrefseries[MAXMAT][NUMRES+1];



/*********************
Modified by jf.
2005.1.20
*********************/
JNIEXPORT void JNICALL Java_hpc_application_Palign_callAlignment
(JNIEnv * env, jobject jo, jstring datapath, jstring resultpath, jstring paramfilename, jstring datafilename)
{
	//sint i;
//int main(int argc, char **argv)
//{	
	const char *dataPath,* resultPath,  *paramFileName, *dataFileName;
	/***dataPath="D:\\alignmentfolder\\subTaskData\\4\\";
	resultPath="D:\\alignmentfolder\\result\\result";
	paramFileName="param.txt";
	dataFileName="sequence.txt";***/
	/*#ifdef MAC
	argc=ccommand(&argv);
#endif*/
	//fileName=env->GetStringUTFChars(str_fileName,NULL);
    dataPath=(*env)->GetStringUTFChars(env,datapath,NULL);
	resultPath=(*env)->GetStringUTFChars(env,resultpath,NULL);
	paramFileName=(*env)->GetStringUTFChars(env,paramfilename,NULL);
	dataFileName=(*env)->GetStringUTFChars(env,datafilename,NULL);
    init_amenu();
    init_interface();
    init_matrix();
	
	fill_chartab();
	
	/*if(argc>1) {
	args = (char **)ckalloc(argc * sizeof(char *));
	
	  for(i=1;i<argc;++i) 
	  {
	  args[i-1]=(char *)ckalloc((strlen(argv[i])+1) * sizeof(char));
	  strcpy(args[i-1],argv[i]);
	  }
	  usemenu=FALSE;
	  parse_params(FALSE);
	  
		for(i=0;i<argc-1;i++) 
		ckfree(args[i]);
		ckfree(args);
}*/
	usemenu=TRUE;
	interactive=TRUE;
	
	main_menu(dataPath,resultPath,paramFileName,dataFileName);
	
	(*env)->ReleaseStringUTFChars(env,datapath,dataPath);
	(*env)->ReleaseStringUTFChars(env,resultpath,resultPath);
	(*env)->ReleaseStringUTFChars(env,paramfilename,paramFileName);
	(*env)->ReleaseStringUTFChars(env,datafilename,dataFileName);

	return;
	//exit(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?