unique.seqs in 1.25

Hello,
i believe unique.seqs command output has been changed in 1.25 version of MOTHUR. Now it adds .unique.names which it didnt in 1.24. It isnt a bug, it s actually nice because it doesnt overwrite the used .names file, anymore. But the output is somehow bugged if the fasta and name input file have different names. Let s see the difference:

mothur > unique.seqs(name=current)
Using mock360720.trim.names as input file for the name parameter.
Using mock360720.trim.fasta as input file for the fasta parameter.

Output File Names: 
mock360720.trim.unique.fasta
mock360720.trim.unique.names

where as:

mothur > unique.seqs(fasta=current, name=current)
Using mock360720.trim.unique.fragclust.good.chop.fasta as input file for the fasta parameter.
Using mock360720.trim.unique.fragclust.good.names as input file for the name parameter.

Output File Names: 
mock360720.trim.unique.fragclust.good.chop.unique.fasta
mock360720.trim.unique.fragclust.good.chop.names

In the second case, it added the last extension before .fasta in fasta file to the .names file, that is chop.

Thanks, Michal

This output file name change was made in version 1.25.0. The name of the new name file outputted in based on the fasta file name. If the unique.seqs command is run with a name file, and the name of the new name file will be the same as the name of the old name file, then the “unique” tag is added, so that the old file is not overwritten. We made this change because several users were having file mismatches when trying to rerun part of their analysis due to the file overwrite. Sorry for any confusion this change caused.

What I was actually pointing out is that when you have different file name for .fasta and .names, unique.seqs adds .unique. to the fasta file, but adds a different extension for the name file. It looks like it adds the last extension before .fasta from fasta file into the newly created name file. Is this intentional? It s hard to explain, see the bald text:

mothur > unique.seqs(fasta=current, name=current)
Using mock360720.trim.unique.fragclust.good.chop.fasta as input file for the fasta parameter.
Using mock360720.trim.unique.fragclust.good.names as input file for the name parameter.

Output File Names:
mock360720.trim.unique.fragclust.good.chop.unique.fasta
mock360720.trim.unique.fragclust.good.chop.names

Thanks for giving me more detail. Let me try to explain what mothur is doing.

Original fasta = mock360720.trim.unique.fragclust.good.chop.fasta
Original name = mock360720.trim.unique.fragclust.good.names
Root Name used to create new file names = mock360720.trim.unique.fragclust.good.chop
New fasta = rootName + “unique.fasta” = mock360720.trim.unique.fragclust.good.chop.unique.fasta
New name = rooName + “names” = mock360720.trim.unique.fragclust.good.chop.names

This is how we always made the file names. The change in version 1.25.0 is:

if (Original name name = New name name) then New name name = rooName + “unique.names”

So in your first example:

Original fasta name = mock360720.trim.fasta
Original name name = mock360720.trim.names
RootName = mock360720.trim
New Fasta = mock360720.trim.unique.fasta
New Name = mock360720.trim.names, but that is the same as original, so we make it mock360720.trim.unique.names instead. Make sense?

yes, it does. Thanks for making it clear!