1
$\begingroup$

I have 2 txt files that contain 500 DNA sequences each. Both files use 2 hard returns to separate the sequences like so:

ATCGATCT...

ATCGATCT...

ATCGATCT...

I want to parse these two files into the Classify function such that each item in the txt file is assigned a class, Gene1 and Gene2. I have already separated the two classes of DNA in their respective txt files.

Because of this, I was thinking I can classify all the items in txt1 as Gene1 and all the items in txt2 as Gene2. As for how to do this, I am not sure. Does Mathematica allow parsing of items from a txt file into the Classify function?

I was hoping it would be a simple line of code such as this:

c = Classify[{Import["txt1.txt"]} -> "Gene1", {Import["txt2.txt"]} -> "Gene2"]
$\endgroup$
  • 1
    $\begingroup$ How about c = Classify[Join@@Map[Thread[StringSplit[Import["txt"<>#<>".txt"], "\n"]-> "Gene"<>#]&, ToString/@Range[2]]]? $\endgroup$ – b3m2a1 Nov 21 '18 at 7:09
  • $\begingroup$ Thank you for the response! I was wondering if you could explain what the <># symbols in [Import["txt" <> # <> ".txt"], "\n"] -> "Gene" <> #] &, ToString /@ Range[2]] means. Also, why are you using @Range[2]? $\endgroup$ – Laughing Man Nov 22 '18 at 5:49
  • $\begingroup$ <> is Mathematica shorthand for StringJoin and # is shorthand for Slot in a Function (worth looking all these terms up in the docs as understanding them will be very helpful moving forward). Pro-tip: you can select a symbol and use Command-Shift-F (or Control-F1 on Windows) to look up what it does. $\endgroup$ – b3m2a1 Nov 22 '18 at 5:50
  • $\begingroup$ Hey b3m, I've been trying out the code you provided in its different components and I've been getting stuck at the import part. Specifically, I don't understand Import["txt"<>#<>".txt"], "\n"]. Does "\n" tell the function that 1 hard enter signifies the separation between each item in the txt file? I am also not sure where I input the filepath for the 2 txt files. I thought I enter the filepaths in the "txt"sections like so Import["C:\\filepath\\test1.txt"<>#<>"C:\\filepath\\test2.txt"], but this gives me a File not found during import error. Thank you for your help in advance! $\endgroup$ – Laughing Man Nov 23 '18 at 6:59

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.