diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index b7fadf39..cd703e51 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -17,5 +17,8 @@ jobs: - uses: actions-rs/cargo@v1 with: command: build - args: --release --all-features + #args: --release --all-features + - name: tests + run: | + for i in tests/fasten_*.sh; do echo $i; echo ===; bash $i; echo; done; diff --git a/docs/fasten_inspect/fn.main.html b/docs/fasten_inspect/fn.main.html index d4a732e6..a18c21c0 100644 --- a/docs/fasten_inspect/fn.main.html +++ b/docs/fasten_inspect/fn.main.html @@ -1,4 +1,4 @@ main in fasten_inspect - Rust

Function fasten_inspect::main[][src]

pub(crate) fn main()
+

Function fasten_inspect::main[][src]

pub(crate) fn main()
\ No newline at end of file diff --git a/docs/fasten_inspect/fn.validate_reads.html b/docs/fasten_inspect/fn.validate_reads.html index 364876e3..72cae11d 100644 --- a/docs/fasten_inspect/fn.validate_reads.html +++ b/docs/fasten_inspect/fn.validate_reads.html @@ -1,4 +1,5 @@ -validate_reads in fasten_inspect - Rust +validate_reads in fasten_inspect - Rust

Function fasten_inspect::validate_reads[][src]

pub(crate) fn validate_reads(
    lines_per_read: u8,
    seq_regex: Regex,
    qual_regex: Regex
)
+

Function fasten_inspect::validate_reads[][src]

pub(crate) fn validate_reads(
    lines_per_read: u8,
    seq_regex: Regex,
    qual_regex: Regex
)
Expand description

marks up reads from stdin

+
\ No newline at end of file diff --git a/docs/fasten_inspect/index.html b/docs/fasten_inspect/index.html index 3f5470cb..3997bf38 100644 --- a/docs/fasten_inspect/index.html +++ b/docs/fasten_inspect/index.html @@ -1,25 +1,31 @@ fasten_inspect - Rust

Crate fasten_inspect[][src]

Expand description

Marks up your reads with useful information like read length

-

Examples

Quick validation with stderr message

cat file.fastq | fasten_validate > markedup.fastq
-cat file.fastq | fasten_validate --paired-end > markedup-paired.fastq

Usage

Usage: fasten_validate [-h] [-n INT] [-p] [--verbose] [--version] [--paired-end]
+        

Crate fasten_inspect

Version 0.6.0

Crate fasten_inspect[][src]

Expand description

Marks up your reads with useful information like read length

+

Examples

Quick validation with stderr message

cat file.fastq | fasten_inspect > markedup.fastq
+cat file.fastq | fasten_inspect --paired-end > markedup-paired.fastq
+

The resulting marked-up fastq file will have deflines like

+
@read0/1 id-at:1 seq-length:100 seq-invalid-chars: id-plus:1 qual-invalid-chars: avg-qual:20.93 qual-length:100 read-pair:1

Usage

fasten_inspect: Marks up your reads with useful information like read length
+
+Usage: fasten_inspect [-h] [-n INT] [-p] [--verbose] [--version]
 
 Options:
-    -h, --help          Print this help menu.
-    -n, --numcpus INT   Number of CPUs (default: 1)
-    -p, --paired-end    The input reads are interleaved paired-end
-        --verbose       Print more status messages
-        --version       Print the version of Fasten and exit
+ -h, --help Print this help menu. + -n, --numcpus INT Number of CPUs (default: 1) + -p, --paired-end The input reads are interleaved paired-end + --verbose Print more status messages + --version Print the version of Fasten and exit +

The fields will be found on the defline of the sequence and include:

- - - + + + - +
keytypeexamplenote
id-atboolean (1 or 0)id-at:1
seq-invalid-charsstringseq-invalid-chars:‘$$%’
qual-invalid-charsstringqual-invalid-chars:‘[]’
id-atboolean (1 or 0)id-at:1Whether or not the @ was first character, first line
seq-invalid-charsstringseq-invalid-chars:$$%
qual-invalid-charsstringqual-invalid-chars:[<
seq-lengthintseq-length:100
id-plusbooleanid-plus:1Whether or not the plus sign was found on 3rd line
id-plusbooleanid-plus:1Whether or not the + was first character, 3rd line
avg-qualfloatavg-qual:17.52
qual-lengthintqual-length:100Length of the quality score line

Functions

-
+

marks up reads from stdin

+
\ No newline at end of file diff --git a/docs/fasten_inspect/sidebar-items.js b/docs/fasten_inspect/sidebar-items.js index 3574fe0b..9c7f6b86 100644 --- a/docs/fasten_inspect/sidebar-items.js +++ b/docs/fasten_inspect/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["main",""],["validate_reads",""]]}); \ No newline at end of file +initSidebarItems({"fn":[["main",""],["validate_reads","marks up reads from stdin"]]}); \ No newline at end of file diff --git a/docs/fasten_repair/fn.main.html b/docs/fasten_repair/fn.main.html index 641a3a8c..c376eb3b 100644 --- a/docs/fasten_repair/fn.main.html +++ b/docs/fasten_repair/fn.main.html @@ -1,4 +1,4 @@ main in fasten_repair - Rust

Function fasten_repair::main[][src]

pub(crate) fn main()
+

Function fasten_repair::main[][src]

pub(crate) fn main()
\ No newline at end of file diff --git a/docs/fasten_repair/fn.repair_one_read.html b/docs/fasten_repair/fn.repair_one_read.html index b6ddb56a..da9ef3c6 100644 --- a/docs/fasten_repair/fn.repair_one_read.html +++ b/docs/fasten_repair/fn.repair_one_read.html @@ -1,5 +1,5 @@ repair_one_read in fasten_repair - Rust

Function fasten_repair::repair_one_read[][src]

pub(crate) fn repair_one_read(
    id: String,
    seq: String,
    plus: String,
    qual: String,
    should_repair: bool,
    min_length: usize,
    min_qual: f32,
    remove_info: bool
) -> (String, bool, String)
Expand description

Repair exactly one read

+

Function fasten_repair::repair_one_read[][src]

pub(crate) fn repair_one_read(
    id: String,
    seq: String,
    plus: String,
    qual: String,
    should_repair: bool,
    min_length: usize,
    min_qual: f32,
    remove_info: bool
) -> (String, bool, String)
Expand description

Repair exactly one read

\ No newline at end of file diff --git a/docs/fasten_repair/fn.repair_reads.html b/docs/fasten_repair/fn.repair_reads.html index f7ab45bb..801df5e1 100644 --- a/docs/fasten_repair/fn.repair_reads.html +++ b/docs/fasten_repair/fn.repair_reads.html @@ -1,4 +1,5 @@ -repair_reads in fasten_repair - Rust +repair_reads in fasten_repair - Rust

Function fasten_repair::repair_reads[][src]

pub(crate) fn repair_reads(
    paired_end: bool,
    min_length: usize,
    min_qual: f32,
    remove_info: bool,
    mode: &str
)
+

Function fasten_repair::repair_reads[][src]

pub(crate) fn repair_reads(
    paired_end: bool,
    min_length: usize,
    min_qual: f32,
    remove_info: bool,
    mode: &str
)
Expand description

Repairs reads depending on the deflines by calling repair_one_read

+
\ No newline at end of file diff --git a/docs/fasten_repair/index.html b/docs/fasten_repair/index.html index 8de13ffb..48fac48c 100644 --- a/docs/fasten_repair/index.html +++ b/docs/fasten_repair/index.html @@ -1,7 +1,8 @@ fasten_repair - Rust

Crate fasten_repair[][src]

Expand description

Repairs reads from fasten_inspect output

-

Examples

./target/debug/fasten_inspect  < testdata/four_reads.fastq | ./target/debug/fasten_repair
+        

Crate fasten_repair

Version 0.6.0

Crate fasten_repair[][src]

Expand description

Repairs reads from fasten_inspect output

+

Examples

./target/debug/fasten_inspect  < testdata/four_reads.fastq | \
+  ./target/debug/fasten_repair --remove-info > repaired.fastq
 

If remove-info is given, then extra header information from fasten_inspect will be removed.

Usage

Usage: fasten_repair [-h] [-n INT] [-p] [--verbose] [--version] [--min-length INT] [--min-quality FLOAT] [--remove-info] [-m STRING]
@@ -21,6 +22,8 @@ 

Usage

If you choose --mode repair, then this is the expected behavior

  • Mismatched seq and qual lengths: seq or qual length will be truncated
  • +
  • R1 or R2 not passing: then the other (R1 or R2) will also not pass and they will not be +printed.

Panic

If the sequences are not repaired but there is still an issue, the program might still panic:

@@ -34,5 +37,6 @@

Panic

Functions

Repair exactly one read

-
+

Repairs reads depending on the deflines by calling repair_one_read

+
\ No newline at end of file diff --git a/docs/fasten_repair/sidebar-items.js b/docs/fasten_repair/sidebar-items.js index 18bd78c4..369f5130 100644 --- a/docs/fasten_repair/sidebar-items.js +++ b/docs/fasten_repair/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["main",""],["repair_one_read","Repair exactly one read"],["repair_reads",""]]}); \ No newline at end of file +initSidebarItems({"fn":[["main",""],["repair_one_read","Repair exactly one read"],["repair_reads","Repairs reads depending on the deflines by calling repair_one_read"]]}); \ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index b70934d5..2a8bdce1 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -10,7 +10,7 @@ var searchIndex = JSON.parse('{\ "fasten_clean":{"doc":"Trim and filter reads","t":[5,5,5,5],"n":["avg_quality","clean_entry","main","trim"],"q":["fasten_clean","","",""],"d":["Determine average quality of a qual cigar string, e.g., …","Cleans a SE or PE read","","Trim the ends of reads with low quality"],"i":[0,0,0,0],"f":[[[["string",3]],["f32",15]],[[["vec",3,[["string",3]]],["usize",15],["f32",15],["u8",15],["u8",15],["sender",3,[["string",3]]],["sender",3,[["string",3]]]]],[[]],[[["string",3],["string",3],["u8",15]]]],"p":[]},\ "fasten_combine":{"doc":"Collapse identical reads into single reads, recalculating …","t":[17,17,5,5],"n":["READ_SEPARATOR","TEN","combine_error_vectors","main"],"q":["fasten_combine","","",""],"d":["Glues together paired end reads internally and is a …","need this constant because the compiler had a problem with …","Combines vectors of error probabilities such that the rate …",""],"i":[0,0,0,0],"f":[null,null,[[["vec",3],["vec",3]],["vec",3,[["f32",15]]]],[[]]],"p":[]},\ "fasten_convert":{"doc":"Convert between different sequence formats","t":[3,11,11,11,11,11,11,11,11,11,12,12,11,5,11,12,12,5,5,5,12,12,11,11,11,11,5,5,5],"n":["FastenSeq","as_fasta","as_fastq","as_sam","borrow","borrow_mut","clone","clone_into","fmt","from","id1","id2","into","main","new","qual1","qual2","read_fasta","read_fastq","read_sam","seq1","seq2","to_owned","try_from","try_into","type_id","write_fasta","write_fastq","write_sam"],"q":["fasten_convert","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Struct that can handle paired end reads","Return a formatted string as a fasta entry","Return a formatted string as a fastq entry","Return a formatted string as a sam entry","","","","","","","","","","","a blank new object is a set of blank strings for each value","","","Read fasta from stdin and transmit it to a channel","Read fastq from stdin and transmit it to a channel","Read sam from stdin and transmit it to a channel","","","","","","","Read from a channel and print as fasta","Read from a channel and print as fastq","Read from a channel and print as sam"],"i":[0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0],"f":[null,[[],["string",3]],[[],["string",3]],[[],["string",3]],[[]],[[]],[[],["fastenseq",3]],[[]],[[["formatter",3]],["result",6]],[[]],null,null,[[]],[[]],[[],["fastenseq",3]],null,null,[[["sender",3,[["fastenseq",3]]],["bool",15]]],[[["sender",3,[["fastenseq",3]]],["bool",15]]],[[["sender",3,[["fastenseq",3]]],["bool",15]]],null,null,[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["receiver",3,[["fastenseq",3]]]]],[[["receiver",3,[["fastenseq",3]]]]],[[["receiver",3,[["fastenseq",3]]]]]],"p":[[3,"FastenSeq"]]},\ -"fasten_inspect":{"doc":"Marks up your reads with useful information like read …","t":[5,5],"n":["main","validate_reads"],"q":["fasten_inspect",""],"d":["",""],"i":[0,0],"f":[[[]],[[["u8",15],["regex",3],["regex",3]]]],"p":[]},\ +"fasten_inspect":{"doc":"Marks up your reads with useful information like read …","t":[5,5],"n":["main","validate_reads"],"q":["fasten_inspect",""],"d":["","marks up reads from stdin"],"i":[0,0],"f":[[[]],[[["u8",15],["regex",3],["regex",3]]]],"p":[]},\ "fasten_kmer":{"doc":"Counts kmers. Each line is a kmer with two columns …","t":[17,5,5,5,5,5],"n":["READ_SEPARATOR","count_kmers","kmers_in_str","main","revcomp","switch_base"],"q":["fasten_kmer","","","","",""],"d":["Glues together paired end reads internally and is a …","Read fastq from stdin and count kmers","Read a str of nucleotides and count kmers. If …","","reverse-complement a dna sequence","Complementary nucleotide for ACTGUN, case insensitive"],"i":[0,0,0,0,0,0],"f":[null,[[["stdin",3],["usize",15],["bool",15],["bool",15],["bool",15]]],[[["str",15],["usize",15],["bool",15]],["hashmap",3,[["string",3],["u32",15]]]],[[]],[[["str",15]],["string",3]],[[["char",15]],["char",15]]],"p":[]},\ "fasten_metrics":{"doc":"Gives read metrics on a read set. Values are given in a …","t":[5,5,5],"n":["average_quality","main","standard_deviation"],"q":["fasten_metrics","",""],"d":["given a cigar line for quality, return its average","","Local implementation of standard deviation"],"i":[0,0,0],"f":[[[["str",15]],["f32",15]],[[]],[[["vec",3]],["f32",15]]],"p":[]},\ "fasten_mutate":{"doc":"Mutates reads. There is no mutation model; only randomness.","t":[5,5],"n":["main","mutate"],"q":["fasten_mutate",""],"d":["","Mutate a str of a sequence of nucleotides using the …"],"i":[0,0],"f":[[[]],[[["str",15],["vec",3],["u8",15],["bool",15]],["string",3]]],"p":[]},\ @@ -20,7 +20,7 @@ var searchIndex = JSON.parse('{\ "fasten_quality_filter":{"doc":"Transforms any low-quality base to ‘N’","t":[5],"n":["main"],"q":["fasten_quality_filter"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\ "fasten_randomize":{"doc":"Create random reads from stdin.","t":[5,5],"n":["main","print_reads_from_stdin"],"q":["fasten_randomize",""],"d":["","Read fastq from stdin, add the reads to a vector, then …"],"i":[0,0],"f":[[[]],[[["u32",15]]]],"p":[]},\ "fasten_regex":{"doc":"Filter reads based on a regular expression.","t":[5],"n":["main"],"q":["fasten_regex"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\ -"fasten_repair":{"doc":"Repairs reads from fasten_inspect output","t":[5,5,5],"n":["main","repair_one_read","repair_reads"],"q":["fasten_repair","",""],"d":["","Repair exactly one read",""],"i":[0,0,0],"f":[[[]],[[["string",3],["string",3],["string",3],["string",3],["bool",15],["usize",15],["f32",15],["bool",15]]],[[["bool",15],["usize",15],["f32",15],["bool",15],["str",15]]]],"p":[]},\ +"fasten_repair":{"doc":"Repairs reads from fasten_inspect output","t":[5,5,5],"n":["main","repair_one_read","repair_reads"],"q":["fasten_repair","",""],"d":["","Repair exactly one read","Repairs reads depending on the deflines by calling …"],"i":[0,0,0],"f":[[[]],[[["string",3],["string",3],["string",3],["string",3],["bool",15],["usize",15],["f32",15],["bool",15]]],[[["bool",15],["usize",15],["f32",15],["bool",15],["str",15]]]],"p":[]},\ "fasten_replace":{"doc":"Streaming editor for fastq data using a find/replace.","t":[5],"n":["main"],"q":["fasten_replace"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\ "fasten_sample":{"doc":"downsample your reads","t":[5],"n":["main"],"q":["fasten_sample"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\ "fasten_shuffle":{"doc":"Interleaves reads from either stdin or file parameters.","t":[5,5,5,5],"n":["deshuffle","main","read_seqs","shuffle"],"q":["fasten_shuffle","","",""],"d":["Read from stdin and deshuffle reads into files","","Read fastq entries from a filename","Read fastq from stdin and interleave"],"i":[0,0,0,0],"f":[[[["matches",3]]],[[]],[[["string",3]],["vec",3,[["seq",3]]]],[[["matches",3]]]],"p":[]},\ diff --git a/docs/src/fasten_inspect/fasten_inspect.rs.html b/docs/src/fasten_inspect/fasten_inspect.rs.html index 0c352afd..48005552 100644 --- a/docs/src/fasten_inspect/fasten_inspect.rs.html +++ b/docs/src/fasten_inspect/fasten_inspect.rs.html @@ -168,40 +168,61 @@ 166 167 168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179
//! Marks up your reads with useful information like read length
 //! 
 //! # Examples
 //! 
 //! ## Quick validation with stderr message
 //! ```bash
-//! cat file.fastq | fasten_validate > markedup.fastq
-//! cat file.fastq | fasten_validate --paired-end > markedup-paired.fastq
+//! cat file.fastq | fasten_inspect > markedup.fastq
+//! cat file.fastq | fasten_inspect --paired-end > markedup-paired.fastq
+//! ```
+//!
+//! The resulting marked-up fastq file will have deflines like
+//!
+//! ```text
+//! @read0/1 id-at:1 seq-length:100 seq-invalid-chars: id-plus:1 qual-invalid-chars: avg-qual:20.93 qual-length:100 read-pair:1
 //! ```
 //!
 //! # Usage
 //! 
 //! ```text
-//! Usage: fasten_validate [-h] [-n INT] [-p] [--verbose] [--version] [--paired-end]
+//!fasten_inspect: Marks up your reads with useful information like read length
+//!
+//!Usage: fasten_inspect [-h] [-n INT] [-p] [--verbose] [--version]
+//!
+//!Options:
+//!    -h, --help          Print this help menu.
+//!    -n, --numcpus INT   Number of CPUs (default: 1)
+//!    -p, --paired-end    The input reads are interleaved paired-end
+//!        --verbose       Print more status messages
+//!        --version       Print the version of Fasten and exit
 //!
-//! Options:
-//!     -h, --help          Print this help menu.
-//!     -n, --numcpus INT   Number of CPUs (default: 1)
-//!     -p, --paired-end    The input reads are interleaved paired-end
-//!         --verbose       Print more status messages
-//!         --version       Print the version of Fasten and exit
 //! ```
 //!
 //! The fields will be found on the defline of the sequence and include:
 //!
-//! | key | type | example | note |
-//! | --- | ---   | ---  | -----  |
-//! | id-at | boolean (1 or 0) | id-at:1 | | 
-//! | seq-invalid-chars | string | seq-invalid-chars:'$$%' | |
-//! | qual-invalid-chars | string | qual-invalid-chars:'[]' | |
-//! | seq-length | int | seq-length:100 | |
-//! | id-plus | boolean | id-plus:1 | Whether or not the plus sign was found on 3rd line |
-//! | avg-qual | float | avg-qual:17.52 | |
-//! | qual-length | int | qual-length:100 | Length of the quality score line |
+//!| key | type  | example | note   |
+//!| --- | ----- | ------- | ------ |
+//!| id-at | boolean (1 or 0) | id-at:1 | Whether or not the `@` was first character, first line | 
+//!| seq-invalid-chars | string | seq-invalid-chars:$$% | |
+//!| qual-invalid-chars | string | qual-invalid-chars:[< | |
+//!| seq-length | int | seq-length:100 | |
+//!| id-plus | boolean | id-plus:1 | Whether or not the `+` was first character, 3rd line |
+//!| avg-qual | float | avg-qual:17.52 | |
+//!| qual-length | int | qual-length:100 | Length of the quality score line |
+//!
 //!
 
 // TODO add points that were validated into the sequence deflines: length, is-paired, seq-regex=1, and anything else
@@ -247,6 +268,7 @@
     }
 }
 
+/// marks up reads from stdin
 fn validate_reads(lines_per_read: u8, seq_regex: regex::Regex, qual_regex: regex::Regex) {
     let my_file = File::open("/dev/stdin").expect("Could not open file");
     let mut my_buffer = BufReader::new(my_file);
diff --git a/docs/src/fasten_repair/fasten_repair.rs.html b/docs/src/fasten_repair/fasten_repair.rs.html
index ae4a6220..4ded83c9 100644
--- a/docs/src/fasten_repair/fasten_repair.rs.html
+++ b/docs/src/fasten_repair/fasten_repair.rs.html
@@ -309,11 +309,18 @@
 307
 308
 309
+310
+311
+312
+313
+314
 
//! Repairs reads from fasten_inspect output
 //! 
 //! # Examples
+//! 
 //! ```bash
-//! ./target/debug/fasten_inspect  < testdata/four_reads.fastq | ./target/debug/fasten_repair
+//! ./target/debug/fasten_inspect  < testdata/four_reads.fastq | \
+//!   ./target/debug/fasten_repair --remove-info > repaired.fastq
 //!
 //! ```
 //!
@@ -343,6 +350,8 @@
 //! If you choose `--mode repair`, then this is the expected behavior
 //!
 //! * Mismatched seq and qual lengths: seq or qual length will be truncated
+//! * R1 or R2 not passing: then the other (R1 or R2) will also not pass and they will not be
+//! printed.
 //!
 //! # Panic
 //!
@@ -413,6 +422,7 @@
     repair_reads(paired_end, min_length, min_qual, remove_info, &mode);
 }
 
+/// Repairs reads depending on the deflines by calling repair_one_read
 fn repair_reads(paired_end:bool, min_length: usize, min_qual: f32, remove_info: bool, mode: &str) {
     //behavior
     let should_repair :bool = {
diff --git a/src/bin/fasten_inspect.rs b/src/bin/fasten_inspect.rs
index 5ae10630..5b42470e 100644
--- a/src/bin/fasten_inspect.rs
+++ b/src/bin/fasten_inspect.rs
@@ -32,15 +32,16 @@
 //!
 //! The fields will be found on the defline of the sequence and include:
 //!
-//! | key | type | example | note |
-//! | --- | ---   | ---  | -----  |
-//! | id-at | boolean (1 or 0) | id-at:1 | | 
-//! | seq-invalid-chars | string | seq-invalid-chars:'$$%' | |
-//! | qual-invalid-chars | string | qual-invalid-chars:'[]' | |
-//! | seq-length | int | seq-length:100 | |
-//! | id-plus | boolean | id-plus:1 | Whether or not the plus sign was found on 3rd line |
-//! | avg-qual | float | avg-qual:17.52 | |
-//! | qual-length | int | qual-length:100 | Length of the quality score line |
+//!| key | type  | example | note   |
+//!| --- | ----- | ------- | ------ |
+//!| id-at | boolean (1 or 0) | id-at:1 | Whether or not the `@` was first character, first line | 
+//!| seq-invalid-chars | string | seq-invalid-chars:$$% | |
+//!| qual-invalid-chars | string | qual-invalid-chars:[< | |
+//!| seq-length | int | seq-length:100 | |
+//!| id-plus | boolean | id-plus:1 | Whether or not the `+` was first character, 3rd line |
+//!| avg-qual | float | avg-qual:17.52 | |
+//!| qual-length | int | qual-length:100 | Length of the quality score line |
+//!
 //!
 
 // TODO add points that were validated into the sequence deflines: length, is-paired, seq-regex=1, and anything else
diff --git a/src/bin/fasten_repair.rs b/src/bin/fasten_repair.rs
index 9cd52f30..ce30c319 100644
--- a/src/bin/fasten_repair.rs
+++ b/src/bin/fasten_repair.rs
@@ -31,20 +31,22 @@
 //!
 //! # Methods of repair
 //!
+//! # Repair mode
+//!
 //! If you choose `--mode repair`, then this is the expected behavior
 //!
 //! * Mismatched seq and qual lengths: seq or qual length will be truncated
+//! * R1 or R2 not passing: then the other (R1 or R2) will also not pass and they will not be
+//! printed.
 //!
-//! # Panic
-//!
-//! If the sequences are not repaired but there is still an issue, the program might still panic:
+//! # Panic mode
 //!
-//! * seq length < min length (TODO when implementing PE reads)
-//! * avg qual < min qual (TODO when implementing PE reads)
-//! * invalid characters in seq (TODO when implementing PE reads)
-//! * invalid characters in qual (TODO when implementing PE reads)
-//! * `@` not present in first character of the entry (TODO when implementing PE reads)
-//! * `+` not present in the first character of the third line (TODO when implementing PE reads)
+//! * seq length < min length 
+//! * avg qual < min qual 
+//! * invalid characters in seq 
+//! * invalid characters in qual 
+//! * `@` not present in first character of the entry 
+//! * `+` not present in the first character of the third line 
 //! 
 
 extern crate getopts;