Giter Club home page Giter Club logo

barcoder's People

Contributors

ecbcgit avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

barcoder's Issues

How to skip the step where nt is scanned?

I would like to be able to run barCoder without having to have the nt database downloaded locally. The manuscript indicates that the final step where the candidate is blasted against the full nt database is optional, but I couldn't find in the readme.txt or example parameters.txt file any way to skip this step. Is there an intended/standard way to do this?

otherGenome directory

The usage instructions sates that the otherGenomes directory is optional:

(2) (optional) Subdirectory containing other genomes (genbank or fasta 
#		format).

However when I run barcoder.pl on my directory that does not have the otherGenomes subdirectory, the program fails because it can't open the otherGenomes directory.

Is it ok to create the otherGenomes directory but leave it empty?

Manual creation of a previousPrimers directory is required

If the project folder does not contain a previousPrimers directory, barCoder fails with:

Failed to open directory Logs: No such file or directory at /home/ubuntu/barCoder/Code/barcode_main.pl line 107, <paramFile> line 137.
Compilation failed in require at barcoder.pl line 21, <paramFile> line 137.

That line of code is:

chdir($projPath."/previousPrimers") or die "Failed to open directory Logs: $!";`

There are two problems:

  1. The error message says the problem is with Logs instead of previousPrimers
  2. You have to create the directory manually (same issue as #5)

Crashes when otherGenomes directory is absent

While the BAsterne and YPco92 projects have an otherGenomes directory, BTK does not. Running perl barcoder.pl BTK 2 fails with:

	Blasting vs previous primers file: allPrevPrimers.fa...OK
	Blasting vs current primers file: primerList.fa...OK
	Blasting vs targetGenomes genome file: BTK genome sequence.fas...OK
Failed to change directories: No such file or directory
Compilation failed in require at barcoder.pl line 21.

barCoder fails silently if EMBOSS is missing

Currently, EMBOSS is not listed in the dependencies in the Readme (just the Bioperl module, which I was apparently able to install without having EMBOSS installed first). I tried running barCoder without EMBOSS (leaving the path in parameters.txt set to the default), and barCoder seemed to work but ended before the blasting step without any error message. Suggested fixes

  • Add EMBOSS to the dependencies list
  • Check that the EMBOSS programs needed are in the path in parameters.txt and give an error if not

Current version requires manual creation of project 'Logs' folder

In attempting to run barCoder, I found that I needed to manually create a folder 'Logs' within the project folder to avoid the following error,

Barcoder ❯ perl -I ~/perl5/lib/perl5 barcoder.pl "BAsterne_copy" 3                                                               master
Failed to open directory Logs: No such file or directory at /home/michael/downloads/src/Barcoder/Code/barcode_main.pl line 76, <paramFile> line 132.
Compilation failed in require at barcoder.pl line 21, <paramFile> line 132.

A good fix would seem to be to change

chdir($projPath."/Logs") or die "Failed to open directory Logs: $!";
to create this directory if it doesn't already exist.

Fails in a confusing way when constraints are too tight

If you set:

targProbe_lengthMin = 10        #minimum allowed primer length
targProbe_lengthMax = 15        #maximum allowed primer length

and run it, you get output with:

        New sequence generated
Current sequence =
        Checking number of G's vs C's (probe only)...OK
        Checking for G on 5' end (probe only)...OK
        Checking for bp repeats...OK
        Checking for start codons...OK

--------------------- WARNING ---------------------
MSG: Got a sequence without letters. Could not guess alphabet
---------------------------------------------------

And from there it gets further confused.

Instead, it would be better to give a clear error and stop processing.

Need to include script directory in @INC

When executing perl barcoder.pl "project_name" nBarcodes from the main Barcoder/ directory, I received an error Can't locate Code/barcode_main.pl in @INC. From some googling, I learned that Perl does not include the current directory or script directory in @inc by default. My fix was to add

use FindBin 1.51 qw( $RealBin );
use lib $RealBin;

to barcoder.pl, based on this recommendation. I'm new to perl and don't have a sense as to whether this is a good permanent fix that should be added to the repo.

EMBOSS Palindrome doesn't seem to be run in barcode_gen_primer.pl

I have been trying to get barCoder working and seem to never get past this section of code in barcode_gen_primer.pl
my $palindrome=$EMBOSSfactory->program('palindrome'); #run EMBOSS palindrome algorithm my $palResults=$palindrome->run({-sequence=>$randSeqObj, -minpallen=>$minPalLength, -gaplimit=>$gapLimit, -maxpallen=>floor($randSeqObj->length/2), -nummismatches=>$numMismatch, -outfile=>'palResults.out'});

I have tried printing both $palindrome and $palResults to the screen. $palindrome is empty and $palResuts appears to not run because I can't print anything after that line of the code ( by adding in my own print statement to the code). I am not getting any errors from the code or in the log file.
Here is what the log shows:

` perl barcoder.pl BTK 100

Searching for Target Primer 1 for target genome file BTK genome sequence.fas:
New sequence generated
Current sequence = CTACGGTTCCTACCTGGTTGTA
Checking for # C/G's !=2 in last 5 bps @ 3' end (primers only)...
FAIL: 1 C/G's found, sequence shuffled
Current sequence = TTGGCACCTTCAACTGGTTCGT
Checking for # C/G's !=2 in last 5 bps @ 3' end (primers only)...OK
Checking for bp repeats...OK
Checking for start codons...OK
Checking for stem-loops...
`
I have checked and the EMBOSS module is available and the path to find it is correct. I am running barCoder-master which I downloaded on January 15, 2021 from GitHub.

Can I specify a constant forward primer (Target primer 1)?

I am looking at the barCoder code in barcode_main.pl. I am wondering if I can specify a constant forward primer.

I see the following two lines in barcode_main.pl which suggest that a third parameter could be specified in the command to run barCoder however it appears that neither of these variables is used in the code.

It seems that an additional section would need to be added to the parameters.txt file for this use case as well.

line 45: my $targetFlag = $ARGV[2]; line 60: my @targetParams = ();

Is it possible to specify a constant forward primer with some changes to the parameters.txt file and some of the code?

Problem with documentation of primer and probe parameters within parameters.txt

Currently, the comments describing the primer and probe parameters in the example parameters.txt files each say the same thing for the project and target primers and the target probes,

# This primer is the same for all target genomes across a given
# project. It matches each criteria and is blasted against all target and other
# genomes in the project for uniqueness.

My understanding is that this description only applies to the project primer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.