This is a test version of Biostars. For the public version, visit https://www.biostars.org.
MCScanX not read input files

Dear all,

I want to run MCScanX but get the following output

Reading BLAST file and pre-processing

Generating BLAST list

0 matches imported (0 discarded)

0 pairwise comparisons

0 alignments generated

I prepared the blastp file eg

ENSAPLP00000004179.1 ENSGALP00000049077.1 58.333 408 129 6 225 627 83 454 6.77e-143

ENSAPLP00000004179.1 ENSGALP00000006137.5 74.085 355 13 3 41 395 55 330 1.44e-137

ENSAPLP00000004179.1 ENSGALP00000054156.1 100.000 105 0 0 523 627 1 105 1.16e-63

and gff file eg

APKB744031.1 ENSAPLP00000005679.1 75392 88641

APKB742734.1 ENSAPLP00000011909.1 1428474 1438892

GG2 ENSGALP00000053618.1 117714320 117748433

GG1 ENSGALP00000027958.4 195007141 195013426

Any suggestions as to what I've done wrong?

Thanks!

mcscanx synteny blastp gff

Did you try running the example files available at MCScanX site? If the examples work correctly and your files don't, compare them to find out what you did wrong.

Thanks! I tried some example files and they didn't work so it must be a problem with my installation.

I tried to install MCScanX. Xcode is installed. I got the following error

dissect_multiple_alignment.cc:252:17: error: use of undeclared identifier 'getopt' while ((c = getopt(argc, argv, "g:c:o:")) != -1) ^ dissect_multiple_alignment.cc:257:32: error: use of undeclared identifier 'optarg' sprintf(gpath,"%s",optarg); ^ dissect_multiple_alignment.cc:261:32: error: use of undeclared identifier 'optarg' sprintf(spath,"%s",optarg); ^ dissect_multiple_alignment.cc:265:32: error: use of undeclared identifier 'optarg' sprintf(opath,"%s",optarg); ^ dissect_multiple_alignment.cc:269:17: error: use of undeclared identifier 'optopt' if (optopt!='g' || optopt!='c' || optopt!='o') ^ dissect_multiple_alignment.cc:269:32: error: use of undeclared identifier 'optopt' if (optopt!='g' || optopt!='c' || optopt!='o') ^ dissect_multiple_alignment.cc:269:47: error: use of undeclared identifier 'optopt' if (optopt!='g' || optopt!='c' || optopt!='o') ^ 7 errors generated. make: * [mcscanx] Error 1

I think I have now installed it properly (using https://ubuntuforums.org/showthread.php?t=2205151) and get

make g++ struct.cc mcscan.cc read_data.cc out_utils.cc dagchainer.cc msa.cc permutation.cc -o MCScanX g++ struct.cc mcscan_h.cc read_homology.cc out_homology.cc dagchainer.cc msa.cc permutation.cc -o MCScanX_h g++ struct.cc dup_classifier.cc read_data.cc out_utils.cc dagchainer.cc cls.cc permutation.cc -o duplicate_gene_classifier g++ dissect_multiple_alignment.cc -o downstream_analyses/dissect_multiple_alignment g++ detect_collinear_tandem_arrays.cc -o downstream_analyses/detect_collinear_tandem_arrays cd downstream_analyses/ && /Applications/Xcode.app/Contents/Developer/usr/bin/make javac -g Cubic.java javac -g bar_plotter.java javac -g branch.java javac -g circle_plotter.java javac -g dot_plotter.java javac -g dual_synteny_plotter.java javac -g family_circle_plotter.java javac -g family_tree_plotter.java javac -g family_tree_plotter_chr.java javac -g family_tree_plotter_show_length.java

However, with the test files I still get

./MCScanX ~/Desktop/test/ Reading BLAST file and pre-processing Generating BLAST list 0 matches imported (0 discarded) 0 pairwise comparisons 0 alignments generated

It could be a MacOs-specific problem. I just downloaded and compiled MCScanX, and run it on one example:

./MCScanX_h examples/at_gm_pt_vv

Output:

Reading homologs and pre-processing Generating homolog list 308348

homologous pairs imported (8464 discarded) 4090 pairwise comparisons

[...]

Print statistics: Species # of collinear homolog pairs # of

homolog pairs Percentage at&gm 17559 58038 30.2543

at&pt 14323 46944 30.5108 at&vv 7390 24086 30.6817

gm&pt 34564 92901 37.2052 gm&vv 18311 47652 38.4265

pt&vv 15754 38727 40.6796 Done! [2.549 seconds elapsed]

I use Debian. You could try to find a linux machine, or open an issue on github.

1 answer

I know it's old, but in case anyone has the same problem (I just did) -- I solved it by making sure that both the .blast and the .gff files were TAB-delimited. I had the "0 matches imported" problem when the .gff file was space-delimited.

The tr command can be used to change it easily:

< file.gff tr ' ' '\t' > file_tab.gff

Log in to answer this question.