i want to extract specific region of interest from big file. i have only start position, end position and seq id, see my query is:
I have file1 is this
file2 is this :
and i want result like this:
when i run this command :
i got no output or output file. why so?
Moderator's Comments:
Please use CODE tags as required by the forum rules you agreed to when you joined this forum.
---------- Post updated at 01:28 AM ---------- Previous update was at 01:21 AM ----------
i am using Ubuntu OS
Last edited by Scrutinizer; 08-05-2015 at 04:07 AM..
Reason: Add CODE tags, remove extraneous closing COLOR tag. Removed spurious space and a newline from first sample file
Maybe because FS is set to '\t' and there appear to be no TABs in your second sample file, so the fields will not match. And you are setting the index to the entire record, save the first character. which is probably not what you want (you probably meant to use $1 here, but that would not be a sure way to do it either, because in the FASTA format the identifier is allowed to contain spaces). And the FASTA file is word wrapped, so you need to take out the newlines and not use getline to get only the second line ....
The best way to do that is is to use ">" as a record separator and use "\n" as the field separator. By setting OFS as the empty string, and assigning a value to one of the fields, all newlines will be replaced by empty strings, so this will effectively remove the word wrap. And the sequence will become one continuous string, which will make it suitable for substring selection.
Using your file order, we would get something like this.
If we read the files the other way around, then it becomes more memory efficient:
Last edited by Scrutinizer; 08-05-2015 at 04:52 AM..
With your two sample input files (with the combined lengths of the lines in each group that do not start with a > being less than 100 characters), I don't see how you would expect any output when the substring you are trying to extract from those strings starts more than 40,000 characters into that string, and in two of the three cases has an ending position in the string that comes before the starting position (thereby requesting a substring that has negative length).
In addition to those problems, as Scrutinizer said, your script specifies that the input field separator for file2 is a tab character, but there are no tab characters in the data you showed us. Therefore, you are requesting a substring of 1 character starting at position 0 (when arrays of characters in awk start at position 1).
Note also that although you might be able to create an array element in awk or gawk on Ubuntu that is more than 323,000 characters long; on most UNIX systems and BSD-based systems, awk won't let you read a line, write a single output string, or create a variable whose value is much more that LINE_MAX bytes long (on most systems LINE_MAX is 2,048).
This User Gave Thanks to Don Cragun For This Post:
i have 2 files, file1 is 1.fasta sequences file which are as follow:
file2 is result.ods file which is as :
and we want a awk script which creates an output file which contain sequences extracted from these coordinates along with id with > symbol .
for example:
output file should be like this.
I hope now it is clear to you.
Last edited by Don Cragun; 08-05-2015 at 06:57 AM..
Reason: Add CODE and ICODE tags.
The comments by Don Cragun still apply: most of the sequences are shorter than the coordinates that you have in your file2, and there are coordinates that result in negative string lengths.
On top, none of the samples in file2 match any of those in file1.
Please explain your example; it is not at all clear to me.
You say you want the output:
which seems to have been selected by the line:
from the file result.ods which I thought meant that you wanted characters 52962 through 52984 from the data following a line starting with:
in the file 1.fasta. But, that string does not appear in 1.fasta and, even if it did, the data from characters 52962 through 52984 would be 23 characters long; not the 138 characters you have said you want to have output.
may be that entries would be at the bottom of the file actually sir, i just copied and posted very few entries from file1 and file2 may be matched would be skipped. i cant paste my whole data file here i have 4565005 sequence entries in my data.
and about negative value, please provide me the script for like 300 250 = 50
no problem if there is 250-300 =-50 i will correct it and will then apply script.
Hello, here I am posting my query again with modified data input files.
see my query is :
i have two input files file1 and file2.
file1 is smalldata.fasta
>gi|546671471|gb|AWWX01449637.1| Bubalus bubalis breed Mediterranean WGS:AWWX01:contig449636, whole genome shotgun sequence... (20 Replies)
I am trying to extract a time from the below string in perl but not able to get the time properly
I just want to extract the time from the above line I am using the below syntax
x=~ /(.*) (\d+)\:(\d+)\:(\d+),(.*)\.com/
$time = $2 . ':' . $3 . ':' . $4;
print $time
Can... (1 Reply)
Hi all,
I have a file like this
ID 3BP5L_HUMAN Reviewed; 393 AA.
AC Q7L8J4; Q96FI5; Q9BQH8; Q9C0E3;
DT 05-FEB-2008, integrated into UniProtKB/Swiss-Prot.
DT 05-JUL-2004, sequence version 1.
DT 05-SEP-2012, entry version 71.
FT COILED 59 140 ... (1 Reply)
Hi everyone,
I have a large text file containing DNA sequences in fasta format as follows:
>someseq
GAACTTGAGATCCGGGGAGCAGTGGATCTC
CACCAGCGGCCAGAACTGGTGCACCTCCAG
GCCAGCCTCGTCCTGCGTGTC
>another seq
GGCATTTTTGTGTAATTTTTGGCTGGATGAGGT
GACATTTTCATTACTACCATTTTGGAGTACA
>seq3450... (4 Replies)
Hi,
Can you help me on this two problems?
how can i get :
from input: /ect/exp/hom/bin ==> output: exp
and
from input: aex1234 =====>output: ex
thanks, (1 Reply)
Hello,
I need your help to extract text from following:
./sherg_fyd_rur:blkabl="R23.21_BL2008_0122_1"
./serge_a75:rlwual="/main/r23.21=26-Mar-2008.05:00:20UTC@R11.31_BL2008_0325"
./serge_a75:blkabl="R23.21_BL2008_0325"
./sherg_proto_npiv:bkguals="R23.21_BL2008_0302 I80_11.31_LR"
I... (11 Replies)
I need to extract the character before the last "|" in the following lines, which are 'N' and 'U'. The last "|" shouldn't be extracted. Also the no.s of "|" may vary in a line, but I need only the character before the last one.
... (5 Replies)
Hi all,
I have a data file from which i would like to extract only certain fields, which are not adjacent to each other. Following is the format of data file (data.txt) that i have, which has about 6 fields delimited by "|"
HARRIS|23|IT|PROGRAMMER|CHICAGO|EMP
JOHN|35|IT|JAVA|NY|CON... (2 Replies)
I have this tar file which has files of (.ksh, .ini &.sql) and their hard and soft links.
Later when the original files and their directories are deleted (or rather lost as in a system crash), I have this tar file as the only source to restore all of them.
In such a case when I do,
tar... (4 Replies)