Added modified version of cutadapt (with separate folder).

Modified the original cutadapt program to have an option to output
too-long seqs to a file (instead of discarding), and to output
untrimmed, too-short and too-long seqs to the same file (didn't work
previously).

See cutadapt_modifications/notes.txt for details. The
cutadapt_modifications folder contains the original cutadapt version and
multiple modified versions by me (I should probably make patches);
cutadapt_mod is a link to the newest one.
Added FAKE_OUTFILE object (like OS-independent /dev/null)

Fake_outfile is the class - Fake file opened for writing - equivalent to writing to
/dev/null without touching the OS. All methods do nothing. (methods:
write, writelines, flush, seek, truncate, close - based on real methods
of file open for writing).
FAKE_OUTFILE is an instance of Fake_outfile.

Also gave it a unit-test - it passes.
Bugfix: saving stderr in run_command_get_output.

Added "stderr=subprocess.PIPE" arg to "subprocess.Popen" call -
otherwise stderr was printed instead of being saved.
Minor: better detail in the 100-exception in value_and_percentages
Added "STOP COMPARING FILE" mechanism to compare_files_with_regex.

In compare_files_with_regex, in addition to the previous special markers
(<REGEX> to compare line as regex, <IGNORE> to ignore line), added a
new <STOP COMPARING FILE> case, which stops the file comparison and
returns True.
A file containing just that string will compare as matching to anything
- use for files you want to check for existence but don't want to
compare by hand (like pickle files).

Tested on mutant_deepseq_analysis/code test_data/*.pickle files, works.
Added simple unpickle convenience function.
Renamed seq_basic_utilities.py to basic_seq_utilities.py for convenience.

(Since I have no other files starting with b and plenty starting with
seq.)
Left seq_basic_utilities.py as symlink for now; updated
DNA_basic_utilities.py symlink.
Renamed test_inputs to _test_inputs, updated code; minor test fix.

Renamed test_inputs to _test_inputs for convenience (otherwise it
started the same as the testing_utilities.py file); updated references
to it in the code.

Fixed minor unit-test in seq_count_and_lengths.py (wrong exception
expected).
Patched failing unit-test (ignoring extra output) - may fix later.

At some point earlier I added an extra output value to main, and didn't
update the unit-tests to match.  Right now I just set the unit-tests to
ignore the third output value - may want to actually test it at some
point.
Added chromosome type, sort-key and color (by type) functions.

chromosome_type: simply the first _-separated word (so "chromosome_12"
is "chromosome" etc).

chromosome_sort_key: Get sort key to sort like this: chromosomes
(numerical), other(alphabetical), scaffolds (numerical).

chromosome_color: color by chromosome type: blue=chromosome,
grey=scaffold, green=chloroplast, red-mitochondrial.

Included unit-tests for all - pass.
Added simple remove_legend and savefig functions.

savefig automatically does a sensible crop with adjustable padding and
adjustable default 300 dpi; remove_legend removes the legend for either
a given axes object or auto-detects current one.
Added NaN constant (float NaN), and nan_func that just returns it.
Added sort_lists_inside_dict function (sort lists in list-valued dicts).

Added sort_lists_inside_dict function: Given a key:value_list dict,
    return same dict but with sorted value_lists (using key and reverse
    args for sort).

Added unit-tests - pass.
New merge_values_to_unique function for merging lists with optional blank.

Added merge_values_to_unique function - Merge value_list to a single
value, ignoring blank_value unless all are blank; raise Exception if
impossible.

Added unit-test - passes.
Added simple remove_xticklabels and remove_yticklabels functions.

Remove x/y tick labels (leaving the ticks unchanged); acts on ax, or
current axes if ax is None.
Made the remove_*ticklabels functions preserve x/y plot limits.
Reformatted seq_top_sequence_check.py to standard script format.

No functional changes (tested a bit by hand). TODO unit-tests!
New script - check for same/containing/rev-compl sequences.

seq_uniqueness_check.py - Given any number of fasta or fastq files,
check if any of the sequences repeat (in one file or between files);
depending on options, also check whether any sequence is a subsequence
of any other, and whether any reverse-complement sequence is identical
to or a subsequence of any of the other sequences.

Has basic unit-tests, pass.
Switched from deprecated Biopython seq .data attribute to .tostring()

To get a plain sequence string from Biopython Seq objects, use
.tostring() method instead of deprecated .data attribute.

Ran all the tests the scripts had (not all of them have a lot, but they
do have some, except seq_top_sequence_check.py) - they pass.
Minor: error message formatting.