Skip to content

Type conversion errors when reading replicates file #76

@ijhoskins

Description

@ijhoskins

Hello,

I have been unable to include alphanumeric text in fields 2 or 3 of the replicates file without encountering an error:

| Analysis started at: Thursday 12 May 2022 (15:44:38)                      |
| 1. Reading dataset(s)                                                     |
Traceback (most recent call last):
  File "pandas/_libs/parsers.pyx", line 1113, in pandas._libs.parsers.TextReader._convert_tokens
TypeError: Cannot cast array data from dtype('O') to dtype('float64') according to the rule 'safe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/clust/bin/clust", line 10, in <module>
    sys.exit(main())
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/__main__.py", line 102, in main
    clustpipeline.clustpipeline(args.datapath, args.m, args.r, args.n, args.o, args.K, args.t,
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/clustpipeline.py", line 86, in clustpipeline
    (X, replicates, Genes, datafiles) = io.readDatasetsFromDirectory(datapath, delimiter='\t| |, |; |,|;', skiprows=1, skipcolumns=1,
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/scripts/io.py", line 46, in readDatasetsFromDirectory
    datafilesread = readDataFromFiles(datafileswithpath, delimiter, float, skiprows, skipcolumns, returnSkipped)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/scripts/io.py", line 204, in readDataFromFiles
    X[l] = pdreadcsv_regexdelim(datafiles[l], delimiter=delimiter, dtype=dtype, skiprows=skiprows,
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/scripts/io.py", line 239, in pdreadcsv_regexdelim
    result = pd.read_csv(StringIO('\n'.join(re.sub(delimiter, '\t', str(x)) for x in f)),
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/pandas/util/_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 680, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 581, in _read
    return parser.read(nrows)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/pandas/io/parsers/readers.py", line 1254, in read
    index, columns, col_dict = self._engine.read(nrows)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 225, in read
    chunks = self._reader.read_low_memory(nrows)
  File "pandas/_libs/parsers.pyx", line 805, in pandas._libs.parsers.TextReader.read_low_memory
  File "pandas/_libs/parsers.pyx", line 883, in pandas._libs.parsers.TextReader._read_rows
  File "pandas/_libs/parsers.pyx", line 1026, in pandas._libs.parsers.TextReader._convert_column_data
  File "pandas/_libs/parsers.pyx", line 1119, in pandas._libs.parsers.TextReader._convert_tokens
ValueError: could not convert string to float: 'B'

Here is the example problematic replicates file:

clust_bio_comb.txt      A       1.x,1.y
clust_bio_comb.txt      B       2.x,2.y
clust_bio_comb.txt      C       3.x,3.y
clust_bio_comb.txt      D       4.x,4.y
clust_bio_comb.txt      E       5.x,5.y

If I then convert all names in fields 2 and 3 to integers, I run into another error:

| Analysis started at: Thursday 12 May 2022 (15:50:20)                      |
| 1. Reading dataset(s)                                                     |
Traceback (most recent call last):
  File "/opt/anaconda3/envs/clust/bin/clust", line 10, in <module>
    sys.exit(main())
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/__main__.py", line 102, in main
    clustpipeline.clustpipeline(args.datapath, args.m, args.r, args.n, args.o, args.K, args.t,
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/clustpipeline.py", line 92, in clustpipeline
    (replicatesIDs, conditions) = io.readReplicates(replicatesfile, datapath, datafiles, replicates)
  File "/opt/anaconda3/envs/clust/lib/python3.10/site-packages/clust/scripts/io.py", line 125, in readReplicates
    conditions[c] = line[1:]
TypeError: 'filter' object is not subscriptable

#62

@BaselAbujamous do you have any formatting recommendations to bypass these errors?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions