2

I have many files which contain a string like this:

/databis/defontis/Dossier_fasta_chrm_avec_piler/SRR6237661_chrm.fasta: N putative CRISPR arrays found

Where the N is a number that can be either 0 or greater. I need to move all files where the N is 0 to the directory Sans_crispr and all files where N is greater than 0 to the directory Avec_crispr.

I can also see with ls that all files where no CRISPR was found (those where N is 0) are smaller than 3355 bytes, so maybe that can be used.

I tried this:

find . -name "*.out" -type 'f' -size -5k -exec mv {} /databis/defontis/Dossier_fasta_chrm_avec_piler/Dossier_fasta_chrm_sortie_pilercr/Sans_Crispr/ \;

But for all my files I have this

mv: cannot move './SRR5273182_chrm.fasta.fa-pilercr.out' to '/databis/defontis/Dossier_fasta_chrm_avec_piler/Dossier_fasta_chrm_sortie_pilercr/Sans-Crispr/': Not a directory

I tried some for f in ...do done or if then fi. I tried with grep for the pattern ' 0 putative CRISPR arrays found' But none of them worked, always an error or I didn't find what I want.

This is an example of my files:

enter image description here

And this is the contents: With Crispr

Help on reading this report
===========================

This report has three sections: Detailed, Summary by Similarity and Summary by Position.

The detailed section shows each repeat in each putative CRISPR array.

The summary sections give one line for each array.

An 'array' is a contiguous sequence of CRISPR repeats looking like this:

    REPEAT Spacer REPEAT Spacer REPEAT ... Spacer REPEAT

Within one array, repeats have high similarity and spacers are, roughly speaking, unique within a window around the array. In a given array, each repeat has a similar length, and each spacer has a similar length. With default parameters, the algorithm allows a fair amount of variability in order to maximize sensitivity. This may allow identification of inactive ("fossil") arrays, and may in rare cases also induce false positives due to other classes of repeats such as microsatellites, LTRs and arrays of RNA genes.


Columns in the detailed section are:

  Pos               Sequence position, starting at 1 for the first base.   Repeat            Length of the repeat.   %id               Identity with the consensus sequence.   Spacer            Length of spacer to the right of this repeat.   Left flank        10 bases to the left of this repeat.   Repeat            Sequence of this repeat.
                      Dots indicate positions where this repeat
                      agrees with the consensus sequence below.   Spacer            Sequence of spacer to the right of this repeat,
                      or 10 bases if this is the last repeat.

The left flank sequence duplicates the end of the spacer for the preceding repeat; it is provided to facilitate visual identification of cases where the algorithm does not correctly identify repeat endpoints.

At the end of each array there is a sub-heading that gives the average repeat length, average spacer length and consensus sequence.

Columns in the summary sections are:

  Array             Number 1, 2 ... referring back to the detailed report.   Sequence          FASTA label of the sequence. May be truncated.   From              Start position of array.   To           End position of array.   # copies          Number of repeats in the array.   Repeat            Average repeat length.   Spacer            Average spacer length.   +                 +/-, indicating orientation relative to first array in group.   Distance          Distance from previous array.   Consensus         Consensus sequence.

In the Summary by Similarity section, arrays are grouped by similarity of their consensus sequences. If consensus sequences are sufficiently similar, they are aligned to each other to indicate probable relationships between arrays.

In the Summary by Position section, arrays are sorted by position within the input sequence file.

The Distance column facilitates identification of cases where a single array has been reported as two adjacent arrays. In such a case, (a) the consensus sequences will be similar or identical, and (b) the distance will be approximately a small multiple of the repeat length + spacer length.

Use the -noinfo option to turn off this help. Use the -help option to get a list of command line options.

pilercr v1.06 By Robert C. Edgar

/databis/defontis/Dossier_fasta_chrm_avec_piler/SRR2177954_chrm.fasta: 1 putative CRISPR arrays found.



DETAIL REPORT



Array 1
>SRR2177954.k141_500270 flag=1 multi=9.2309 len=7453

       Pos  Repeat     %id  Spacer  Left flank    Repeat                                  Spacer
==========  ======  ======  ======  ==========    ====================================    ======
        66      36   100.0      25  CAGAAGTATT    ....................................    CTCACACACGCTGATGCAGACAACA
       127      36   100.0      26  GCAGACAACA    ....................................    GCGAGAGCAGGGATTTGGAACGTAAT
       189      36   100.0      26  GGAACGTAAT    ....................................    ATGTTGATGGAAAAACTCCCACAGAC
       251      36   100.0          TCCCACAGAC    ....................................    ACTGAATGTG
==========  ======  ======  ======  ==========    ====================================
         4      36              25                ATCTACAAAAGTAGAAATTTTATAGAGGTATTTGGC


SUMMARY BY SIMILARITY



Array          Sequence    Position      Length  # Copies  Repeat  Spacer  +  Consensus
=====  ================  ==========  ==========  ========  ======  ======  =  =========
    1  SRR2177954.k141_          66         221         4      36      25  +  ATCTACAAAAGTAGAAATTTTATAGAGGTATTTGGC



SUMMARY BY POSITION



>SRR2177954.k141_500270 flag=1 multi=9.2309 len=7453

Array          Sequence    Position      Length  # Copies  Repeat  Spacer    Distance  Consensus
=====  ================  ==========  ==========  ========  ======  ======  ==========  =========
    1  SRR2177954.k141_          66         221         4      36      25              ATCTACAAAAGTAGAAATTTTATAGAGGTATTTGGC

Without Crispr

Help on reading this report
===========================

This report has three sections: Detailed, Summary by Similarity
and Summary by Position.

The detailed section shows each repeat in each putative
CRISPR array.

The summary sections give one line for each array.

An 'array' is a contiguous sequence of CRISPR repeats
looking like this:

    REPEAT Spacer REPEAT Spacer REPEAT ... Spacer REPEAT

Within one array, repeats have high similarity and spacers
are, roughly speaking, unique within a window around the array.
In a given array, each repeat has a similar length, and each
spacer has a similar length. With default parameters, the
algorithm allows a fair amount of variability in order to
maximize sensitivity. This may allow identification of
inactive ("fossil") arrays, and may in rare cases also
induce false positives due to other classes of repeats
such as microsatellites, LTRs and arrays of RNA genes.


Columns in the detailed section are:

  Pos               Sequence position, starting at 1 for the first base.
  Repeat            Length of the repeat.
  %id               Identity with the consensus sequence.
  Spacer            Length of spacer to the right of this repeat.
  Left flank        10 bases to the left of this repeat.
  Repeat            Sequence of this repeat.
                      Dots indicate positions where this repeat
                      agrees with the consensus sequence below.
  Spacer            Sequence of spacer to the right of this repeat,
                      or 10 bases if this is the last repeat.

The left flank sequence duplicates the end of the spacer for the preceding
repeat; it is provided to facilitate visual identification of cases
where the algorithm does not correctly identify repeat endpoints.

At the end of each array there is a sub-heading that gives the average
repeat length, average spacer length and consensus sequence.

Columns in the summary sections are:

  Array             Number 1, 2 ... referring back to the detailed report.
  Sequence          FASTA label of the sequence. May be truncated.
  From              Start position of array.
  To                End position of array.
  # copies          Number of repeats in the array.
  Repeat            Average repeat length.
  Spacer            Average spacer length.
  +                 +/-, indicating orientation relative to first array in group.
  Distance          Distance from previous array.
  Consensus         Consensus sequence.

In the Summary by Similarity section, arrays are grouped by similarity of their
consensus sequences. If consensus sequences are sufficiently similar, they are
aligned to each other to indicate probable relationships between arrays.

In the Summary by Position section, arrays are sorted by position within the
input sequence file.

The Distance column facilitates identification of cases where a single
array has been reported as two adjacent arrays. In such a case, (a) the
consensus sequences will be similar or identical, and (b) the distance
will be approximately a small multiple of the repeat length + spacer length.

Use the -noinfo option to turn off this help.
Use the -help option to get a list of command line options.

pilercr v1.06
By Robert C. Edgar

/databis/defontis/Dossier_fasta_chrm_avec_piler/ERR1544006_chrm.fasta: 0 putative CRISPR arrays found.

Thanks your for your time

0
1

Simply iterate over the files, and grep for : 0 putative CRISPR regions. If the grep finds a match, move the file:

mkdir -p Sans_crispr Avec_crispr
for file in *pilercr.out; do
    if grep -q ': 0 putative CRISPR arrays' "$file"; then
        mv "$file" Sans_crispr
    else
        mv "$file" Avec_crispr
    fi
done

The -q flag to grep tells it not to print any output, but it will still exit with a failed status if no match is found and with success if a match is found. So here we use that to move the files to the appropriate folder.

The reason you were getting this error:

mv: cannot move './SRR5273182_chrm.fasta.fa-pilercr.out' to '/databis/defontis/Dossier_fasta_chrm_avec_piler/Dossier_fasta_chrm_sortie_pilercr/Sans-Crispr/': Not a directory

Is because the directory /databis/defontis/Dossier_fasta_chrm_avec_piler/Dossier_fasta_chrm_sortie_pilercr/Sans-Crispr/ doesn't exist. This is why the first command in the little script above is mkdir -p Sans_crispr Avec_crispr which means "create the directories Sans_crispr and Avec_crispr unless if they don't already exist".

18
  • Hi, thanks for the speed.
    – Fraizu
    Jun 3 at 11:19
  • problem : they all go on Avec_crispr :/
    – Fraizu
    Jun 3 at 11:20
  • @Fraizu please edit your question as I asked and show us an example file with CRISPR and one without CRISPR. We need the actual file to be able to test properly. Maybe the other files also have : 0 putative CRISPR regions on one of their lines.
    – terdon
    Jun 3 at 11:25
  • Also, @Fraizu, your find command would work but you need the right directory name. Your question mentioned Sans_crispr but your command was using a directory called Sans-crispr instead.
    – terdon
    Jun 3 at 11:30
  • I edited my question with new image I hope it will help u
    – Fraizu
    Jun 3 at 11:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.