Thank you so much! It worked out!
Hi, all.
I am using Maker currently, and to only mask interspersed repeats, I need to pass down "Do not remove simple" option to RepeatMasker. I created maker_opts.ctl using the command: maker -CTL
But in the repeat masking section, I am not really seeing a place to put this in
-----Repeat Masking (leave values blank to skip repeat masking)
model_org=tomato #select a model organism for RepBase masking in RepeatMasker
rmlib= #provide an organism specific repeat library in fasta format for RepeatMasker
repeat_protein=/te_proteins.fasta #provide a fasta file of transposable element proteins for RepeatRunner rm_gff= #pre-identified repeat elements from an external GFF3 file
prok_rm=0 #forces MAKER to repeatmask prokaryotes (no reason to change this), 1 = yes, 0 = no
softmask=1 #use soft-masking rather than hard-masking in BLAST (i.e. seg and dust filtering)
Do anyone know how to handle this? Thank you in advance!
1 answer
I assume that option is the '-nolow' flag in RepeatMasker (ref).
By default it's not too easy to get non-standard flags into RepeatMasker, in the past I think there was a way to get no_low into RepeatMasker directly, looking at the code in the maker folder in lib/GI.pm:
runRepeatMasker($file_name,
$model_org,
$the_void,
$o_file,
$RepeatMasker,
$rmlib,
$cpus); # -no_low
As you can see the no_low is commented out in newer versions.
You should be able to comment that back in since the code just checks whether the last argument to runRepeatMasker is defined in the first place, look at the logic here:
$command .= " -no_is -nolow" if defined($no_low);
so it would be something like
runRepeatMasker($file_name,
$model_org,
$the_void,
$o_file,
$RepeatMasker,
$rmlib,
$cpus,
'-nolow'); # -no_low
If that doesn't work (check the command MAKER is printing in the standard error) you could also add this line in the runRepeatMasker() method:
$command .= " -nolow"
before
my $w = new Widget::RepeatMasker();
print STDERR "running repeat masker.\n" unless $main::quiet;
$w->run($command);
}
that should do it too. I'm not sure why it's commented out in the first place.
Log in to answer this question.